【技术文档摘要】
<a href="https://glama.ai/mcp/servers/@phxdev1/archy-mcp"> <img width="380" height="200" src="https://gips0.baidu.com/it/u=438082702,2264321290&fm=3081&app=3081&f=PNG?w=760&h=400" /> </a>Archy 是一个使用 Mermaid 语法生成架构图的 MCP(模型上下文协议)服务器。它可以处理自然语言描述和 GitHub 仓库 URL 来创建各种类型的图表。
克隆仓库:
git clone https://github.com/phxdev1/archy.git
cd archy
安装依赖项:
npm install
构建项目:
npm run build
这会将 TypeScript 源文件编译到 build 目录中的 JavaScript 文件。
Archy 包含一个方便的安装脚本,可以自动配置 VS Code 和 Claude 的 MCP 服务器:
npm run install-mcp
该脚本:
无需手动编辑 JSON 配置文件,就像某种穴居动物一样!该脚本为您处理所有繁琐的配置工作,让您专注于创建美丽的图表,而不是与文件路径和权限作斗争。
Archy 可以通过环境变量进行配置:
GITHUB_TOKEN:用于身份验证请求的 GitHub API 令牌(可选)OPENROUTER_API_KEY:用于 AI 功能的 OpenRouter API 密钥(可选)Archy 通过 LangChain 集成了 OpenRouter,从而增强了 AI 功能的图表生成。当配置了 OpenRouter API 密钥时,以下功能可用:
要使用这些功能:
OPENROUTER_API_KEY 环境变量Archy 支持将 Mermaid 图表导出为多种图像格式:
图像可以导出为自定义尺寸和背景颜色。
Archy 可以分析 Git 仓库以跟踪其随时间的变化:
要使用 Archy 与 MCP 客户端,如果愿意的话,可以在您的 MCP 设置文件中添加它:
{
"mcpServers": {
"archy": {
"command": "node",
"args": ["/path/to/archy/build/index.js"],
"env": {
"GITHUB_TOKEN": "your-github-token"
}
}
}
}
根据文本描述生成 Mermaid 图表。
参数:
description:要生成的图表的文本描述diagramType:要生成的图表类型(例如,'flowchart','classDiagram'等)示例:
{
"description": "具有登录、注册和密码重置功能的用户认证系统",
"diagramType": "flowchart"
}
根据 GitHub 仓库生成 Mermaid 图表。
参数:
repoUrl:GitHub 仓库的 URLdiagramType:要生成的图表类型(例如,'classDiagram','sequenceDiagram'等)示例:
{
"repoUrl": "https://github.com/username/repository",
"diagramType": "classDiagram"
}
列出所有支持的图表类型及其描述。
参数: 无
当配置了 OpenRouter API 密钥时,以下工具可用:
使用 AI(通过 LangChain 和 OpenRouter)根据文本描述生成 Mermaid 图表。
参数:
description:要生成的图表的文本描述diagramType:要生成的图表类型(例如,'flowchart','classDiagram'等)useAdvancedModel:(可选)是否使用更高级的 AI 模型来生成复杂图表示例:
{
"description": "具有用户服务、产品服务和订单服务通过消息队列通信的微服务架构",
"diagramType": "flowchart",
"useAdvancedModel": true
}
使用 AI 根据代码生成 Mermaid 图表。
参数:
code:要分析并生成图表的代码diagramType:要生成的图表类型(例如,'classDiagram','flowchart'等)示例:
{
"code": "class User { ... } class AuthService { ... }",
"diagramType": "classDiagram"
}
生成显示两个代码版本之间差异的 Mermaid 图表。
参数:
beforeCode:更改前的代码afterCode:更改后的代码diagramType:要生成的图表类型(例如,'classDiagram','flowchart'等)示例:
{
"beforeCode": "class User { ... }",
"afterCode": "class User { ... additional methods ... }",
"diagramType": "classDiagram"
}
将 Mermaid 图表导出为图像格式(PNG、SVG 或 PDF)。
参数:
mermaidCode:要导出的 Mermaid 图表代码format:(可选)导出的图像格式('png','svg','pdf',默认为 'png')width:(可选)图像宽度(像素,默认为 800)height:(可选)图像高度(像素,默认为 600)backgroundColor:(可选)图像背景颜色(CSS 颜色或 "transparent",默认为 '#ffffff')示例:
{
"mermaidCode": "flowchart TD\n A[Start] --> B[End]",
"format": "svg",
"width": 1200,
"height": 800,
"backgroundColor": "#f0f0f0"
}
生成显示仓库随时间演变的图表。
参数:
repoUrl:GitHub 仓库的 URLdiagramType:要生成的图表类型(例如,'gitGraph','flowchart'等)filepath:(可选)要跟踪的具体文件路径commitLimit:(可选)要分析的最大提交数(默认为 10)示例:
{
"repoUrl": "https://github.com/username/repository",
"diagramType": "gitGraph",
"filepath": "src/main.js",
"commitLimit": 5
}
generate_diagram_from_text({
"description": "为图书管理系统生成一个类图,包括 Book、Author 和 Library 类。书籍有标题和 ISBN。作者有姓名,并且可以编写多本书。图书馆包含许多书籍。",
"diagramType": "classDiagram"
})
结果:
classDiagram
class Book {
+String title
+String ISBN
+getDetails()
}
class Author {
+String name
+List books
+addBook(Book)
}
class Library {
+List books
+addBook(Book)
+findBookByISBN(String)
}
Author "1" -- "n" Book: writes
Library "1" -- "n" Book: contains
generate_diagram_from_github({
"repoUrl": "https://github.com/username/api-service",
"diagramType": "flowchart"
})
结果:
flowchart TD
A[Client] --> B[API Gateway]
B --> C{Authentication}
C -->|Valid| D[Route Request]
C -->|Invalid| E[Return 401]
D --> F[Service 1]
D --> G[Service 2]
D --> H[Service 3]
F --> I[Database]
G --> I
H --> I
要在开发模式下运行服务器并实现自动重新加载:
npm run dev
这使用 nodemon 和 ts-node 直接运行 TypeScript 代码,而无需单独构建步骤,并在文件更改时自动重启。
您可以使用以下方法直接运行 TypeScript 编译器:
# 使用 npx 运行本地 TypeScript 安装
npx tsc
# 使用特定的 tsconfig 文件编译
npx tsc --project tsconfig.json
# 监控模式 - 当文件更改时自动重新编译
npx tsc --watch
# 编译特定文件
npx tsc src/index.ts src/server.ts
如果您已全局安装 TypeScript:
# 全局安装 TypeScript(如果尚未安装)
npm install -g typescript
# 运行 TypeScript 编译器
tsc
# 使用特定的 tsconfig 文件编译
tsc --project tsconfig.json
# 监控模式
tsc --watch
--outDir <directory>:指定编译文件的输出目录--target <ES 版本>:指定 ECMAScript 目标版本(例如,ES2020)--module <模块系统>:指定模块系统(例如,NodeNext)--declaration:生成 .d.ts 声明文件--sourceMap:生成用于调试的源映射文件--strict:启用所有严格的类型检查选项--noEmit:检查错误而不生成输出文件--noImplicitAny:对隐含 'any' 类型的表达式引发错误完整的编译器选项列表,请运行 npx tsc --help 或参阅 TypeScript 文档。
Archy 使用以下配置构建于 TypeScript:
{
"compilerOptions": {
"target": "ES2020",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"esModuleInterop": true,
"strict": true,
"outDir": "build",
"declaration": true,
"sourceMap": true,
"resolveJsonModule": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "build"]
}
使用的 TypeScript 主要特性:
src/:TypeScript 源文件
src/index.ts:主入口点和服务器实现src/server.ts:服务器实现src/generators/:图表生成逻辑src/utils/:实用函数和辅助工具build/:编译后的 JavaScript 输出examples/:示例使用脚本test/:测试文件