一个使用OpenRouter API分析代码仓库目录结构和代码文件以自动生成文档的MCP(模型上下文协议)服务器。
.gitignore模式以跳过被忽略的文件documentation.md、testplan.md和review.md文件# 克隆仓库
git clone https://github.com/PARS-DOE/autodocument.git
cd autodocument
# 安装依赖
npm install
# 构建项目
npm run build
通过环境变量、命令行参数或MCP配置文件来配置autodocument:
OPENROUTER_API_KEY:您的OpenRouter API密钥OPENROUTER_MODEL:要使用的模型(默认:anthropic/claude-3-7-sonnet)MAX_FILE_SIZE_KB:最大文件大小(KB,默认:100)MAX_FILES_PER_DIR:每个目录的最大文件数(默认:20)Roo Code和Cline是支持模型上下文协议(MCP)的AI助手,允许它们使用外部工具如autodocument。
克隆并构建仓库(遵循上述安装步骤)
配置MCP服务器:
在MCP服务器菜单中,编辑MCP设置,并使用您克隆仓库的完整路径添加autodocument配置:
使用您克隆仓库的完整路径添加autodocument配置:
{
"mcpServers": {
"autodocument": {
"command": "node",
"args": ["/path/to/autodocument/build/index.js"],
"env": {
"OPENROUTER_API_KEY": "your-api-key-here"
},
"disabled": false,
"alwaysAllow": []
}
}
}
编辑Claude桌面应用配置文件的位置:
%APPDATA%\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.json~/.config/Claude/claude_desktop_config.json使用您克隆仓库的完整路径添加autodocument配置:
{
"mcpServers": {
"autodocument": {
"command": "node",
"args": ["/path/to/autodocument/build/index.js"],
"env": {
"OPENROUTER_API_KEY": "your-api-key-here"
},
"disabled": false,
"alwaysAllow": []
}
}
}
重要:确保使用绝对路径指向您克隆仓库中的build/index.js文件
重启Roo/Cline或Claude桌面应用
使用工具: 在与Roo或Claude的对话中,您可以请求它为您项目的代码仓库生成文档或测试计划:
请为我位于/path/to/my/project的项目生成文档
或者为测试计划:
请为我位于/path/to/my/project的项目创建测试计划
或者为代码审查:
请审查我位于/path/to/my/project的项目中的代码
autodocument服务器采用自底向上的方法工作:
.gitignore规则documentation.md文件(或更新现有文件)该项目遵循模块化架构:
# 导航到您克隆的仓库
cd path/to/cloned/autodocument
# 设置您的API密钥(或在环境变量中配置)
export OPENROUTER_API_KEY=your-api-key-here
# 在项目上运行文档生成
node build/index.js /path/to/your/project
const { spawn } = require('child_process');
const path = require('path');
// 您项目的路径
const projectPath = '/path/to/your/project';
// 您的OpenRouter API密钥
const apiKey = 'your-api-key-here';
// 创建一个JSON命令以模拟MCP工具调用
const toolCallCommand = JSON.stringify({
jsonrpc: '2.0',
method: 'call_tool',
params: {
name: 'generate_documentation',
arguments: {
path: projectPath,
openRouterApiKey: apiKey
}
},
id: 1
});
// 启动服务器进程 - 使用您克隆仓库的完整路径
const serverProcess = spawn('node', ['/path/to/autodocument/build/index.js'], {
env: {
...process.env,
OPENROUTER_API_KEY: apiKey
}
});
// 发送工具命令
serverProcess.stdin.write(toolCallCommand + '\n');
// 处理服务器输出和错误
// ...
您可以通过编辑src/prompt-config.ts文件轻松自定义工具使用的提示。这允许您:
提示配置与工具实现分离,使得无需更改代码即可轻松实验不同的提示。
为代码仓库生成全面的文档:
{
"path": "/path/to/your/project",
"openRouterApiKey": "your-api-key-here", // 可选
"model": "anthropic/claude-3-7-sonnet", // 可选
"updateExisting": true // 可选,默认为true
}
为代码仓库中的函数和组件生成测试计划:
{
"path": "/path/to/your/project",
"openRouterApiKey": "your-api-key-here", // 可选
"model": "anthropic/claude-3-7-sonnet", // 可选
"updateExisting": true // 可选,默认为true
}
为仓库生成高级开发者级别的代码审查:
{
"path": "/path/to/your/project",
"openRouterApiKey": "your-api-key-here", // 可选
"model": "anthropic/claude-3-7-sonnet", // 可选
"updateExisting": true // 可选,默认为true
}
服务器创建几种类型的输出文件:
包含目录中代码的全面文档,包括:
包含目录中代码的详细测试计划,包括:
包含高级开发者级别的代码审查反馈,包括:
当目录超出大小或文件数量限制时创建:
undocumented.md - 用于文档生成untested.md - 用于测试计划生成review-skipped.md - 用于代码审查生成这些文件包含:
如果您看到关于无效API密钥的错误:
OPENROUTER_API_KEY环境变量如果由于大小限制而跳过了太多目录:
MAX_FILE_SIZE_KB和MAX_FILES_PER_DIR如果您对文档质量不满意:
OPENROUTER_MODEL环境变量尝试不同的模型CC0-1.0许可 - 此作品由美国能源部根据CC0公有领域贡献
欢迎贡献!请随时提交Pull Request。
架构设计旨在使添加新的自动工具变得容易:
src/tools目录下创建一个新的继承自BaseTool的类src/prompt-config.ts中定义提示ToolRegistry中注册工具查看现有工具以了解如何实现新功能。