使用说明
Gemini的Mermaid MCP服务器
该项目实现了一个模型上下文协议(MCP)服务器,用于生成和验证Mermaid图。它被设计为Gemini CLI扩展。
先决条件
- Node.js(v18+)
- npm
安装和设置
-
安装依赖项并构建:
npm install这将自动安装MCP服务器的依赖项并构建项目。
-
Gemini CLI链接: 从项目根目录运行以下命令:
gemini extensions link . -
重新启动Gemini CLI: 这
mermaid工具和斜线命令现在将在您的会话中可用。
用户安装
要分发此扩展,只需共享您的Git存储库URL。用户可以直接安装它:
gemini extension install <your-git-repo-url>
该扩展将自动安装依赖项并构建服务器。
特性
- mermaid_generate_image:从Mermaid代码生成PNG/SVG/PDF。
- mermaid_validate语法:验证Mermaid语法。
发展
源代码位于 mcp-server/src.
- 运行测试:
node mcp-server/test-manual.cjs
文档
系统上下文
C4Context
title System Context Diagram for Mermaid MCP Extension
Person(user, "User", "Developer using Gemini CLI")
System(gemini, "Gemini CLI", "AI Assistant in Terminal")
System_Boundary(extension, "Mermaid MCP Extension") {
System(ext_config, "Extension Config", "gemini-extension.json & commands/")
System(mcp_server, "MCP Server", "Node.js Server (stdio)")
}
System_Ext(mermaid_cli, "Mermaid CLI", "mmdc / Puppeteer")
Rel(user, gemini, "Uses slash commands")
Rel(gemini, ext_config, "Reads definition")
Rel(gemini, mcp_server, "Sends tool calls (JSON-RPC)")
Rel(mcp_server, mermaid_cli, "Executes for rendering")
架构图
graph TD
subgraph Client ["Gemini CLI"]
CLI[Command Line Interface]
ExtHost[Extension Host]
end
subgraph Extension ["Mermaid MCP Extension"]
Config["gemini-extension.json"]
Commands["Slash Commands\n(/mermaid, /validate)"]
subgraph MCPServer ["MCP Server Process"]
Index["index.ts\n(Entry Point)"]
Server["MermaidServer Class\n(MCP Protocol)"]
Handler["MermaidHandler Class\n(Business Logic)"]
end
end
subgraph External ["External Tools"]
MMDC["Mermaid CLI (mmdc)\n(Headless Chrome)"]
FS["File System"]
end
CLI -->|User Input| ExtHost
ExtHost -->|Load| Config
ExtHost -->|Parse| Commands
Commands -->|Tool Call| Server
Index -->|Init| Server
Server -->|Delegate| Handler
Handler -->|Spawn Process| MMDC
Handler -->|Read/Write| FS
MMDC -->|Generate| FS
FS -->|Image Path| Handler
Handler -->|Result| Server
Server -->|Response| ExtHost
ExtHost -->|Display| CLI
类图
classDiagram
class MermaidServer {
-Server server
-MermaidHandler mermaidHandler
+constructor()
-setupToolHandlers()
-setupErrorHandling()
+run()
}
class MermaidHandler {
-string mmdcPath
+constructor()
+generateImage(args) Promise~MermaidToolResponse~
+validateSyntax(args) Promise~MermaidToolResponse~
-runMmdc(args) Promise
}
class Types {
<<interface>>
GenerateImageArgs
ValidateSyntaxArgs
MermaidToolResponse
}
MermaidServer --> MermaidHandler : uses
MermaidHandler ..> Types : uses
备注:高分辨率图表图像可在
docs/目录。
故障排除
Linux/Ubuntu用户
如果遇到安装错误或“连接已关闭”:
-
Node.js版本:确保您使用的是Node.js v18或更高版本。
node -v -
系统相关性:此扩展程序依赖于Puppeteer(无头Chrome)。我们提供了一个帮助脚本,用于在Ubuntu/Debian上安装必要的库:
# From inside the extension directory (after cloning or installing) cd <extension-path> sudo bash scripts/setup-linux.sh通常,扩展安装在
~/.gemini/extensions/meramid-mcp或类似。
配置
该扩展已预先配置为使用本地Node.js服务器运行。无需手动配置 mcpServers 运行后需要 gemini extensions link ..
许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。
