项目简介
C4Diagrammer 是一个实现 Model Context Protocol (MCP) 的服务器,旨在帮助您自动化生成现有代码系统的文档。它利用 MCP 的能力,通过定义特定的 Prompt 和 Tool,指导大型语言模型 (LLM) 分析您的代码库,生成结构化的 README 文档和基于 Mermaid.js 的 C4 架构图(包括上下文、容器和组件层级)。
主要功能点
- 目录级 README 生成: 针对包含源代码的每个目录,生成一个总结文件内容的 'README.C4Diagrammer.md' 文件。
- 目录级 C4 组件图生成: 根据目录内的代码总结,生成描述模块内部结构的 'C4Component.C4Diagrammer.md' 图。
- 系统级 C4 图生成: 汇总所有目录级的 README 内容,生成顶层的 'C4Context.C4Diagrammer.md' 或 'C4Container.C4Diagrammer.md' 图,提供系统概览。
- Mermaid 图验证与预览: 提供工具检查生成的 Mermaid.js 图语法是否正确,并支持在浏览器中预览。
- 文件系统交互: 通过 MCP Tool 提供受限的文件读取、写入和目录列表功能,供 LLM 调用以访问代码库和保存生成文档。
安装步骤
- 克隆仓库:
git clone https://github.com/jonverrier/C4Diagrammer.git # 进入项目目录 cd C4Diagrammer - 安装依赖:
npm install - 构建项目:
npm run build - (可选但推荐)安装文件系统 MCP 服务器:C4Diagrammer 依赖于一个文件系统 MCP 服务器来访问您的代码。您可以安装 Anthropic 提供的示例服务器:
# 假设您想将文件系统服务器放在与 C4Diagrammer 平级的目录 cd .. git clone https://github.com/modelcontextprotocol/servers.git cd servers/src/filesystem npm install npm run build # 现在您的文件系统服务器在 ../servers/src/filesystem/dist/index.js
服务器配置
C4Diagrammer 作为 MCP 服务器需要被 MCP 客户端(如支持 MCP 的 LLM IDE 或工具)配置才能使用。您需要将 C4Diagrammer 和文件系统服务器的启动信息添加到您的 MCP 客户端配置中。以下是常见的 JSON 配置格式示例及其参数说明(请根据您的实际安装路径调整 'YourCodeRoot'):
{ "mcpServers": { "c4-diagrammer": { // 服务器名称,供客户端内部引用 "command": "node", // 启动命令 "args": ["YourCodeRoot/C4Diagrammer/dist/src/index.js", "YourCodeRoot/YourProjectDirectory"] // 启动参数:第一个是 C4Diagrammer 的主文件路径,后续参数是允许 C4Diagrammer 访问的代码根目录 }, "filesystem": { // 文件系统服务器名称 "command": "node", "args": ["YourCodeRoot/servers/src/filesystem/dist/index.js", "YourCodeRoot"] // 启动参数:第一个是文件系统服务器主文件路径,后续参数是允许文件系统服务器访问的根目录(可以与 C4Diagrammer 访问目录相同或包含它) } } }
- 'c4-diagrammer.command': Node.js 执行环境的路径。
- 'c4-diagrammer.args': C4Diagrammer 服务器的启动脚本路径 ('dist/src/index.js'),后跟一个或多个允许该服务器访问的文件系统路径。重要:您必须在此处指定 C4Diagrammer 应该能够访问的代码库根目录。
- 'filesystem.command': 文件系统 MCP 服务器的 Node.js 执行环境路径。
- 'filesystem.args': 文件系统 MCP 服务器的启动脚本路径 ('dist/index.js'),后跟一个或多个允许该服务器访问的文件系统路径。重要:C4Diagrammer 服务器会调用文件系统服务器的 Tool 来读写文件和列出目录,因此文件系统服务器必须能够访问 C4Diagrammer 需要处理的所有路径。
基本使用方法
配置完成后,在您的 MCP 客户端中,您将能够看到 C4Diagrammer 服务器提供的 Prompt(如 'generate_readme_files', 'generate_component_c4_diagrams', 'generate_rollup_c4_diagram')和 Tools(如 'should_regenerate_readme', 'detect_mermaid_diagram_type', 'parse_mermaid', 'preview_mermaid', 'preview_existing_mermaid_diagram', 'read_file', 'write_file', 'list_directory')。您可以通过调用这些 Prompt 或 Tool 来指导 LLM 生成文档和图表。例如,选择 'generate_readme_files' Prompt 并提供代码库的根目录参数,LLM 将开始遍历目录并生成 README 文件。具体如何与 Prompt 和 Tool 互动取决于您使用的 MCP 客户端的用户界面。
注意事项
C4Diagrammer 的 Prompt 是为 Claude 模型优化的,与其他模型一起使用时效果可能会有差异。
信息
分类
开发者工具