schemeog-mcp 2.10.0 → 3.0.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/README.md +5 -5
- package/index.js +15 -124
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SchemeOG MCP Server v2.9
|
|
2
2
|
|
|
3
|
-
MCP server for [
|
|
3
|
+
MCP server for [Diagrams.love](https://diagrams.love) — create diagrams and flowcharts with AI.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
@@ -60,7 +60,7 @@ npx schemeog-mcp
|
|
|
60
60
|
|
|
61
61
|
### 1. Get your token
|
|
62
62
|
|
|
63
|
-
1. Open https://
|
|
63
|
+
1. Open https://diagrams.love
|
|
64
64
|
2. Sign in with email
|
|
65
65
|
3. Go to Profile
|
|
66
66
|
4. Copy token from "Claude Code Integration" section
|
|
@@ -249,10 +249,10 @@ You can open any schema by URL using `get_schema_by_url`:
|
|
|
249
249
|
|
|
250
250
|
```
|
|
251
251
|
# Canvas URL (основной формат)
|
|
252
|
-
https://
|
|
252
|
+
https://diagrams.love/canvas?schema=abc123
|
|
253
253
|
|
|
254
254
|
# Shared link
|
|
255
|
-
https://
|
|
255
|
+
https://diagrams.love/shared/xyz789
|
|
256
256
|
```
|
|
257
257
|
|
|
258
258
|
Just paste the URL and the MCP will extract the schema ID automatically.
|
|
@@ -360,7 +360,7 @@ MCP now automatically creates versions when updating schemas:
|
|
|
360
360
|
|
|
361
361
|
## Links
|
|
362
362
|
|
|
363
|
-
- [
|
|
363
|
+
- [Diagrams.love](https://diagrams.love)
|
|
364
364
|
- [GitLab](https://gitlab.com/serter2069/schemeog-mcp)
|
|
365
365
|
|
|
366
366
|
## License
|
package/index.js
CHANGED
|
@@ -40,10 +40,10 @@ import {
|
|
|
40
40
|
import { readFileSync } from "fs";
|
|
41
41
|
|
|
42
42
|
// Конфигурация
|
|
43
|
-
const API_BASE_URL = process.env.SCHEMEOG_API_URL || "https://
|
|
43
|
+
const API_BASE_URL = process.env.SCHEMEOG_API_URL || "https://diagrams.love";
|
|
44
44
|
const AUTH_TOKEN = process.env.SCHEMEOG_TOKEN || "";
|
|
45
|
-
const DOCS_URL = "https://
|
|
46
|
-
const PROFILE_URL = "https://
|
|
45
|
+
const DOCS_URL = "https://diagrams.love/docs";
|
|
46
|
+
const PROFILE_URL = "https://diagrams.love/profile";
|
|
47
47
|
|
|
48
48
|
/**
|
|
49
49
|
* Коды ошибок MCP
|
|
@@ -557,9 +557,9 @@ const TOOLS = [
|
|
|
557
557
|
description: `Получить схему по URL ссылке.
|
|
558
558
|
|
|
559
559
|
Поддерживаемые форматы URL:
|
|
560
|
-
- https://
|
|
561
|
-
-
|
|
562
|
-
- https://
|
|
560
|
+
- https://diagrams.love/canvas?schema=ID (основной формат)
|
|
561
|
+
- diagrams.love/canvas?schema=ID
|
|
562
|
+
- https://diagrams.love/canvas?id=ID (устаревший)
|
|
563
563
|
|
|
564
564
|
Автоматически извлекает ID схемы из URL и проверяет доступ.
|
|
565
565
|
Если у пользователя есть доступ к схеме — возвращает полные данные.
|
|
@@ -571,7 +571,7 @@ const TOOLS = [
|
|
|
571
571
|
properties: {
|
|
572
572
|
url: {
|
|
573
573
|
type: "string",
|
|
574
|
-
description: "URL ссылка на схему (например https://
|
|
574
|
+
description: "URL ссылка на схему (например https://diagrams.love/canvas?schema=xxx)",
|
|
575
575
|
},
|
|
576
576
|
},
|
|
577
577
|
required: ["url"],
|
|
@@ -756,8 +756,7 @@ Claude обрезает большие параметры, но file_path чит
|
|
|
756
756
|
name: "delete_schema",
|
|
757
757
|
description: `Удалить схему по ID.
|
|
758
758
|
|
|
759
|
-
Схема перемещается в
|
|
760
|
-
Для полного удаления используй permanent_delete_schema.`,
|
|
759
|
+
Схема перемещается в корзину. Восстановить или удалить навсегда можно через UI на сайте.`,
|
|
761
760
|
inputSchema: {
|
|
762
761
|
type: "object",
|
|
763
762
|
properties: {
|
|
@@ -769,52 +768,6 @@ Claude обрезает большие параметры, но file_path чит
|
|
|
769
768
|
required: ["schema_id"],
|
|
770
769
|
},
|
|
771
770
|
},
|
|
772
|
-
{
|
|
773
|
-
name: "list_deleted_schemas",
|
|
774
|
-
description: `Получить список удалённых схем (корзина).
|
|
775
|
-
|
|
776
|
-
Возвращает схемы, которые были удалены но ещё не удалены навсегда.
|
|
777
|
-
Можно восстановить через restore_schema или удалить навсегда через permanent_delete_schema.`,
|
|
778
|
-
inputSchema: {
|
|
779
|
-
type: "object",
|
|
780
|
-
properties: {},
|
|
781
|
-
required: [],
|
|
782
|
-
},
|
|
783
|
-
},
|
|
784
|
-
{
|
|
785
|
-
name: "restore_schema",
|
|
786
|
-
description: `Восстановить схему из корзины.
|
|
787
|
-
|
|
788
|
-
Параметры:
|
|
789
|
-
- schema_id: ID схемы из корзины (можно получить через list_deleted_schemas)`,
|
|
790
|
-
inputSchema: {
|
|
791
|
-
type: "object",
|
|
792
|
-
properties: {
|
|
793
|
-
schema_id: {
|
|
794
|
-
type: "string",
|
|
795
|
-
description: "ID схемы для восстановления",
|
|
796
|
-
},
|
|
797
|
-
},
|
|
798
|
-
required: ["schema_id"],
|
|
799
|
-
},
|
|
800
|
-
},
|
|
801
|
-
{
|
|
802
|
-
name: "permanent_delete_schema",
|
|
803
|
-
description: `Удалить схему НАВСЕГДА.
|
|
804
|
-
|
|
805
|
-
ВНИМАНИЕ: Это действие необратимо! Схема будет удалена из базы данных навсегда.
|
|
806
|
-
Работает только со схемами в корзине (сначала нужен обычный delete_schema).`,
|
|
807
|
-
inputSchema: {
|
|
808
|
-
type: "object",
|
|
809
|
-
properties: {
|
|
810
|
-
schema_id: {
|
|
811
|
-
type: "string",
|
|
812
|
-
description: "ID схемы для полного удаления",
|
|
813
|
-
},
|
|
814
|
-
},
|
|
815
|
-
required: ["schema_id"],
|
|
816
|
-
},
|
|
817
|
-
},
|
|
818
771
|
|
|
819
772
|
// ========== ПРОЕКТЫ ==========
|
|
820
773
|
{
|
|
@@ -1194,9 +1147,9 @@ Claude урезает большие параметры, но file_path чита
|
|
|
1194
1147
|
/**
|
|
1195
1148
|
* Извлечь ID схемы из URL
|
|
1196
1149
|
* Поддерживает форматы:
|
|
1197
|
-
* - https://
|
|
1198
|
-
* -
|
|
1199
|
-
* - https://
|
|
1150
|
+
* - https://diagrams.love/canvas?schema=ID (основной)
|
|
1151
|
+
* - diagrams.love/canvas?schema=ID
|
|
1152
|
+
* - https://diagrams.love/canvas?id=ID (устаревший)
|
|
1200
1153
|
*/
|
|
1201
1154
|
function extractSchemaIdFromUrl(url) {
|
|
1202
1155
|
if (!url || typeof url !== "string") return null;
|
|
@@ -1211,7 +1164,7 @@ function extractSchemaIdFromUrl(url) {
|
|
|
1211
1164
|
const urlObj = new URL(normalizedUrl);
|
|
1212
1165
|
|
|
1213
1166
|
// Проверяем что это наш домен
|
|
1214
|
-
if (!urlObj.hostname.includes("
|
|
1167
|
+
if (!urlObj.hostname.includes("diagrams.love") &&
|
|
1215
1168
|
!urlObj.hostname.includes("localhost")) {
|
|
1216
1169
|
return null;
|
|
1217
1170
|
}
|
|
@@ -1379,7 +1332,7 @@ ${JSON.stringify(schema.data?.connections || [], null, 2)}`,
|
|
|
1379
1332
|
if (!schemaId) {
|
|
1380
1333
|
const error = createError(
|
|
1381
1334
|
ErrorCodes.VALIDATION_ERROR,
|
|
1382
|
-
`Не удалось извлечь ID схемы из URL: "${url}"\n\nПоддерживаемые форматы:\n• https://
|
|
1335
|
+
`Не удалось извлечь ID схемы из URL: "${url}"\n\nПоддерживаемые форматы:\n• https://diagrams.love/canvas?schema=ID\n• https://diagrams.love/canvas?id=ID`
|
|
1383
1336
|
);
|
|
1384
1337
|
throw new Error(error.message);
|
|
1385
1338
|
}
|
|
@@ -1678,7 +1631,7 @@ URL: ${API_BASE_URL}/canvas?schema=${schema_id}${warningsText}`,
|
|
|
1678
1631
|
case "delete_schema": {
|
|
1679
1632
|
const { schema_id } = args;
|
|
1680
1633
|
|
|
1681
|
-
|
|
1634
|
+
await apiRequest(`/schemas/${schema_id}`, {
|
|
1682
1635
|
method: "DELETE",
|
|
1683
1636
|
});
|
|
1684
1637
|
|
|
@@ -1687,69 +1640,7 @@ URL: ${API_BASE_URL}/canvas?schema=${schema_id}${warningsText}`,
|
|
|
1687
1640
|
type: "text",
|
|
1688
1641
|
text: `🗑️ Схема перемещена в корзину.
|
|
1689
1642
|
|
|
1690
|
-
Восстановить
|
|
1691
|
-
Для полного удаления используй permanent_delete_schema.`,
|
|
1692
|
-
}],
|
|
1693
|
-
};
|
|
1694
|
-
}
|
|
1695
|
-
|
|
1696
|
-
case "list_deleted_schemas": {
|
|
1697
|
-
const result = await apiRequest("/schemas/deleted/list");
|
|
1698
|
-
|
|
1699
|
-
if (!result.schemas || result.schemas.length === 0) {
|
|
1700
|
-
return {
|
|
1701
|
-
content: [{
|
|
1702
|
-
type: "text",
|
|
1703
|
-
text: `Корзина пуста. Удалённых схем нет.`,
|
|
1704
|
-
}],
|
|
1705
|
-
};
|
|
1706
|
-
}
|
|
1707
|
-
|
|
1708
|
-
const schemasList = result.schemas.map(s => ({
|
|
1709
|
-
id: s.id,
|
|
1710
|
-
name: s.name,
|
|
1711
|
-
description: s.description || "",
|
|
1712
|
-
deletedAt: s.deletedAt,
|
|
1713
|
-
}));
|
|
1714
|
-
|
|
1715
|
-
return {
|
|
1716
|
-
content: [{
|
|
1717
|
-
type: "text",
|
|
1718
|
-
text: `🗑️ В корзине ${result.count} схем:\n\n${JSON.stringify(schemasList, null, 2)}`,
|
|
1719
|
-
}],
|
|
1720
|
-
};
|
|
1721
|
-
}
|
|
1722
|
-
|
|
1723
|
-
case "restore_schema": {
|
|
1724
|
-
const { schema_id } = args;
|
|
1725
|
-
|
|
1726
|
-
const result = await apiRequest(`/schemas/${schema_id}/restore`, {
|
|
1727
|
-
method: "POST",
|
|
1728
|
-
});
|
|
1729
|
-
|
|
1730
|
-
return {
|
|
1731
|
-
content: [{
|
|
1732
|
-
type: "text",
|
|
1733
|
-
text: `✅ ${result.message}
|
|
1734
|
-
|
|
1735
|
-
URL: ${API_BASE_URL}/canvas?schema=${schema_id}`,
|
|
1736
|
-
}],
|
|
1737
|
-
};
|
|
1738
|
-
}
|
|
1739
|
-
|
|
1740
|
-
case "permanent_delete_schema": {
|
|
1741
|
-
const { schema_id } = args;
|
|
1742
|
-
|
|
1743
|
-
const result = await apiRequest(`/schemas/${schema_id}/permanent`, {
|
|
1744
|
-
method: "DELETE",
|
|
1745
|
-
});
|
|
1746
|
-
|
|
1747
|
-
return {
|
|
1748
|
-
content: [{
|
|
1749
|
-
type: "text",
|
|
1750
|
-
text: `🔥 ${result.message}
|
|
1751
|
-
|
|
1752
|
-
Это действие необратимо.`,
|
|
1643
|
+
Восстановить или удалить навсегда можно в профиле: ${API_BASE_URL}/profile`,
|
|
1753
1644
|
}],
|
|
1754
1645
|
};
|
|
1755
1646
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "schemeog-mcp",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "MCP Server for
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"description": "MCP Server for Diagrams.love - Create and manage visual diagrams and flowcharts with AI assistance",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"bin": {
|
|
@@ -21,13 +21,13 @@
|
|
|
21
21
|
"flowcharts",
|
|
22
22
|
"schemas",
|
|
23
23
|
"visualization",
|
|
24
|
-
"
|
|
24
|
+
"diagrams-love"
|
|
25
25
|
],
|
|
26
26
|
"repository": {
|
|
27
27
|
"type": "git",
|
|
28
28
|
"url": "https://gitlab.com/serter2069/schemeog-cloud.git"
|
|
29
29
|
},
|
|
30
|
-
"homepage": "https://
|
|
30
|
+
"homepage": "https://diagrams.love",
|
|
31
31
|
"bugs": {
|
|
32
32
|
"url": "https://gitlab.com/serter2069/schemeog-cloud/-/issues"
|
|
33
33
|
},
|