schemeog-mcp 3.4.0 → 3.6.0
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/index.js +359 -10
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* SchemeOG MCP Server
|
|
4
|
+
* SchemeOG MCP Server v3.0.0
|
|
5
5
|
*
|
|
6
|
-
* MCP сервер для работы со схемами,
|
|
6
|
+
* MCP сервер для работы со схемами, проектами, тегами и версиями в SchemeOG Cloud.
|
|
7
7
|
*
|
|
8
8
|
* Команды для схем:
|
|
9
9
|
* - list_schemas: Список всех схем
|
|
@@ -29,6 +29,12 @@
|
|
|
29
29
|
* - add_tag: Добавить тег в схему
|
|
30
30
|
* - remove_tag: Удалить тег из схемы
|
|
31
31
|
* - tag_element: Присвоить/убрать тег с элемента
|
|
32
|
+
*
|
|
33
|
+
* Команды для версий (история):
|
|
34
|
+
* - list_versions: Список версий схемы
|
|
35
|
+
* - get_version: Получить данные конкретной версии
|
|
36
|
+
* - restore_version: Восстановить схему из версии
|
|
37
|
+
* - create_version: Создать ручную версию (checkpoint)
|
|
32
38
|
*/
|
|
33
39
|
|
|
34
40
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
@@ -1131,6 +1137,10 @@ Claude урезает большие параметры, но file_path чита
|
|
|
1131
1137
|
- "full" (по умолчанию) — полный экспорт с метаданными
|
|
1132
1138
|
- "compact" — только elements, connections, tagsDictionary
|
|
1133
1139
|
- "elements_only" — только массив elements (с connections внутри)
|
|
1140
|
+
- file_path: Путь для сохранения JSON файла (опционально)
|
|
1141
|
+
- Если указан — JSON сохраняется в файл, возвращается только путь и статистика
|
|
1142
|
+
- Если не указан — JSON возвращается в ответе (как раньше)
|
|
1143
|
+
- РЕКОМЕНДУЕТСЯ для больших схем (>20 элементов) — экономит токены!
|
|
1134
1144
|
|
|
1135
1145
|
Пример ответа (format: "full"):
|
|
1136
1146
|
{
|
|
@@ -1158,6 +1168,141 @@ Claude урезает большие параметры, но file_path чита
|
|
|
1158
1168
|
enum: ["full", "compact", "elements_only"],
|
|
1159
1169
|
description: "Формат экспорта: full (с метаданными), compact (только данные), elements_only (только элементы)",
|
|
1160
1170
|
},
|
|
1171
|
+
file_path: {
|
|
1172
|
+
type: "string",
|
|
1173
|
+
description: "Путь для сохранения JSON файла. Если указан — JSON сохраняется в файл, Claude получает только путь (экономит токены!)",
|
|
1174
|
+
},
|
|
1175
|
+
},
|
|
1176
|
+
required: ["schema_id"],
|
|
1177
|
+
},
|
|
1178
|
+
},
|
|
1179
|
+
|
|
1180
|
+
// ========== ВЕРСИИ ==========
|
|
1181
|
+
{
|
|
1182
|
+
name: "list_versions",
|
|
1183
|
+
description: `Получить список версий (истории) схемы.
|
|
1184
|
+
|
|
1185
|
+
Возвращает список всех сохранённых версий схемы — как автоматических (автосохранение),
|
|
1186
|
+
так и ручных (созданных пользователем).
|
|
1187
|
+
|
|
1188
|
+
Каждая версия содержит:
|
|
1189
|
+
- id: уникальный ID версии
|
|
1190
|
+
- versionNumber: номер версии (1, 2, 3...)
|
|
1191
|
+
- createdAt: дата создания
|
|
1192
|
+
- isManual: true если создана вручную, false если автосохранение
|
|
1193
|
+
- comment: комментарий (только для ручных версий)
|
|
1194
|
+
- elementsCount: количество элементов в этой версии
|
|
1195
|
+
|
|
1196
|
+
Используй для:
|
|
1197
|
+
- Просмотра истории изменений схемы
|
|
1198
|
+
- Поиска версии для восстановления
|
|
1199
|
+
- Аудита изменений`,
|
|
1200
|
+
inputSchema: {
|
|
1201
|
+
type: "object",
|
|
1202
|
+
properties: {
|
|
1203
|
+
schema_id: {
|
|
1204
|
+
type: "string",
|
|
1205
|
+
description: "ID схемы",
|
|
1206
|
+
},
|
|
1207
|
+
limit: {
|
|
1208
|
+
type: "number",
|
|
1209
|
+
description: "Максимальное количество версий (по умолчанию 50, максимум 100)",
|
|
1210
|
+
},
|
|
1211
|
+
offset: {
|
|
1212
|
+
type: "number",
|
|
1213
|
+
description: "Смещение для пагинации (по умолчанию 0)",
|
|
1214
|
+
},
|
|
1215
|
+
},
|
|
1216
|
+
required: ["schema_id"],
|
|
1217
|
+
},
|
|
1218
|
+
},
|
|
1219
|
+
{
|
|
1220
|
+
name: "get_version",
|
|
1221
|
+
description: `Получить данные конкретной версии схемы.
|
|
1222
|
+
|
|
1223
|
+
Возвращает полные данные версии, включая:
|
|
1224
|
+
- Все элементы на момент создания версии
|
|
1225
|
+
- Все связи
|
|
1226
|
+
- Viewport (позиция камеры)
|
|
1227
|
+
- Метаданные (дата, автор, комментарий)
|
|
1228
|
+
|
|
1229
|
+
Используй для:
|
|
1230
|
+
- Просмотра содержимого конкретной версии перед восстановлением
|
|
1231
|
+
- Сравнения версий
|
|
1232
|
+
- Анализа изменений`,
|
|
1233
|
+
inputSchema: {
|
|
1234
|
+
type: "object",
|
|
1235
|
+
properties: {
|
|
1236
|
+
schema_id: {
|
|
1237
|
+
type: "string",
|
|
1238
|
+
description: "ID схемы",
|
|
1239
|
+
},
|
|
1240
|
+
version_id: {
|
|
1241
|
+
type: "string",
|
|
1242
|
+
description: "ID версии",
|
|
1243
|
+
},
|
|
1244
|
+
},
|
|
1245
|
+
required: ["schema_id", "version_id"],
|
|
1246
|
+
},
|
|
1247
|
+
},
|
|
1248
|
+
{
|
|
1249
|
+
name: "restore_version",
|
|
1250
|
+
description: `Восстановить схему из указанной версии.
|
|
1251
|
+
|
|
1252
|
+
⚠️ ВАЖНО: Перед восстановлением автоматически создаётся резервная копия текущего состояния!
|
|
1253
|
+
|
|
1254
|
+
Процесс:
|
|
1255
|
+
1. Создаётся версия с текущим состоянием схемы (как backup)
|
|
1256
|
+
2. Данные схемы заменяются на данные из выбранной версии
|
|
1257
|
+
3. Позиция камеры (viewport) также восстанавливается
|
|
1258
|
+
|
|
1259
|
+
Используй когда нужно:
|
|
1260
|
+
- Откатить нежелательные изменения
|
|
1261
|
+
- Восстановить случайно удалённые элементы
|
|
1262
|
+
- Вернуться к предыдущей версии схемы`,
|
|
1263
|
+
inputSchema: {
|
|
1264
|
+
type: "object",
|
|
1265
|
+
properties: {
|
|
1266
|
+
schema_id: {
|
|
1267
|
+
type: "string",
|
|
1268
|
+
description: "ID схемы",
|
|
1269
|
+
},
|
|
1270
|
+
version_id: {
|
|
1271
|
+
type: "string",
|
|
1272
|
+
description: "ID версии для восстановления",
|
|
1273
|
+
},
|
|
1274
|
+
},
|
|
1275
|
+
required: ["schema_id", "version_id"],
|
|
1276
|
+
},
|
|
1277
|
+
},
|
|
1278
|
+
{
|
|
1279
|
+
name: "create_version",
|
|
1280
|
+
description: `Создать ручную версию (checkpoint) схемы.
|
|
1281
|
+
|
|
1282
|
+
Используй для создания именованной точки восстановления перед важными изменениями.
|
|
1283
|
+
|
|
1284
|
+
Параметры:
|
|
1285
|
+
- schema_id: ID схемы (обязательно)
|
|
1286
|
+
- comment: комментарий к версии (опционально, рекомендуется)
|
|
1287
|
+
|
|
1288
|
+
Примеры комментариев:
|
|
1289
|
+
- "Перед рефакторингом структуры"
|
|
1290
|
+
- "Стабильная версия v1.0"
|
|
1291
|
+
- "До добавления новых экранов"
|
|
1292
|
+
|
|
1293
|
+
Автоматические версии создаются при каждом сохранении схемы.
|
|
1294
|
+
Ручные версии отмечаются специальным флагом и не удаляются при очистке старых автосохранений.`,
|
|
1295
|
+
inputSchema: {
|
|
1296
|
+
type: "object",
|
|
1297
|
+
properties: {
|
|
1298
|
+
schema_id: {
|
|
1299
|
+
type: "string",
|
|
1300
|
+
description: "ID схемы",
|
|
1301
|
+
},
|
|
1302
|
+
comment: {
|
|
1303
|
+
type: "string",
|
|
1304
|
+
description: "Комментарий к версии (опционально, но рекомендуется)",
|
|
1305
|
+
},
|
|
1161
1306
|
},
|
|
1162
1307
|
required: ["schema_id"],
|
|
1163
1308
|
},
|
|
@@ -2197,7 +2342,7 @@ URL: ${API_BASE_URL}/canvas?schema=${result.schema.id}${warningsText}`,
|
|
|
2197
2342
|
}
|
|
2198
2343
|
|
|
2199
2344
|
case "export_schema_to_json": {
|
|
2200
|
-
const { schema_id, format = "full" } = args;
|
|
2345
|
+
const { schema_id, format = "full", file_path } = args;
|
|
2201
2346
|
|
|
2202
2347
|
// Получаем схему
|
|
2203
2348
|
const result = await apiRequest(`/schemas/${schema_id}`);
|
|
@@ -2208,7 +2353,6 @@ URL: ${API_BASE_URL}/canvas?schema=${result.schema.id}${warningsText}`,
|
|
|
2208
2353
|
const tagsDictionary = schema.data?.tagsDictionary || [];
|
|
2209
2354
|
|
|
2210
2355
|
let exportData;
|
|
2211
|
-
let exportText;
|
|
2212
2356
|
|
|
2213
2357
|
switch (format) {
|
|
2214
2358
|
case "compact":
|
|
@@ -2220,7 +2364,6 @@ URL: ${API_BASE_URL}/canvas?schema=${result.schema.id}${warningsText}`,
|
|
|
2220
2364
|
connections,
|
|
2221
2365
|
tagsDictionary,
|
|
2222
2366
|
};
|
|
2223
|
-
exportText = `Компактный экспорт схемы "${schema.name}":\n\n\`\`\`json\n${JSON.stringify(exportData, null, 2)}\n\`\`\``;
|
|
2224
2367
|
break;
|
|
2225
2368
|
|
|
2226
2369
|
case "elements_only":
|
|
@@ -2242,7 +2385,6 @@ URL: ${API_BASE_URL}/canvas?schema=${result.schema.id}${warningsText}`,
|
|
|
2242
2385
|
if (tagsDictionary.length > 0) {
|
|
2243
2386
|
exportData.tagsDictionary = tagsDictionary;
|
|
2244
2387
|
}
|
|
2245
|
-
exportText = `Элементы схемы "${schema.name}" (локальный формат):\n\n\`\`\`json\n${JSON.stringify(exportData, null, 2)}\n\`\`\``;
|
|
2246
2388
|
break;
|
|
2247
2389
|
|
|
2248
2390
|
case "full":
|
|
@@ -2262,10 +2404,52 @@ URL: ${API_BASE_URL}/canvas?schema=${result.schema.id}${warningsText}`,
|
|
|
2262
2404
|
tagsDictionary,
|
|
2263
2405
|
},
|
|
2264
2406
|
};
|
|
2265
|
-
exportText = `Полный экспорт схемы "${schema.name}":\n\n\`\`\`json\n${JSON.stringify(exportData, null, 2)}\n\`\`\``;
|
|
2266
2407
|
break;
|
|
2267
2408
|
}
|
|
2268
2409
|
|
|
2410
|
+
// Если указан file_path — сохраняем в файл
|
|
2411
|
+
if (file_path) {
|
|
2412
|
+
const fs = require('fs');
|
|
2413
|
+
const path = require('path');
|
|
2414
|
+
|
|
2415
|
+
// Создаём директорию если не существует
|
|
2416
|
+
const dir = path.dirname(file_path);
|
|
2417
|
+
if (!fs.existsSync(dir)) {
|
|
2418
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
2419
|
+
}
|
|
2420
|
+
|
|
2421
|
+
// Сохраняем JSON в файл
|
|
2422
|
+
const jsonContent = JSON.stringify(exportData, null, 2);
|
|
2423
|
+
fs.writeFileSync(file_path, jsonContent, 'utf8');
|
|
2424
|
+
|
|
2425
|
+
const fileSizeKB = Math.round(jsonContent.length / 1024);
|
|
2426
|
+
|
|
2427
|
+
return {
|
|
2428
|
+
content: [{
|
|
2429
|
+
type: "text",
|
|
2430
|
+
text: `✅ Схема "${schema.name}" экспортирована в файл!
|
|
2431
|
+
|
|
2432
|
+
📁 Путь: ${file_path}
|
|
2433
|
+
📊 Размер: ${fileSizeKB}KB
|
|
2434
|
+
|
|
2435
|
+
Статистика:
|
|
2436
|
+
• Элементов: ${elements.length}
|
|
2437
|
+
• Связей: ${connections.length}
|
|
2438
|
+
• Тегов: ${tagsDictionary.length}
|
|
2439
|
+
|
|
2440
|
+
Используй Read tool чтобы прочитать файл, или import_schema_from_json с file_path для импорта в другую схему.`,
|
|
2441
|
+
}],
|
|
2442
|
+
};
|
|
2443
|
+
}
|
|
2444
|
+
|
|
2445
|
+
// Без file_path — возвращаем JSON в ответе (как раньше)
|
|
2446
|
+
const formatNames = {
|
|
2447
|
+
full: "Полный экспорт",
|
|
2448
|
+
compact: "Компактный экспорт",
|
|
2449
|
+
elements_only: "Элементы"
|
|
2450
|
+
};
|
|
2451
|
+
const exportText = `${formatNames[format] || "Экспорт"} схемы "${schema.name}":\n\n\`\`\`json\n${JSON.stringify(exportData, null, 2)}\n\`\`\``;
|
|
2452
|
+
|
|
2269
2453
|
return {
|
|
2270
2454
|
content: [{
|
|
2271
2455
|
type: "text",
|
|
@@ -2278,13 +2462,178 @@ URL: ${API_BASE_URL}/canvas?schema=${result.schema.id}${warningsText}`,
|
|
|
2278
2462
|
• Тегов: ${tagsDictionary.length}
|
|
2279
2463
|
|
|
2280
2464
|
Этот JSON можно:
|
|
2281
|
-
• Сохранить в файл
|
|
2465
|
+
• Сохранить в файл (укажи file_path в следующий раз!)
|
|
2282
2466
|
• Импортировать через import_schema_from_json
|
|
2283
2467
|
• Передать в другую систему`,
|
|
2284
2468
|
}],
|
|
2285
2469
|
};
|
|
2286
2470
|
}
|
|
2287
2471
|
|
|
2472
|
+
// ========== ВЕРСИИ ==========
|
|
2473
|
+
case "list_versions": {
|
|
2474
|
+
const { schema_id, limit = 50, offset = 0 } = args;
|
|
2475
|
+
|
|
2476
|
+
const result = await apiRequest(`/schemas/${schema_id}/versions?limit=${Math.min(limit, 100)}&offset=${offset}`);
|
|
2477
|
+
|
|
2478
|
+
if (!result.versions || result.versions.length === 0) {
|
|
2479
|
+
return {
|
|
2480
|
+
content: [{
|
|
2481
|
+
type: "text",
|
|
2482
|
+
text: `История схемы пуста.
|
|
2483
|
+
|
|
2484
|
+
Версии создаются автоматически при каждом сохранении схемы.
|
|
2485
|
+
Также можно создать ручную версию (checkpoint) с помощью create_version.`,
|
|
2486
|
+
}],
|
|
2487
|
+
};
|
|
2488
|
+
}
|
|
2489
|
+
|
|
2490
|
+
const versionsList = result.versions.map(v => {
|
|
2491
|
+
const date = new Date(v.createdAt);
|
|
2492
|
+
const dateStr = date.toLocaleDateString('ru-RU');
|
|
2493
|
+
const timeStr = date.toLocaleTimeString('ru-RU', { hour: '2-digit', minute: '2-digit' });
|
|
2494
|
+
const typeLabel = v.isManual ? '📌 Ручная' : '⏱️ Авто';
|
|
2495
|
+
const commentText = v.comment ? ` — "${v.comment}"` : '';
|
|
2496
|
+
return `#${v.versionNumber} | ${dateStr} ${timeStr} | ${typeLabel} | ${v.elementsCount} элем.${commentText}\n ID: ${v.id}`;
|
|
2497
|
+
});
|
|
2498
|
+
|
|
2499
|
+
return {
|
|
2500
|
+
content: [{
|
|
2501
|
+
type: "text",
|
|
2502
|
+
text: `📜 История схемы (${result.versions.length} из ${result.total} версий)
|
|
2503
|
+
|
|
2504
|
+
${versionsList.join('\n\n')}
|
|
2505
|
+
|
|
2506
|
+
${result.hasMore ? `\n⏩ Есть ещё версии. Используй offset=${offset + result.versions.length} для продолжения.` : ''}
|
|
2507
|
+
|
|
2508
|
+
Команды:
|
|
2509
|
+
• get_version — посмотреть содержимое версии
|
|
2510
|
+
• restore_version — восстановить схему из версии
|
|
2511
|
+
• create_version — создать ручную версию (checkpoint)`,
|
|
2512
|
+
}],
|
|
2513
|
+
};
|
|
2514
|
+
}
|
|
2515
|
+
|
|
2516
|
+
case "get_version": {
|
|
2517
|
+
const { schema_id, version_id } = args;
|
|
2518
|
+
|
|
2519
|
+
const result = await apiRequest(`/schemas/${schema_id}/versions/${version_id}`);
|
|
2520
|
+
const version = result.version;
|
|
2521
|
+
|
|
2522
|
+
// Парсим данные версии
|
|
2523
|
+
let versionData = {};
|
|
2524
|
+
try {
|
|
2525
|
+
versionData = JSON.parse(version.data);
|
|
2526
|
+
} catch (e) {
|
|
2527
|
+
versionData = { elements: [], connections: [] };
|
|
2528
|
+
}
|
|
2529
|
+
|
|
2530
|
+
const elementsCount = versionData.elements?.length || 0;
|
|
2531
|
+
const connectionsCount = versionData.connections?.length || 0;
|
|
2532
|
+
const dataSize = version.data?.length || 0;
|
|
2533
|
+
const isLargeVersion = dataSize > 50000 || elementsCount > 100;
|
|
2534
|
+
|
|
2535
|
+
const date = new Date(version.createdAt);
|
|
2536
|
+
const dateStr = date.toLocaleDateString('ru-RU');
|
|
2537
|
+
const timeStr = date.toLocaleTimeString('ru-RU', { hour: '2-digit', minute: '2-digit' });
|
|
2538
|
+
const typeLabel = version.isManual ? '📌 Ручная версия' : '⏱️ Автосохранение';
|
|
2539
|
+
|
|
2540
|
+
let elementsText;
|
|
2541
|
+
if (isLargeVersion) {
|
|
2542
|
+
const previewElements = (versionData.elements || []).slice(0, 5);
|
|
2543
|
+
elementsText = `⚠️ Большая версия: ${elementsCount} элементов, ~${Math.round(dataSize / 1024)}KB
|
|
2544
|
+
|
|
2545
|
+
Первые 5 элементов:
|
|
2546
|
+
${JSON.stringify(previewElements, null, 2)}`;
|
|
2547
|
+
} else {
|
|
2548
|
+
elementsText = JSON.stringify(versionData.elements || [], null, 2);
|
|
2549
|
+
}
|
|
2550
|
+
|
|
2551
|
+
return {
|
|
2552
|
+
content: [{
|
|
2553
|
+
type: "text",
|
|
2554
|
+
text: `📋 Версия #${version.versionNumber}
|
|
2555
|
+
|
|
2556
|
+
ID версии: ${version.id}
|
|
2557
|
+
Тип: ${typeLabel}
|
|
2558
|
+
Дата: ${dateStr} ${timeStr}
|
|
2559
|
+
${version.comment ? `Комментарий: "${version.comment}"` : ''}
|
|
2560
|
+
|
|
2561
|
+
Статистика:
|
|
2562
|
+
• Элементов: ${elementsCount}
|
|
2563
|
+
• Связей: ${connectionsCount}
|
|
2564
|
+
• Размер: ~${Math.round(dataSize / 1024)}KB
|
|
2565
|
+
|
|
2566
|
+
Элементы:
|
|
2567
|
+
${elementsText}
|
|
2568
|
+
|
|
2569
|
+
Команды:
|
|
2570
|
+
• restore_version — восстановить схему из этой версии
|
|
2571
|
+
• list_versions — вернуться к списку версий`,
|
|
2572
|
+
}],
|
|
2573
|
+
};
|
|
2574
|
+
}
|
|
2575
|
+
|
|
2576
|
+
case "restore_version": {
|
|
2577
|
+
const { schema_id, version_id } = args;
|
|
2578
|
+
|
|
2579
|
+
const result = await apiRequest(`/schemas/${schema_id}/versions/${version_id}/restore`, {
|
|
2580
|
+
method: "POST",
|
|
2581
|
+
});
|
|
2582
|
+
|
|
2583
|
+
const restored = result.restoredVersion;
|
|
2584
|
+
const date = new Date(restored.createdAt);
|
|
2585
|
+
const dateStr = date.toLocaleDateString('ru-RU');
|
|
2586
|
+
const timeStr = date.toLocaleTimeString('ru-RU', { hour: '2-digit', minute: '2-digit' });
|
|
2587
|
+
|
|
2588
|
+
return {
|
|
2589
|
+
content: [{
|
|
2590
|
+
type: "text",
|
|
2591
|
+
text: `✅ Схема восстановлена!
|
|
2592
|
+
|
|
2593
|
+
Восстановлено из версии #${restored.versionNumber}
|
|
2594
|
+
Дата версии: ${dateStr} ${timeStr}
|
|
2595
|
+
|
|
2596
|
+
⚠️ Перед восстановлением была автоматически создана резервная копия текущего состояния.
|
|
2597
|
+
|
|
2598
|
+
URL: ${API_BASE_URL}/canvas?schema=${schema_id}
|
|
2599
|
+
|
|
2600
|
+
Совет: используй list_versions чтобы увидеть обновлённую историю.`,
|
|
2601
|
+
}],
|
|
2602
|
+
};
|
|
2603
|
+
}
|
|
2604
|
+
|
|
2605
|
+
case "create_version": {
|
|
2606
|
+
const { schema_id, comment } = args;
|
|
2607
|
+
|
|
2608
|
+
const result = await apiRequest(`/schemas/${schema_id}/versions`, {
|
|
2609
|
+
method: "POST",
|
|
2610
|
+
body: JSON.stringify({
|
|
2611
|
+
isManual: true,
|
|
2612
|
+
comment: comment || null,
|
|
2613
|
+
}),
|
|
2614
|
+
});
|
|
2615
|
+
|
|
2616
|
+
const version = result.version;
|
|
2617
|
+
const date = new Date(version.createdAt);
|
|
2618
|
+
const dateStr = date.toLocaleDateString('ru-RU');
|
|
2619
|
+
const timeStr = date.toLocaleTimeString('ru-RU', { hour: '2-digit', minute: '2-digit' });
|
|
2620
|
+
|
|
2621
|
+
return {
|
|
2622
|
+
content: [{
|
|
2623
|
+
type: "text",
|
|
2624
|
+
text: `✅ Ручная версия создана!
|
|
2625
|
+
|
|
2626
|
+
Версия: #${version.versionNumber}
|
|
2627
|
+
Дата: ${dateStr} ${timeStr}
|
|
2628
|
+
${version.comment ? `Комментарий: "${version.comment}"` : ''}
|
|
2629
|
+
|
|
2630
|
+
📌 Ручные версии не удаляются при очистке старых автосохранений.
|
|
2631
|
+
|
|
2632
|
+
Используй restore_version чтобы восстановить схему из этой версии в будущем.`,
|
|
2633
|
+
}],
|
|
2634
|
+
};
|
|
2635
|
+
}
|
|
2636
|
+
|
|
2288
2637
|
default:
|
|
2289
2638
|
throw new Error(`Неизвестная команда: ${name}`);
|
|
2290
2639
|
}
|
|
@@ -2323,7 +2672,7 @@ async function main() {
|
|
|
2323
2672
|
const server = new Server(
|
|
2324
2673
|
{
|
|
2325
2674
|
name: "schemeog-mcp",
|
|
2326
|
-
version: "
|
|
2675
|
+
version: "3.0.0",
|
|
2327
2676
|
},
|
|
2328
2677
|
{
|
|
2329
2678
|
capabilities: {
|
|
@@ -2353,7 +2702,7 @@ async function main() {
|
|
|
2353
2702
|
const transport = new StdioServerTransport();
|
|
2354
2703
|
await server.connect(transport);
|
|
2355
2704
|
|
|
2356
|
-
console.error("SchemeOG MCP Server
|
|
2705
|
+
console.error("SchemeOG MCP Server v3.0.0 запущен");
|
|
2357
2706
|
}
|
|
2358
2707
|
|
|
2359
2708
|
main().catch(console.error);
|