@vint.tri/report_gen_mcp 1.2.2 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/IMPROVED_AI_INSTRUCTIONS.md +468 -0
- package/IMPROVED_NEURAL_NETWORK_INSTRUCTIONS.md +468 -0
- package/PUBLICATION_CONFIRMATION.md +27 -32
- package/README.md +4 -4
- package/REPORT_TOOL_USAGE_RULE.md +32 -0
- package/UPDATED_AI_INSTRUCTIONS.md +504 -0
- package/UPDATED_NEURAL_NETWORK_INSTRUCTIONS.md +504 -0
- package/dist/index.js +1 -1
- package/dist/utils/reportGenerator.js +56 -5
- package/package.json +1 -1
- package/test_neural_network_instructions.js +105 -0
|
@@ -0,0 +1,504 @@
|
|
|
1
|
+
# ОБНОВЛЕННЫЕ Инструкции для нейросети по работе с инструментом report_gen_mcp
|
|
2
|
+
|
|
3
|
+
**ВАЖНО:** ВСЕГДА ИСПОЛЬЗУЙТЕ ИНСТРУМЕНТ `report_gen_mcp` КАЖДЫЙ РАЗ, КОГДА ПОЛЬЗОВАТЕЛЬ ЗАПРАШИВАЕТ СОЗДАНИЕ ОТЧЕТА ИЛИ ВИЗУАЛИЗАЦИИ ДАННЫХ!
|
|
4
|
+
|
|
5
|
+
Этот документ содержит специальные инструкции для нейросети при работе с инструментом `report_gen_mcp`, чтобы обеспечить правильное взаимодействие с пользователем после генерации отчетов.
|
|
6
|
+
|
|
7
|
+
## Обязательное использование инструмента
|
|
8
|
+
|
|
9
|
+
**КЛЮЧЕВОЕ ПРАВИЛО:** КАЖДЫЙ РАЗ, КОГДА ПОЛЬЗОВАТЕЛЬ ХОЧЕТ ПОЛУЧИТЬ ОТЧЕТ, ВИЗУАЛИЗАЦИЮ ДАННЫХ, ДИАГРАММУ ИЛИ ГРАФИК, НЕЗАВИСИМО ОТ ФОРМАТА ЗАПРОСА, ВЫ ДОЛЖНЫ ИСПОЛЬЗОВАТЬ ИНСТРУМЕНТ `report_gen_mcp`!
|
|
10
|
+
|
|
11
|
+
НЕ пытайтесь создавать отчеты самостоятельно или предлагать пользователю делать это вручную. ВСЕГДА используйте инструмент `report_gen_mcp`.
|
|
12
|
+
|
|
13
|
+
## Общие принципы работы
|
|
14
|
+
|
|
15
|
+
При использовании инструмента `report_gen_mcp` для генерации отчетов, нейросеть должна следовать определенному протоколу взаимодействия с пользователем, чтобы обеспечить полную и удобную работу с созданными отчетами.
|
|
16
|
+
|
|
17
|
+
## Поддерживаемые элементы отчета
|
|
18
|
+
|
|
19
|
+
Инструмент поддерживает вставку в отчеты следующих элементов:
|
|
20
|
+
1. **Диаграммы** (charts) - различные типы графиков (bar, line, pie, doughnut, radar, polarArea)
|
|
21
|
+
2. **Изображения** (images) - два типа:
|
|
22
|
+
- Сгенерированные сервисом pollinations.ai по текстовому описанию
|
|
23
|
+
- По URL из интернета
|
|
24
|
+
|
|
25
|
+
## Требования к оформлению отчетов
|
|
26
|
+
|
|
27
|
+
При создании отчетов необходимо придерживаться следующих требований по оформлению:
|
|
28
|
+
|
|
29
|
+
1. **Красивое форматирование**:
|
|
30
|
+
- Используйте заголовки разных уровней (H1, H2, H3) для структурирования контента
|
|
31
|
+
- Добавляйте списки (маркированные и нумерованные) для лучшей читаемости
|
|
32
|
+
- Используйте выделение важной информации (жирный шрифт, курсив)
|
|
33
|
+
- Разделяйте смысловые блоки пустыми строками
|
|
34
|
+
|
|
35
|
+
2. **Визуализация данных**:
|
|
36
|
+
- Всегда добавляйте диаграммы для числовых данных
|
|
37
|
+
- Выбирайте подходящий тип диаграммы в зависимости от характера данных
|
|
38
|
+
- Добавляйте поясняющие подписи к диаграммам
|
|
39
|
+
- Используйте разнообразные цвета для лучшей визуализации
|
|
40
|
+
|
|
41
|
+
3. **Изображения**:
|
|
42
|
+
- Добавляйте тематические изображения для иллюстрации контента
|
|
43
|
+
- Используйте изображения высокого качества
|
|
44
|
+
- Добавляйте альтернативный текст для изображений
|
|
45
|
+
- При необходимости регулируйте размеры изображений
|
|
46
|
+
|
|
47
|
+
## После генерации отчета
|
|
48
|
+
|
|
49
|
+
После успешной генерации отчета с помощью метода `generate-report`, нейросеть получает всю необходимую информацию напрямую в ответе от метода. Необходимо предоставить пользователю следующую информацию:
|
|
50
|
+
|
|
51
|
+
### 1. Предоставление информации пользователю
|
|
52
|
+
|
|
53
|
+
Из ответа метода `generate-report` извлеките следующую информацию и предоставьте пользователю:
|
|
54
|
+
|
|
55
|
+
1. **Путь к файлу**: Абсолютный путь к созданному отчету
|
|
56
|
+
2. **Ссылка на файл**: Кликабельная file:// ссылка для открытия отчета в браузере
|
|
57
|
+
3. **Содержимое файла**: Полный текст HTML содержимого отчета
|
|
58
|
+
|
|
59
|
+
Обязательно покажите пользователю содержимое файла, чтобы он мог сразу ознакомиться с результатом без необходимости открывать файл отдельно.
|
|
60
|
+
|
|
61
|
+
Пример формата ответа пользователю:
|
|
62
|
+
```
|
|
63
|
+
Отчет успешно создан!
|
|
64
|
+
|
|
65
|
+
📁 Путь к файлу: /полный/путь/к/отчету.html
|
|
66
|
+
🌐 Ссылка для открытия в браузере: file:///полный/путь/к/отчету.html
|
|
67
|
+
|
|
68
|
+
📄 Содержимое отчета:
|
|
69
|
+
<!DOCTYPE html>
|
|
70
|
+
<html>
|
|
71
|
+
<head>
|
|
72
|
+
<meta charset="UTF-8">
|
|
73
|
+
<title>Report</title>
|
|
74
|
+
<style>
|
|
75
|
+
body { font-family: Arial, sans-serif; }
|
|
76
|
+
.chart-container, .image-container { margin: 20px 0; }
|
|
77
|
+
</style>
|
|
78
|
+
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
79
|
+
</head>
|
|
80
|
+
<body>
|
|
81
|
+
<h1>Отчет</h1>
|
|
82
|
+
<div class="chart-container">
|
|
83
|
+
<!-- Chart.js chart code -->
|
|
84
|
+
</div>
|
|
85
|
+
<div class="image-container">
|
|
86
|
+
<!-- Generated image -->
|
|
87
|
+
<img src="https://image.pollinations.ai/prompt/красивый%20закат" alt="красивый закат">
|
|
88
|
+
</div>
|
|
89
|
+
</body>
|
|
90
|
+
</html>
|
|
91
|
+
|
|
92
|
+
Вы можете открыть отчет, кликнув на ссылку выше или скопировав путь к файлу.
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 2. Альтернативный подход (при необходимости)
|
|
96
|
+
|
|
97
|
+
Если по какой-то причине информация не была получена напрямую из метода `generate-report`, можно использовать дополнительные инструменты:
|
|
98
|
+
|
|
99
|
+
#### Получение информации о файле
|
|
100
|
+
|
|
101
|
+
Используйте инструмент `get-report-url` для получения полной информации о созданном отчете:
|
|
102
|
+
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"method": "tools/call",
|
|
106
|
+
"params": {
|
|
107
|
+
"name": "get-report-url",
|
|
108
|
+
"arguments": {
|
|
109
|
+
"filePath": "/путь/к/созданному/отчету.html"
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
#### Прикрепление содержимого файла
|
|
116
|
+
|
|
117
|
+
Для того чтобы пользователь мог сразу просмотреть содержимое отчета без необходимости открывать файл, используйте инструмент `get-report-file`:
|
|
118
|
+
|
|
119
|
+
```json
|
|
120
|
+
{
|
|
121
|
+
"method": "tools/call",
|
|
122
|
+
"params": {
|
|
123
|
+
"name": "get-report-file",
|
|
124
|
+
"arguments": {
|
|
125
|
+
"filePath": "/путь/к/созданному/отчету.html"
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Формат данных для диаграмм (графиков)
|
|
132
|
+
|
|
133
|
+
Очень важно правильно формировать данные для диаграмм, чтобы избежать ошибок. Ниже приведены точные требования к формату данных для каждого типа диаграмм.
|
|
134
|
+
|
|
135
|
+
### Общие правила для всех типов диаграмм
|
|
136
|
+
|
|
137
|
+
1. Все цветовые значения (`backgroundColor`, `borderColor`) должны быть представлены в виде **массивов строк**, даже если это один цвет.
|
|
138
|
+
2. Все числовые данные (`data`) должны быть представлены в виде массивов чисел.
|
|
139
|
+
3. Все текстовые метки (`labels`) должны быть представлены в виде массивов строк.
|
|
140
|
+
|
|
141
|
+
### Линейные диаграммы (line)
|
|
142
|
+
|
|
143
|
+
```json
|
|
144
|
+
{
|
|
145
|
+
"type": "line",
|
|
146
|
+
"config": {
|
|
147
|
+
"labels": ["Январь", "Февраль", "Март", "Апрель", "Май"],
|
|
148
|
+
"datasets": [
|
|
149
|
+
{
|
|
150
|
+
"label": "Продажи (USD)",
|
|
151
|
+
"data": [12000, 19000, 15000, 18000, 22000],
|
|
152
|
+
"borderColor": ["rgba(54, 162, 235, 1)"], // ВАЖНО: массив, даже для одного цвета!
|
|
153
|
+
"fill": false
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
"options": {
|
|
157
|
+
"title": "Ежемесячные продажи"
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Важно**: `borderColor` должен быть массивом строк, даже если используется только один цвет.
|
|
164
|
+
|
|
165
|
+
### Столбчатые диаграммы (bar)
|
|
166
|
+
|
|
167
|
+
```json
|
|
168
|
+
{
|
|
169
|
+
"type": "bar",
|
|
170
|
+
"config": {
|
|
171
|
+
"labels": ["Январь", "Февраль", "Март", "Апрель", "Май"],
|
|
172
|
+
"datasets": [
|
|
173
|
+
{
|
|
174
|
+
"label": "Продажи (USD)",
|
|
175
|
+
"data": [12000, 19000, 15000, 18000, 22000],
|
|
176
|
+
"backgroundColor": ["#FF6384", "#36A2EB", "#FFCE56", "#4BC0C0", "#9966FF"], // Массив цветов
|
|
177
|
+
"borderColor": ["#FF6384", "#36A2EB", "#FFCE56", "#4BC0C0", "#9966FF"] // Массив цветов
|
|
178
|
+
}
|
|
179
|
+
],
|
|
180
|
+
"options": {
|
|
181
|
+
"title": "Ежемесячные продажи"
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Важно**: `backgroundColor` и `borderColor` должны быть массивами строк, даже если используется только один цвет.
|
|
188
|
+
|
|
189
|
+
### Круговые диаграммы (pie)
|
|
190
|
+
|
|
191
|
+
```json
|
|
192
|
+
{
|
|
193
|
+
"type": "pie",
|
|
194
|
+
"config": {
|
|
195
|
+
"labels": ["Красный", "Синий", "Желтый", "Зеленый", "Фиолетовый"],
|
|
196
|
+
"datasets": [
|
|
197
|
+
{
|
|
198
|
+
"data": [12, 19, 3, 5, 2],
|
|
199
|
+
"backgroundColor": ["#FF6384", "#36A2EB", "#FFCE56", "#4BC0C0", "#9966FF"], // Массив цветов
|
|
200
|
+
"borderColor": ["#FF6384", "#36A2EB", "#FFCE56", "#4BC0C0", "#9966FF"] // Массив цветов
|
|
201
|
+
}
|
|
202
|
+
],
|
|
203
|
+
"options": {
|
|
204
|
+
"title": "Распределение по категориям"
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**Важно**: `backgroundColor` и `borderColor` должны быть массивами строк, даже если используется только один цвет.
|
|
211
|
+
|
|
212
|
+
### Кольцевые диаграммы (doughnut)
|
|
213
|
+
|
|
214
|
+
```json
|
|
215
|
+
{
|
|
216
|
+
"type": "doughnut",
|
|
217
|
+
"config": {
|
|
218
|
+
"labels": ["Красный", "Синий", "Желтый", "Зеленый", "Фиолетовый"],
|
|
219
|
+
"datasets": [
|
|
220
|
+
{
|
|
221
|
+
"data": [12, 19, 3, 5, 2],
|
|
222
|
+
"backgroundColor": ["#FF6384", "#36A2EB", "#FFCE56", "#4BC0C0", "#9966FF"], // Массив цветов
|
|
223
|
+
"borderColor": ["#FF6384", "#36A2EB", "#FFCE56", "#4BC0C0", "#9966FF"] // Массив цветов
|
|
224
|
+
}
|
|
225
|
+
],
|
|
226
|
+
"options": {
|
|
227
|
+
"title": "Распределение по категориям"
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
**Важно**: `backgroundColor` и `borderColor` должны быть массивами строк, даже если используется только один цвет.
|
|
234
|
+
|
|
235
|
+
### Радарные диаграммы (radar)
|
|
236
|
+
|
|
237
|
+
```json
|
|
238
|
+
{
|
|
239
|
+
"type": "radar",
|
|
240
|
+
"config": {
|
|
241
|
+
"labels": ["Eating", "Drinking", "Sleeping", "Designing", "Coding", "Cycling", "Running"],
|
|
242
|
+
"datasets": [
|
|
243
|
+
{
|
|
244
|
+
"label": "Person 1",
|
|
245
|
+
"data": [65, 59, 90, 81, 56, 55, 40],
|
|
246
|
+
"backgroundColor": ["rgba(255, 99, 132, 0.2)"], // Массив цветов
|
|
247
|
+
"borderColor": ["rgba(255, 99, 132, 1)"] // Массив цветов
|
|
248
|
+
}
|
|
249
|
+
],
|
|
250
|
+
"options": {
|
|
251
|
+
"title": "Радарная диаграмма"
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
**Важно**: `backgroundColor` и `borderColor` должны быть массивами строк, даже если используется только один цвет.
|
|
258
|
+
|
|
259
|
+
### Полярные диаграммы (polarArea)
|
|
260
|
+
|
|
261
|
+
```json
|
|
262
|
+
{
|
|
263
|
+
"type": "polarArea",
|
|
264
|
+
"config": {
|
|
265
|
+
"labels": ["Red", "Green", "Yellow", "Grey", "Blue"],
|
|
266
|
+
"datasets": [
|
|
267
|
+
{
|
|
268
|
+
"data": [11, 16, 7, 3, 14],
|
|
269
|
+
"backgroundColor": ["#FF6384", "#4BC0C0", "#FFCE56", "#E7E9ED", "#36A2EB"], // Массив цветов
|
|
270
|
+
"borderColor": ["#FF6384", "#4BC0C0", "#FFCE56", "#E7E9ED", "#36A2EB"] // Массив цветов
|
|
271
|
+
}
|
|
272
|
+
],
|
|
273
|
+
"options": {
|
|
274
|
+
"title": "Полярная диаграмма"
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
**Важно**: `backgroundColor` и `borderColor` должны быть массивами строк.
|
|
281
|
+
|
|
282
|
+
## Формат данных для изображений
|
|
283
|
+
|
|
284
|
+
### Изображения, сгенерированные pollinations.ai
|
|
285
|
+
|
|
286
|
+
```json
|
|
287
|
+
{
|
|
288
|
+
"type": "pollinations",
|
|
289
|
+
"config": {
|
|
290
|
+
"prompt": "красивый закат над океаном",
|
|
291
|
+
"width": 512,
|
|
292
|
+
"height": 512,
|
|
293
|
+
"model": "flux",
|
|
294
|
+
"seed": 12345,
|
|
295
|
+
"nologo": true,
|
|
296
|
+
"enhance": true
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### Изображения по URL
|
|
302
|
+
|
|
303
|
+
```json
|
|
304
|
+
{
|
|
305
|
+
"type": "url",
|
|
306
|
+
"config": {
|
|
307
|
+
"url": "https://example.com/image.jpg",
|
|
308
|
+
"alt": "Описание изображения",
|
|
309
|
+
"width": 500,
|
|
310
|
+
"height": 300
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
## ПРАВИЛА ФОРМАТИРОВАНИЯ ПАРАМЕТРОВ (КРИТИЧЕСКИ ВАЖНО!)
|
|
316
|
+
|
|
317
|
+
### 1. ПАРАМЕТР "elements" ДОЛЖЕН БЫТЬ ОБЪЕКТОМ!
|
|
318
|
+
|
|
319
|
+
❌ НЕПРАВИЛЬНО (это вызывает ошибку "Expected object, received string"):
|
|
320
|
+
```json
|
|
321
|
+
{
|
|
322
|
+
"method": "generate-report",
|
|
323
|
+
"params": {
|
|
324
|
+
"document": "# Отчет\n\n[[chart:mychart]]",
|
|
325
|
+
"elements": "{ \"mychart\": { \"type\": \"bar\", \"config\": { \"labels\": [\"A\", \"B\", \"C\"], \"datasets\": [{ \"label\": \"Data\", \"data\": [1, 2, 3], \"backgroundColor\": [\"red\", \"green\", \"blue\"], \"borderColor\": [\"red\", \"green\", \"blue\"] }] } }",
|
|
326
|
+
"outputFile": "report.html"
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
✅ ПРАВИЛЬНО (elements - это объект, а не строка):
|
|
332
|
+
```json
|
|
333
|
+
{
|
|
334
|
+
"method": "generate-report",
|
|
335
|
+
"params": {
|
|
336
|
+
"document": "# Отчет\n\n[[chart:mychart]]",
|
|
337
|
+
"elements": {
|
|
338
|
+
"mychart": {
|
|
339
|
+
"type": "bar",
|
|
340
|
+
"config": {
|
|
341
|
+
"labels": ["A", "B", "C"],
|
|
342
|
+
"datasets": [{
|
|
343
|
+
"label": "Data",
|
|
344
|
+
"data": [1, 2, 3],
|
|
345
|
+
"backgroundColor": ["red", "green", "blue"],
|
|
346
|
+
"borderColor": ["red", "green", "blue"]
|
|
347
|
+
}]
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
"outputFile": "report.html"
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
### 2. ЦВЕТОВЫЕ ЗНАЧЕНИЯ ДОЛЖНЫ БЫТЬ МАССИВАМИ!
|
|
357
|
+
|
|
358
|
+
❌ НЕПРАВИЛЬНО (это вызывает ошибку):
|
|
359
|
+
```json
|
|
360
|
+
"backgroundColor": "red"
|
|
361
|
+
"borderColor": "blue"
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
✅ ПРАВИЛЬНО (всегда используйте массивы):
|
|
365
|
+
```json
|
|
366
|
+
"backgroundColor": ["red"]
|
|
367
|
+
"borderColor": ["blue"]
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### 3. ЧИСЛОВЫЕ ДАННЫЕ ДОЛЖНЫ БЫТЬ МАССИВАМИ!
|
|
371
|
+
|
|
372
|
+
❌ НЕПРАВИЛЬНО:
|
|
373
|
+
```json
|
|
374
|
+
"data": 10
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
✅ ПРАВИЛЬНО:
|
|
378
|
+
```json
|
|
379
|
+
"data": [10]
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### 4. ТЕКСТОВЫЕ МЕТКИ ДОЛЖНЫ БЫТЬ МАССИВАМИ!
|
|
383
|
+
|
|
384
|
+
❌ НЕПРАВИЛЬНО:
|
|
385
|
+
```json
|
|
386
|
+
"labels": "Январь"
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
✅ ПРАВИЛЬНО:
|
|
390
|
+
```json
|
|
391
|
+
"labels": ["Январь"]
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
## Пример полного взаимодействия
|
|
395
|
+
|
|
396
|
+
Вот пример того, как должно выглядеть полное взаимодействие с пользователем после генерации отчета:
|
|
397
|
+
|
|
398
|
+
1. Генерация отчета:
|
|
399
|
+
```json
|
|
400
|
+
{
|
|
401
|
+
"method": "generate-report",
|
|
402
|
+
"params": {
|
|
403
|
+
"document": "# Отчет\n\n[[chart:mychart]]\n\n[[image:myimage]]",
|
|
404
|
+
"elements": {
|
|
405
|
+
"mychart": {
|
|
406
|
+
"type": "bar",
|
|
407
|
+
"config": {
|
|
408
|
+
"labels": ["A", "B", "C"],
|
|
409
|
+
"datasets": [{
|
|
410
|
+
"label": "Data",
|
|
411
|
+
"data": [1, 2, 3],
|
|
412
|
+
"backgroundColor": ["red", "green", "blue"],
|
|
413
|
+
"borderColor": ["red", "green", "blue"]
|
|
414
|
+
}]
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
"myimage": {
|
|
418
|
+
"type": "pollinations",
|
|
419
|
+
"config": {
|
|
420
|
+
"prompt": "beautiful landscape with mountains",
|
|
421
|
+
"width": 600,
|
|
422
|
+
"height": 400
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
},
|
|
426
|
+
"outputFile": "report.html"
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
2. Ответ от метода `generate-report` уже содержит всю необходимую информацию:
|
|
432
|
+
```json
|
|
433
|
+
{
|
|
434
|
+
"content": [
|
|
435
|
+
{
|
|
436
|
+
"type": "text",
|
|
437
|
+
"text": "Report generated successfully.\n\nFOR THE NEURAL NETWORK: Please present the following information to the user:\n1. Path to file: /path/to/report.html\n2. Web browser link: file:///path/to/report.html\n3. File content:\n<!DOCTYPE html>\n<html>...</html>"
|
|
438
|
+
}
|
|
439
|
+
]
|
|
440
|
+
}
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
3. Ответ пользователю (на основе информации из ответа метода):
|
|
444
|
+
```
|
|
445
|
+
Отчет успешно создан!
|
|
446
|
+
|
|
447
|
+
📁 Путь к файлу: /path/to/report.html
|
|
448
|
+
🌐 Ссылка для открытия в браузере: file:///path/to/report.html
|
|
449
|
+
|
|
450
|
+
Содержимое отчета:
|
|
451
|
+
<!DOCTYPE html>
|
|
452
|
+
<html>
|
|
453
|
+
<head>
|
|
454
|
+
<meta charset="UTF-8">
|
|
455
|
+
<title>Report</title>
|
|
456
|
+
<style>
|
|
457
|
+
body { font-family: Arial, sans-serif; }
|
|
458
|
+
.chart-container, .image-container { margin: 20px 0; }
|
|
459
|
+
</style>
|
|
460
|
+
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
461
|
+
</head>
|
|
462
|
+
<body>
|
|
463
|
+
<h1>Отчет</h1>
|
|
464
|
+
<div class="chart-container">
|
|
465
|
+
<!-- Chart.js chart code -->
|
|
466
|
+
</div>
|
|
467
|
+
<div class="image-container">
|
|
468
|
+
<!-- Generated image -->
|
|
469
|
+
<img src="https://image.pollinations.ai/prompt/beautiful%20landscape%20with%20mountains" alt="beautiful landscape with mountains">
|
|
470
|
+
</div>
|
|
471
|
+
</body>
|
|
472
|
+
</html>
|
|
473
|
+
|
|
474
|
+
Вы можете открыть отчет, кликнув на ссылку выше или скопировав путь к файлу.
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
## Частые ошибки и как их избежать
|
|
478
|
+
|
|
479
|
+
1. **Ошибка формата параметров**: Передача `elements` как строки вместо объекта
|
|
480
|
+
- ❌ Неправильно: `"elements": "{\"mychart\":{...}}"`
|
|
481
|
+
- ✅ Правильно: `"elements": {"mychart":{...}}`
|
|
482
|
+
|
|
483
|
+
2. **Ошибка формата цвета**: Передача `borderColor` или `backgroundColor` как строк вместо массивов
|
|
484
|
+
- ❌ Неправильно: `"borderColor": "red"`
|
|
485
|
+
- ✅ Правильно: `"borderColor": ["red"]`
|
|
486
|
+
|
|
487
|
+
3. **Ошибка формата данных**: Передача числовых данных как отдельных значений вместо массивов
|
|
488
|
+
- ❌ Неправильно: `"data": 10`
|
|
489
|
+
- ✅ Правильно: `"data": [10]`
|
|
490
|
+
|
|
491
|
+
4. **Ошибка формата меток**: Передача меток как отдельных значений вместо массивов
|
|
492
|
+
- ❌ Неправильно: `"labels": "Январь"`
|
|
493
|
+
- ✅ Правильно: `"labels": ["Январь"]`
|
|
494
|
+
|
|
495
|
+
## Дополнительные рекомендации
|
|
496
|
+
|
|
497
|
+
1. Всегда проверяйте успешность выполнения каждой операции перед переходом к следующему шагу
|
|
498
|
+
2. Если какой-либо шаг завершается ошибкой, сообщите пользователю об этом и предложите решение
|
|
499
|
+
3. Убедитесь, что все пути к файлам корректны и файлы действительно существуют
|
|
500
|
+
4. При работе с Claude Desktop используйте параметр `tempDirectory` при генерации отчетов для избежания проблем с правами доступа
|
|
501
|
+
5. Создавайте отчеты с красивым оформлением, используя заголовки, списки и другие элементы форматирования
|
|
502
|
+
6. Добавляйте в отчеты диаграммы и изображения для лучшей визуализации данных
|
|
503
|
+
|
|
504
|
+
Следование этим инструкциям обеспечит качественное и полное взаимодействие с пользователем при работе с инструментом генерации отчетов.
|
package/dist/index.js
CHANGED
|
@@ -102,7 +102,7 @@ if (process.argv.length === 2) {
|
|
|
102
102
|
// No command specified, run in stdio mode using MCP SDK
|
|
103
103
|
const mcpServer = new McpServer({
|
|
104
104
|
name: "report_gen_mcp",
|
|
105
|
-
version: "1.
|
|
105
|
+
version: "1.3.1",
|
|
106
106
|
}, {
|
|
107
107
|
// Disable health check to prevent automatic calls
|
|
108
108
|
capabilities: {
|
|
@@ -100,18 +100,69 @@ export async function generateReport(document, elements, outputFile) {
|
|
|
100
100
|
// Wrap in full HTML template with Chart.js library
|
|
101
101
|
const template = `
|
|
102
102
|
<!DOCTYPE html>
|
|
103
|
-
<html lang="
|
|
103
|
+
<html lang="ru">
|
|
104
104
|
<head>
|
|
105
105
|
<meta charset="UTF-8">
|
|
106
|
-
<title
|
|
106
|
+
<title>Отчет</title>
|
|
107
107
|
<style>
|
|
108
|
-
body {
|
|
109
|
-
|
|
108
|
+
body {
|
|
109
|
+
font-family: Arial, sans-serif;
|
|
110
|
+
margin: 40px;
|
|
111
|
+
background-color: #f5f5f5;
|
|
112
|
+
}
|
|
113
|
+
.container {
|
|
114
|
+
max-width: 1200px;
|
|
115
|
+
margin: 0 auto;
|
|
116
|
+
background-color: white;
|
|
117
|
+
padding: 30px;
|
|
118
|
+
border-radius: 10px;
|
|
119
|
+
box-shadow: 0 0 10px rgba(0,0,0,0.1);
|
|
120
|
+
}
|
|
121
|
+
h1, h2, h3 {
|
|
122
|
+
color: #333;
|
|
123
|
+
}
|
|
124
|
+
h1 {
|
|
125
|
+
border-bottom: 2px solid #3498db;
|
|
126
|
+
padding-bottom: 10px;
|
|
127
|
+
}
|
|
128
|
+
h2 {
|
|
129
|
+
border-left: 4px solid #3498db;
|
|
130
|
+
padding-left: 15px;
|
|
131
|
+
}
|
|
132
|
+
.chart-container, .image-container {
|
|
133
|
+
margin: 30px 0;
|
|
134
|
+
text-align: center;
|
|
135
|
+
}
|
|
136
|
+
.chart-container canvas, .image-container img {
|
|
137
|
+
max-width: 100%;
|
|
138
|
+
height: auto;
|
|
139
|
+
border: 1px solid #ddd;
|
|
140
|
+
border-radius: 5px;
|
|
141
|
+
}
|
|
142
|
+
p {
|
|
143
|
+
line-height: 1.6;
|
|
144
|
+
text-align: justify;
|
|
145
|
+
}
|
|
146
|
+
ul, ol {
|
|
147
|
+
margin: 20px 0;
|
|
148
|
+
padding-left: 30px;
|
|
149
|
+
}
|
|
150
|
+
li {
|
|
151
|
+
margin: 10px 0;
|
|
152
|
+
}
|
|
153
|
+
strong {
|
|
154
|
+
color: #e74c3c;
|
|
155
|
+
}
|
|
156
|
+
em {
|
|
157
|
+
color: #2ecc71;
|
|
158
|
+
}
|
|
110
159
|
</style>
|
|
111
160
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
112
161
|
</head>
|
|
113
162
|
<body>
|
|
114
|
-
|
|
163
|
+
<div class="container">
|
|
164
|
+
<%- htmlContent %>
|
|
165
|
+
</div>
|
|
115
166
|
</body>
|
|
116
167
|
</html>
|
|
117
168
|
`;
|