@umengfe/mcp-server-chart 0.0.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.
Files changed (85) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +273 -0
  3. package/build/charts/area.d.ts +51 -0
  4. package/build/charts/area.js +52 -0
  5. package/build/charts/bar.d.ts +49 -0
  6. package/build/charts/bar.js +53 -0
  7. package/build/charts/base.d.ts +34 -0
  8. package/build/charts/base.js +74 -0
  9. package/build/charts/boxplot.d.ts +47 -0
  10. package/build/charts/boxplot.js +45 -0
  11. package/build/charts/column.d.ts +49 -0
  12. package/build/charts/column.js +53 -0
  13. package/build/charts/district-map.d.ts +93 -0
  14. package/build/charts/district-map.js +85 -0
  15. package/build/charts/dual-axes.d.ts +47 -0
  16. package/build/charts/dual-axes.js +54 -0
  17. package/build/charts/fishbone-diagram.d.ts +28 -0
  18. package/build/charts/fishbone-diagram.js +55 -0
  19. package/build/charts/flow-diagram.d.ts +91 -0
  20. package/build/charts/flow-diagram.js +41 -0
  21. package/build/charts/funnel.d.ts +42 -0
  22. package/build/charts/funnel.js +37 -0
  23. package/build/charts/histogram.d.ts +36 -0
  24. package/build/charts/histogram.js +41 -0
  25. package/build/charts/index.d.ts +28 -0
  26. package/build/charts/index.js +56 -0
  27. package/build/charts/line.d.ts +50 -0
  28. package/build/charts/line.js +47 -0
  29. package/build/charts/liquid.d.ts +34 -0
  30. package/build/charts/liquid.js +42 -0
  31. package/build/charts/mind-map.d.ts +26 -0
  32. package/build/charts/mind-map.js +39 -0
  33. package/build/charts/network-graph.d.ts +91 -0
  34. package/build/charts/network-graph.js +41 -0
  35. package/build/charts/organization-chart.d.ts +114 -0
  36. package/build/charts/organization-chart.js +56 -0
  37. package/build/charts/path-map.d.ts +25 -0
  38. package/build/charts/path-map.js +25 -0
  39. package/build/charts/pie.d.ts +43 -0
  40. package/build/charts/pie.js +44 -0
  41. package/build/charts/pin-map.d.ts +35 -0
  42. package/build/charts/pin-map.js +34 -0
  43. package/build/charts/radar.d.ts +48 -0
  44. package/build/charts/radar.js +45 -0
  45. package/build/charts/sankey.d.ts +46 -0
  46. package/build/charts/sankey.js +43 -0
  47. package/build/charts/scatter.d.ts +47 -0
  48. package/build/charts/scatter.js +43 -0
  49. package/build/charts/treemap.d.ts +86 -0
  50. package/build/charts/treemap.js +55 -0
  51. package/build/charts/venn.d.ts +45 -0
  52. package/build/charts/venn.js +45 -0
  53. package/build/charts/violin.d.ts +47 -0
  54. package/build/charts/violin.js +45 -0
  55. package/build/charts/word-cloud.d.ts +42 -0
  56. package/build/charts/word-cloud.js +40 -0
  57. package/build/index.d.ts +2 -0
  58. package/build/index.js +73 -0
  59. package/build/sdk.d.ts +6 -0
  60. package/build/sdk.js +24 -0
  61. package/build/server.d.ts +17 -0
  62. package/build/server.js +132 -0
  63. package/build/services/index.d.ts +3 -0
  64. package/build/services/index.js +9 -0
  65. package/build/services/sse.d.ts +2 -0
  66. package/build/services/sse.js +58 -0
  67. package/build/services/stdio.d.ts +2 -0
  68. package/build/services/stdio.js +21 -0
  69. package/build/services/streamable.d.ts +2 -0
  70. package/build/services/streamable.js +58 -0
  71. package/build/utils/callTool.d.ts +18 -0
  72. package/build/utils/callTool.js +130 -0
  73. package/build/utils/env.d.ts +12 -0
  74. package/build/utils/env.js +32 -0
  75. package/build/utils/generate.d.ts +25 -0
  76. package/build/utils/generate.js +68 -0
  77. package/build/utils/index.d.ts +3 -0
  78. package/build/utils/index.js +9 -0
  79. package/build/utils/logger.d.ts +28 -0
  80. package/build/utils/logger.js +57 -0
  81. package/build/utils/schema.d.ts +7 -0
  82. package/build/utils/schema.js +14 -0
  83. package/build/utils/validator.d.ts +34 -0
  84. package/build/utils/validator.js +76 -0
  85. package/package.json +65 -0
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validatedTreeDataSchema = exports.validatedNodeEdgeDataSchema = exports.ValidateError = void 0;
4
+ /**
5
+ * The Error class for validation errors in zod.
6
+ */
7
+ class ValidateError extends Error {
8
+ constructor(message) {
9
+ super(message);
10
+ this.name = "ValidateError";
11
+ }
12
+ }
13
+ exports.ValidateError = ValidateError;
14
+ /**
15
+ * Valid node name is unique.
16
+ * Valid edge source and target are existing in nodes.
17
+ * Valid edge source edge target pair are unique.
18
+ * @param data
19
+ * @returns boolean
20
+ */
21
+ const validatedNodeEdgeDataSchema = (data) => {
22
+ const nodeNames = new Set(data.nodes.map((node) => node.name));
23
+ const uniqueNodeNames = new Set();
24
+ // 1. valid node name is unique
25
+ for (const node of data.nodes) {
26
+ if (uniqueNodeNames.has(node.name)) {
27
+ throw new ValidateError(`Invalid parameters: node's name '${node.name}' should be unique.`);
28
+ }
29
+ uniqueNodeNames.add(node.name);
30
+ }
31
+ // 2. valid edge source and target are existing in nodes
32
+ for (const edge of data.edges) {
33
+ if (!nodeNames.has(edge.source)) {
34
+ throw new ValidateError(`Invalid parameters: edge's source '${edge.source}' should exist in nodes.`);
35
+ }
36
+ if (!nodeNames.has(edge.target)) {
37
+ throw new ValidateError(`Invalid parameters: edge's target '${edge.target}' should exist in nodes.`);
38
+ }
39
+ }
40
+ // 3. valid edge source edge target pair are unique
41
+ const edgePairs = new Set();
42
+ for (const edge of data.edges) {
43
+ const pair = `${edge.source}-${edge.target}`;
44
+ if (edgePairs.has(pair)) {
45
+ throw new ValidateError(`Invalid parameters: edge pair '${pair}' should be unique.`);
46
+ }
47
+ edgePairs.add(pair);
48
+ }
49
+ return true;
50
+ };
51
+ exports.validatedNodeEdgeDataSchema = validatedNodeEdgeDataSchema;
52
+ /**
53
+ * Valid TreeData name is unique.
54
+ * @param data
55
+ * @returns boolean
56
+ */
57
+ const validatedTreeDataSchema = (data) => {
58
+ const node = data;
59
+ const names = new Set();
60
+ // valid node name is unique
61
+ const checkUniqueness = (currentNode) => {
62
+ if (names.has(currentNode.name)) {
63
+ throw new ValidateError(`Invalid parameters: node's name '${currentNode.name}' should be unique.`);
64
+ }
65
+ names.add(currentNode.name);
66
+ if (currentNode.children) {
67
+ for (let i = 0; i < currentNode.children.length; i++) {
68
+ const child = currentNode.children[i];
69
+ checkUniqueness(child);
70
+ }
71
+ }
72
+ };
73
+ checkUniqueness(node);
74
+ return true;
75
+ };
76
+ exports.validatedTreeDataSchema = validatedTreeDataSchema;
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "@umengfe/mcp-server-chart",
3
+ "description": "A Model Context Protocol server for generating charts using AntV. This is a TypeScript-based MCP server that provides chart generation capabilities. It allows you to create various types of charts through MCP tools.",
4
+ "version": "0.0.1",
5
+ "main": "build/index.js",
6
+ "types": "build/index.d.ts",
7
+ "exports": {
8
+ "./sdk": "./build/sdk.js"
9
+ },
10
+ "scripts": {
11
+ "prebuild": "rm -rf build/*",
12
+ "build": "tsc && tsc-alias -p tsconfig.json",
13
+ "postbuild": "chmod +x build/index.js",
14
+ "start": "npx @modelcontextprotocol/inspector node build/index.js",
15
+ "prepare": "husky && npm run build",
16
+ "prepublishOnly": "npm run build",
17
+ "test": "vitest"
18
+ },
19
+ "lint-staged": {
20
+ "*.{ts,js,json}": [
21
+ "biome check --write",
22
+ "biome format --write",
23
+ "biome lint"
24
+ ]
25
+ },
26
+ "bin": {
27
+ "mcp-server-chart": "./build/index.js"
28
+ },
29
+ "publishConfig": {
30
+ "registry": "https://registry.npmjs.org/",
31
+ "access": "public"
32
+ },
33
+ "files": ["build"],
34
+ "keywords": ["antv", "mcp", "data-visualization", "chart", "graph", "map"],
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/antvis/mcp-server-chart"
38
+ },
39
+ "author": {
40
+ "name": "AntV",
41
+ "url": "https://antv.antgroup.com/"
42
+ },
43
+ "license": "MIT",
44
+ "dependencies": {
45
+ "@modelcontextprotocol/sdk": "^1.11.4",
46
+ "axios": "^1.11.0",
47
+ "cors": "^2.8.5",
48
+ "express": "^5.1.0",
49
+ "zod": "^3.25.16",
50
+ "zod-to-json-schema": "^3.24.5"
51
+ },
52
+ "devDependencies": {
53
+ "@biomejs/biome": "1.9.4",
54
+ "@modelcontextprotocol/inspector": "^0.16.6",
55
+ "@types/cors": "^2.8.19",
56
+ "@types/express": "^5.0.3",
57
+ "@types/node": "^22.15.21",
58
+ "@vitest/coverage-v8": "3.2.4",
59
+ "husky": "^9.1.7",
60
+ "lint-staged": "^15.5.2",
61
+ "tsc-alias": "^1.8.16",
62
+ "typescript": "^5.8.3",
63
+ "vitest": "^3.1.4"
64
+ }
65
+ }