](https://mseep.ai/app/phxdev1-archy-mcp)
Archy-建筑图生成器
Archy是一个MCP(模型上下文协议)服务器,它使用Mermaid语法生成架构图。它可以处理自然语言描述和GitHub存储库URL,以创建各种类型的图表。
特性
- 根据文本描述生成图表
- 从GitHub存储库生成图表
- 支持所有Mermaid图表类型:
- 流程图 - 序列图 - 类别图 - 状态图 - 实体关系图 - 用户旅程 - 甘特图 - 饼图 - 象限图 - 需求图 - Git图形 - C4图表
安装
先决条件
- Node.js(v16或更高版本)
- npm(v7或更高版本)
- TypeScript(v5.8或更高版本,包含在依赖项中)
从源代码安装
- 克隆存储库:
git clone https://github.com/phxdev1/archy.git
cd archy- 安装依赖项:
npm install- 构建项目:
npm run build这将TypeScript源文件编译为JavaScript build 目录。
自动MCP安装
Archy包含一个方便的安装脚本,可以自动为VS Code和Claude配置MCP服务器:
npm run install-mcp此脚本:
- 自动检测操作系统的正确MCP设置位置
- 更新VS Code和Claude的MCP配置文件
- 提示输入GitHub令牌以进行存储库分析(可选)
- 使服务器可执行
无需像洞穴动物那样手动编辑JSON配置文件!该脚本为您处理所有繁琐的配置工作,因此您可以专注于创建漂亮的图表,而不是纠结于文件路径和权限。
配置
配置
Archy可以使用环境变量进行配置:
GITHUB_TOKEN:用于已验证请求的GitHub API令牌(可选)OPENROUTER_API_KEY:用于生成AI供电图的OpenRouter API密钥(可选)
OpenRouter集成
Archy通过LangChain与OpenRouter集成,实现了增强的AI驱动的图表生成。配置OpenRouter API密钥后,将提供其他工具:
- AI增强的文本到图表生成:根据文本描述生成更复杂的图表
- 代码到图表生成:分析代码并生成适当的图表
- Diff可视化:生成显示代码版本之间差异的图表
要使用这些功能,请执行以下操作:
- 在以下网址注册帐户 开放路由
- 从OpenRouter仪表板获取API密钥
- 设置
OPENROUTER_API_KEY运行Archy之前的环境变量
图像导出
Archy支持将Mermaid图表导出为各种图像格式:
- 便携式网络图形:适用于网络和文档的光栅图像格式
- 可缩放矢量图形:矢量图像格式,可缩放而不损失质量
- PDF:适合打印和共享的文档格式
可以导出具有可自定义尺寸和背景颜色的图像。
存储库演化跟踪
Archy可以分析Git存储库以跟踪其随时间的演变:
- 内存Git:克隆和分析存储库,而无需写入文件系统
- 提交历史:跨多个提交跟踪更改(默认限制为10个)
- 文件演变:跟踪特定文件随时间的变化情况
- 进化可视化:生成显示存储库演变的图表
MCP集成
要将Archy与MCP客户端一起使用,如果您是受虐狂,请将其添加到MCP设置文件中:
{
"mcpServers": {
"archy": {
"command": "node",
"args": ["/path/to/archy/build/index.js"],
"env": {
"GITHUB_TOKEN": "your-github-token"
}
}
}
}可用工具
generatediagram_from_text
根据文本描述生成美人鱼图。
参数:
description:要生成的图表的文本描述diagramType:要生成的图表类型(例如,“流程图”、“类图”等)
例子:
{
"description": "A user authentication system with login, registration, and password reset",
"diagramType": "flowchart"
}generatediagram_from_github
从GitHub存储库生成Mermaid图。
参数:
repoUrl:GitHub存储库的URLdiagramType:要生成的图表类型(例如,“类图”、“sequenceDiagram”等)
例子:
{
"repoUrl": "https://github.com/username/repository",
"diagramType": "classDiagram"
}list_supported_diagram_type
列出所有支持的图表类型及其说明。
参数: 无
AI驱动的工具
配置OpenRouter API密钥时,以下工具可用:
带ai的生成图表文本
使用AI(LangChain with OpenRouter)从文本描述生成美人鱼图。
参数:
description:要生成的图表的文本描述diagramType:要生成的图表类型(例如,“流程图”、“类图”等)useAdvancedModel:(可选)是否对复杂图表使用更高级的AI模型
例子:
{
"description": "A microservice architecture with user service, product service, and order service communicating through a message queue",
"diagramType": "flowchart",
"useAdvancedModel": true
}生成图表代码
使用AI从代码生成美人鱼图。
参数:
code:用于分析和生成图表的代码diagramType:要生成的图表类型(例如,“类图”、“流程图”等)
例子:
{
"code": "class User { ... } class AuthService { ... }",
"diagramType": "classDiagram"
}generate_diff_digrams
生成一个Mermaid图,显示两个版本代码之间的差异。
参数:
beforeCode:更改前的代码afterCode:更改后的代码diagramType:要生成的图表类型(例如,“类图”、“流程图”等)
例子:
{
"beforeCode": "class User { ... }",
"afterCode": "class User { ... additional methods ... }",
"diagramType": "classDiagram"
}导出图片
将美人鱼图导出为图像格式(PNG、SVG或PDF)。
参数:
mermaidCode:要导出的美人鱼图代码format:(可选)要导出的图像格式(“png”、“svg”、“pdf”,默认值:“png”)width:(可选)图像的宽度(像素)(默认值:800)height:(可选)图像的高度(像素)(默认值:600)backgroundColor:(可选)图像的背景颜色(CSS颜色或“透明”,默认值:“#ffffff”)
例子:
{
"mermaidCode": "flowchart TD\n A[Start] --> B[End]",
"format": "svg",
"width": 1200,
"height": 800,
"backgroundColor": "#f0f0f0"
}generate_repository_进化图
生成一个图表,显示存储库随时间的演变。
参数:
repoUrl:GitHub存储库的URLdiagramType:要生成的图表类型(例如“gitGraph”、“流程图”等)filepath:(可选)要跟踪的特定文件的路径commitLimit:(可选)要分析的最大提交数(默认值:10)
例子:
{
"repoUrl": "https://github.com/username/repository",
"diagramType": "gitGraph",
"filepath": "src/main.js",
"commitLimit": 5
}例子
从文本生成类图
generate_diagram_from_text({
"description": "Create a class diagram for a library system with Book, Author, and Library classes. Books have titles and ISBNs. Authors have names and can write multiple books. Libraries contain many books.",
"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从GitHub生成流程图
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编译器
您可以使用以下方法直接运行TypeScript编译器:
使用本地安装的TypeScript
# Using npx to run the local TypeScript installation
npx tsc
# Compile with specific tsconfig file
npx tsc --project tsconfig.json
# Watch mode - automatically recompile when files change
npx tsc --watch
# Compile specific files
npx tsc src/index.ts src/server.ts使用全局安装的TypeScript
如果你全局安装了TypeScript:
# Install TypeScript globally (if not already installed)
npm install -g typescript
# Run the TypeScript compiler
tsc
# Compile with specific tsconfig file
tsc --project tsconfig.json
# Watch mode
tsc --watch常见的TypeScript编译器选项
--outDir:指定已编译文件的输出目录--target:指定ECMAScript目标版本(例如ES2020)--module:指定模块系统(例如NodeNext)--declaration:生成.d.ts声明文件--sourceMap:生成用于调试的源映射文件--strict:启用所有严格类型检查选项--noEmit:在不生成输出文件的情况下检查错误--noImplicitAny:在具有隐含“any”类型的表达式上引发错误
有关编译器选项的完整列表,请运行 npx tsc --help 或参考 TypeScript文档.
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关键特性:
- ES2020针对现代JavaScript功能的目标
- NodeNext模块解析,与Node.js兼容
- 生成声明文件以获得更好的类型支持
- 源代码映射,便于调试
项目结构
src/:TypeScript源文件
- src/index.ts:主要入口点和服务器实现 - src/server.ts:服务器实现 - src/generators/:图表生成逻辑 - src/utils/:实用函数和助手
build/:编译的JavaScript输出examples/:示例使用脚本test/:测试文件
