@zhengcankai/mind-map-mcp 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 ADDED
@@ -0,0 +1,170 @@
1
+ # mind-map-mcp
2
+
3
+ 一个用于生成思维导图的 MCP (Model Context Protocol) 服务器。
4
+
5
+ ## 功能特性
6
+
7
+ - 🧠 根据文本内容自动生成思维导图
8
+ - 🔗 返回可访问的思维导图图片链接
9
+ - 🚀 支持 CodeBuddy、Cursor、Qoder 等 MCP 客户端
10
+ - 🌐 基于 Coze API 的强大思维导图生成能力
11
+
12
+ ## 创新点
13
+ 首次使用 Coze 作为核心工作流制作MCP:
14
+ - 无需考虑报错。报错可以直接通过 Coze 找到对应原因
15
+ - 逻辑处理。可以任意修改 Coze 的工作流,更新发布即可,无需重新修改mcp
16
+ - 已于维护
17
+
18
+ ## 安装
19
+
20
+ ### 通过 NPM 安装
21
+
22
+ ```bash
23
+ npm install -g @lucianaib/mind-map-mcp
24
+ ```
25
+
26
+ ### 通过 npx 直接使用
27
+
28
+ ```bash
29
+ npx @lucianaib/mind-map-mcp
30
+ ```
31
+
32
+ ## 配置
33
+
34
+ ### 在 CodeBuddy、 Qoder中配置
35
+
36
+ 1. 打开 CodeBuddy 设置
37
+ 2. 找到 MCP 服务器配置
38
+ 3. 添加新的服务器:
39
+
40
+ ```json
41
+ {
42
+ "mcpServers": {
43
+ "mind-map": {
44
+ "command": "npx",
45
+ "args": ["@lucianaib/mind-map-mcp"]
46
+ }
47
+ }
48
+ }
49
+ ```
50
+
51
+ ![CodeBuddy 配置成功示例.png](src\CodeBuddy 配置成功示例.png)
52
+
53
+ ### 在 Cursor 中配置
54
+
55
+ 1. 打开 Cursor 设置 (Ctrl/Cmd + ,)
56
+ 2. 搜索 "MCP"
57
+ 3. 在 MCP 服务器配置中添加:
58
+
59
+ ```json
60
+ {
61
+ "mind-map": {
62
+ "command": "npx",
63
+ "args": ["@lucianaib/mind-map-mcp"]
64
+ }
65
+ }
66
+ ```
67
+
68
+ ## 使用方法
69
+
70
+ 配置完成后,你可以在支持 MCP 的工具中使用以下功能:
71
+
72
+ ### 生成思维导图
73
+
74
+ ```
75
+ 用 MCP 帮我生成一个关于"分布式系统架构"的思维导图
76
+ ```
77
+
78
+ ![实战生成思维导图.png](src\实战生成思维导图.png)
79
+
80
+ 或者直接调用工具:
81
+
82
+ ```
83
+ 使用 generate_mindmap 工具,内容为:"机器学习的基本概念和应用"
84
+ ```
85
+
86
+ ## 可用工具
87
+
88
+ ### generate_mindmap
89
+
90
+ 根据输入内容生成思维导图。
91
+
92
+ **参数:**
93
+ - `content` (string, 必需): 要转换为思维导图的内容描述
94
+
95
+ **返回:**
96
+ - 思维导图的图片链接
97
+ - 生成状态信息
98
+
99
+ ## 开发
100
+
101
+ ### 本地开发
102
+
103
+ 1. 克隆仓库:
104
+ ```bash
105
+ git clone git@github.com:OnePieceLwc/mind-map-mcp.git
106
+ cd mind-map-mcp
107
+ ```
108
+
109
+ 2. 安装依赖:
110
+ ```bash
111
+ npm install
112
+ ```
113
+
114
+ 3. 构建项目:
115
+ ```bash
116
+ npm run build
117
+ ```
118
+
119
+ 4. 启动开发模式:
120
+ ```bash
121
+ npm run dev
122
+ ```
123
+
124
+ ### 项目结构
125
+
126
+ ```
127
+ Mind-map-mcp/
128
+ ├── src/
129
+ │ └── index.ts # 主要的 MCP 服务器代码
130
+ ├── dist/ # 编译后的 JavaScript 文件
131
+ ├── package.json # 项目配置
132
+ ├── tsconfig.json # TypeScript 配置
133
+ └── README.md # 项目说明
134
+ ```
135
+
136
+ ## API 说明
137
+
138
+ 本工具使用 Coze API 来生成思维导图。API 详情:
139
+
140
+ - **端点**: `https://api.coze.cn/v1/workflow/run`
141
+ - **方法**: POST
142
+ - **认证**: Bearer Token
143
+ - **返回**: 思维导图图片链接
144
+
145
+ ## 故障排除
146
+
147
+ ### 常见问题
148
+
149
+ 1. **"未知工具" 错误**
150
+ - 确保 MCP 服务器正确配置
151
+ - 检查工具名称是否正确 (`generate_mindmap`)
152
+
153
+ 2. **API 请求失败**
154
+ - 检查网络连接
155
+ - 确认 API 服务状态
156
+
157
+ 3. **中文编码问题**
158
+ - 本工具已处理中文编码,支持中文内容输入
159
+
160
+ ### 调试模式
161
+
162
+ 启动时会在 stderr 输出调试信息,可以通过查看日志来诊断问题。
163
+
164
+ ## 许可证
165
+
166
+ MIT License
167
+
168
+ ## 贡献
169
+
170
+ 欢迎提交 Issue 和 Pull Request!
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,242 @@
1
+ #!/usr/bin/env node
2
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
5
+ import fetch from 'node-fetch';
6
+ // 思维导图生成工具
7
+ class MindMapMCPServer {
8
+ server;
9
+ constructor() {
10
+ this.server = new Server({
11
+ name: '@zhengcankai/mind-map-mcp',
12
+ version: '2.0.0',
13
+ }, {
14
+ capabilities: {
15
+ tools: {},
16
+ },
17
+ });
18
+ this.setupToolHandlers();
19
+ this.setupErrorHandling();
20
+ }
21
+ setupErrorHandling() {
22
+ this.server.onerror = (error) => {
23
+ console.error('[MCP错误]', error);
24
+ };
25
+ process.on('SIGINT', async () => {
26
+ await this.server.close();
27
+ process.exit(0);
28
+ });
29
+ }
30
+ setupToolHandlers() {
31
+ // 列出可用工具
32
+ this.server.setRequestHandler(ListToolsRequestSchema, async () => {
33
+ return {
34
+ tools: [
35
+ {
36
+ name: 'generate_mindmap',
37
+ description: '根据输入内容生成思维导图',
38
+ inputSchema: {
39
+ type: 'object',
40
+ properties: {
41
+ content: {
42
+ type: 'string',
43
+ description: '要转换为思维导图的内容描述',
44
+ },
45
+ },
46
+ required: ['content'],
47
+ },
48
+ },
49
+ ],
50
+ };
51
+ });
52
+ // 处理工具调用
53
+ this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
54
+ const { name, arguments: args } = request.params;
55
+ if (name === 'generate_mindmap') {
56
+ return await this.generateMindMap(args);
57
+ }
58
+ throw new Error(`未知工具: ${name}`);
59
+ });
60
+ }
61
+ async generateMindMap(args) {
62
+ try {
63
+ const { content } = args;
64
+ if (!content || typeof content !== 'string') {
65
+ throw new Error('内容参数是必需的,且必须是字符串类型');
66
+ }
67
+ console.error(`[调试] 正在为内容生成思维导图: ${content}`);
68
+ // 从环境变量获取 Coze API Token,必须设置,不使用默认值
69
+ const cozeToken = process.env.COZE_API_TOKEN;
70
+ // 调试日志:输出环境变量状态(隐藏敏感信息)
71
+ console.error(`[调试] COZE_API_TOKEN 是否存在: ${!!process.env.COZE_API_TOKEN}`);
72
+ console.error(`[调试] COZE_API_TOKEN 长度: ${process.env.COZE_API_TOKEN?.length || 0}`);
73
+ console.error(`[调试] COZE_WORKFLOW_ID: ${process.env.COZE_WORKFLOW_ID || '未设置'}`);
74
+ if (!cozeToken) {
75
+ throw new Error('请设置 COZE_API_TOKEN 环境变量,命令示例: $env:COZE_API_TOKEN="your_token"');
76
+ }
77
+ // 从环境变量获取 Workflow ID,必须设置,不使用默认值
78
+ const workflowId = process.env.COZE_WORKFLOW_ID;
79
+ if (!workflowId) {
80
+ throw new Error('请设置 COZE_WORKFLOW_ID 环境变量,命令示例: $env:COZE_WORKFLOW_ID="your_workflow_id"');
81
+ }
82
+ // 根据 Token 类型选择正确的认证方式
83
+ // Personal Access Token (pat_*) 使用 'Bearer' 前缀
84
+ // OAuth Token 也使用 'Bearer' 前缀
85
+ const authHeader = cozeToken.startsWith('pat_')
86
+ ? `Bearer ${cozeToken}`
87
+ : `Bearer ${cozeToken}`;
88
+ console.error(`[调试] 使用 Token 类型: ${cozeToken.startsWith('pat_') ? 'Personal Access Token' : 'OAuth Token'}`);
89
+ const response = await fetch('https://api.coze.cn/v1/workflow/stream_run', {
90
+ method: 'POST',
91
+ headers: {
92
+ 'Authorization': authHeader,
93
+ 'Content-Type': 'application/json',
94
+ },
95
+ body: JSON.stringify({
96
+ workflow_id: workflowId,
97
+ parameters: {
98
+ input: content
99
+ }
100
+ }),
101
+ });
102
+ if (!response.ok) {
103
+ // 尝试读取错误响应体
104
+ let errorText = '';
105
+ try {
106
+ errorText = await response.text();
107
+ }
108
+ catch (e) {
109
+ errorText = '无法读取错误详情';
110
+ }
111
+ throw new Error(`API请求失败: ${response.status} ${response.statusText}. 错误详情: ${errorText}`);
112
+ }
113
+ // 检查是否是SSE流式响应
114
+ const contentType = response.headers.get('content-type') || '';
115
+ if (contentType.includes('text/event-stream')) {
116
+ // 处理SSE响应
117
+ const body = response.body;
118
+ if (!body) {
119
+ throw new Error('响应体为空');
120
+ }
121
+ // Node.js中的流处理
122
+ let fullData = '';
123
+ for await (const chunk of body) {
124
+ const chunkString = chunk.toString();
125
+ fullData += chunkString;
126
+ // 解析SSE数据
127
+ const lines = chunkString.split('\n');
128
+ for (const line of lines) {
129
+ if (line.startsWith('data: ')) {
130
+ const jsonData = line.substring(6).trim();
131
+ if (jsonData) {
132
+ try {
133
+ const parsed = JSON.parse(jsonData);
134
+ if (parsed.content) {
135
+ // 找到了包含内容的数据
136
+ console.error(`[调试] 解析到SSE数据: ${jsonData}`);
137
+ const contentData = JSON.parse(parsed.content);
138
+ if (contentData.output) {
139
+ return {
140
+ content: [
141
+ {
142
+ type: 'text',
143
+ text: `思维导图生成成功!
144
+
145
+ 内容: ${content}
146
+
147
+ 思维导图链接: ${contentData.output}
148
+
149
+ 您可以点击链接查看生成的思维导图。`,
150
+ },
151
+ ],
152
+ };
153
+ }
154
+ }
155
+ }
156
+ catch (parseError) {
157
+ console.error(`[调试] 解析SSE数据失败: ${parseError}`);
158
+ }
159
+ }
160
+ }
161
+ }
162
+ }
163
+ throw new Error(`SSE响应中未找到有效数据。完整响应: ${fullData.substring(0, 500)}`);
164
+ throw new Error(`SSE响应中未找到有效数据。完整响应: ${fullData.substring(0, 500)}`);
165
+ }
166
+ else {
167
+ // 处理普通JSON响应
168
+ let responseText = '';
169
+ try {
170
+ responseText = await response.text();
171
+ console.error(`[调试] API响应原始内容: ${responseText.substring(0, 200)}${responseText.length > 200 ? '...' : ''}`);
172
+ }
173
+ catch (e) {
174
+ throw new Error(`无法读取API响应: ${e}`);
175
+ }
176
+ // 尝试解析JSON
177
+ let result;
178
+ try {
179
+ result = JSON.parse(responseText);
180
+ }
181
+ catch (e) {
182
+ throw new Error(`API响应不是有效的JSON格式: ${responseText.substring(0, 100)}${responseText.length > 100 ? '...' : ''}`);
183
+ }
184
+ if (result.code !== 0) {
185
+ throw new Error(`API返回错误: ${result.msg || '未知错误'}. 完整响应: ${JSON.stringify(result)}`);
186
+ }
187
+ // 解析返回的数据
188
+ let outputData;
189
+ try {
190
+ outputData = JSON.parse(result.data);
191
+ }
192
+ catch (e) {
193
+ // 如果解析失败,直接使用原始数据
194
+ outputData = { output: result.data };
195
+ }
196
+ const mindmapUrl = outputData.output;
197
+ if (!mindmapUrl) {
198
+ throw new Error('API返回的数据中没有找到思维导图URL');
199
+ }
200
+ console.error(`[调试] 思维导图生成成功: ${mindmapUrl}`);
201
+ return {
202
+ content: [
203
+ {
204
+ type: 'text',
205
+ text: `思维导图生成成功!
206
+
207
+ 内容: ${content}
208
+
209
+ 思维导图链接: ${mindmapUrl}
210
+
211
+ 您可以点击链接查看生成的思维导图。`,
212
+ },
213
+ ],
214
+ };
215
+ }
216
+ }
217
+ catch (error) {
218
+ console.error('[错误] 生成思维导图时出错:', error);
219
+ return {
220
+ content: [
221
+ {
222
+ type: 'text',
223
+ text: `生成思维导图时出错: ${error instanceof Error ? error.message : '未知错误'}`,
224
+ },
225
+ ],
226
+ isError: true,
227
+ };
228
+ }
229
+ }
230
+ async run() {
231
+ const transport = new StdioServerTransport();
232
+ await this.server.connect(transport);
233
+ console.error('思维导图 MCP 服务器已启动');
234
+ }
235
+ }
236
+ // 启动服务器
237
+ const server = new MindMapMCPServer();
238
+ server.run().catch((error) => {
239
+ console.error('启动服务器失败:', error);
240
+ process.exit(1);
241
+ });
242
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@zhengcankai/mind-map-mcp",
3
+ "version": "3.0.0",
4
+ "description": "一个用于生成思维导图的 MCP 服务器",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "dev": "tsc --watch",
10
+ "start": "node dist/index.js",
11
+ "prepare": "npm run build"
12
+ },
13
+ "keywords": [
14
+ "mcp",
15
+ "mindmap",
16
+ "思维导图",
17
+ "model-context-protocol"
18
+ ],
19
+ "author": "zhengcankai",
20
+ "license": "MIT",
21
+ "dependencies": {
22
+ "@modelcontextprotocol/sdk": "^1.26.0",
23
+ "node-fetch": "^3.3.2"
24
+ },
25
+ "devDependencies": {
26
+ "@types/node": "^20.0.0",
27
+ "typescript": "^5.0.0"
28
+ },
29
+ "bin": {
30
+ "mind-map-mcp": "dist/index.js"
31
+ },
32
+ "files": [
33
+ "dist/**/*",
34
+ "README.md"
35
+ ],
36
+ "repository": {
37
+ "type": "git",
38
+ "url": "git+https://github.com/OnePieceLwc/mind-map-mcp.git"
39
+ },
40
+ "homepage": "https://github.com/OnePieceLwc/mind-map-mcp#readme",
41
+ "bugs": {
42
+ "url": "https://github.com/OnePieceLwc/mind-map-mcp/issues"
43
+ },
44
+ "engines": {
45
+ "node": ">=18.0.0"
46
+ },
47
+ "publishConfig": {
48
+ "access": "public"
49
+ }
50
+ }