
Code Summarizer MCP
允许像 Claude Desktop 和 Cursor AI 这样的 LLM 工具通过模型上下文协议服务器访问和总结代码文件,从而提供对代码库内容的结构化访问,无需手动复制。
README
代码摘要器
一个使用 Gemini Flash 2.0 总结给定目录中代码文件的命令行工具。现在支持 MCP 服务器,可与 LLM 工具集成!
功能
- 递归处理目录中的代码文件
- 遵循
.gitignore
规则 - 跳过不相关的目录,如
node_modules
、dist
等。 - 使用 Gemini Flash 2.0 总结代码文件
- 将摘要输出到文本文件
- 可配置的详细程度和摘要长度
- MCP 服务器,用于与 Claude Desktop 和其他 LLM 工具集成
- 模块化设计,易于集成到其他应用程序中
- 安全的 API 密钥管理
- MCP 服务器端点的身份验证
- 具有指数退避的重试机制,用于 LLM 调用
- 速率限制以防止滥用
要求
- Node.js 18+
安装
-
克隆存储库
git clone https://github.com/nicobailon/code-summarizer.git cd code-summarizer
-
安装依赖项:
npm install
-
创建一个包含您的 Google API 密钥的
.env
文件:GOOGLE_API_KEY=your_api_key_here
-
构建项目:
npm run build
MCP 服务器设置和集成
代码摘要器包含一个模型上下文协议 (MCP) 服务器,允许 LLM 工具(如 Claude Desktop、Cursor AI 和 Cline)访问代码摘要和文件内容。
启动 MCP 服务器
# 启动 MCP 服务器
npm start -- server
默认情况下,服务器在端口 24312 上运行。您可以在配置中更改此设置:
# 设置自定义 MCP 服务器端口
npm start -- config set --port 8080
与 Claude Desktop 连接
- 启动 code-summarizer MCP 服务器
- 打开 Claude Desktop 并单击 Claude 菜单,然后单击“Settings...”
- 导航到“Developer”部分
- 在
~/.claude/claude_desktop_config.json
(macOS/Linux) 或%USERPROFILE%\.claude\claude_desktop_config.json
(Windows) 中创建一个文件,内容如下:
{
"code-summarizer": {
"command": "npx",
"args": ["-y", "your-path-to-code-summarizer/bin/code-summarizer.js", "server"],
"env": {
"GOOGLE_API_KEY": "your_api_key_here"
}
}
}
- 重新启动 Claude Desktop
- 重新启动后,您可以要求 Claude 访问您的代码库,例如,“Summarize the files in my project”
Claude Desktop 的示例提示:
- "Can you summarize all the JavaScript files in my project?"
- "Please give me a high-level overview of my codebase."
- "Explain what the file 'src/config/config.ts' does."
- "Find all functions related to authentication in my code."
与 Cursor AI 连接
- 启动 code-summarizer MCP 服务器
- 在您的项目目录中创建一个
.cursor/mcp.json
文件:
{
"mcpServers": {
"code-summarizer": {
"transport": "sse",
"url": "http://localhost:24312/sse",
"headers": {
"x-api-key": "your_api_key_here"
}
}
}
}
- 重新启动 Cursor 或重新加载您的项目
- 询问 Cursor 关于您的代码,例如,“Can you summarize my codebase?”
Cursor 的示例提示:
- "Summarize the structure of this codebase for me."
- "What are the key components in this project?"
- "Give me a detailed explanation of the MCP server implementation."
- "Help me understand how the retry mechanism works."
与 Cline 连接
- 启动 code-summarizer MCP 服务器
- 在 Cline 中,您可以使用命令添加 MCP 服务器:
/mcp add code-summarizer http://localhost:24312/sse
- 然后使用您的 API 密钥进行身份验证:
/mcp config code-summarizer headers.x-api-key your_api_key_here
- 然后您可以要求 Cline 使用 code-summarizer,例如,“Please summarize my code files”
Cline 的示例提示:
- "What does each file in my project do?"
- "Create a summary of all TypeScript files."
- "Explain the authentication flow in this codebase."
- "What are the main functions in the 'summarizer' directory?"
您可以使用 MCP 集成做什么
使用 MCP 集成,您可以:
- 获取文件摘要:请求对特定文件功能的简明解释
- 浏览目录:浏览您的代码库结构
- 批量处理:一次总结多个文件
- 有针对性的查询:在您的代码中查找特定模式或功能
- 自定义摘要:控制详细程度和摘要长度
- 更新设置:通过 MCP 界面更改配置选项
MCP 服务器以结构化的方式将您的代码库暴露给 LLM 工具,允许它们读取、导航和总结您的代码,而无需手动粘贴代码片段。
MCP 服务器集成详细信息
MCP 资源
code://file/*
- 访问单个代码文件code://directory/*
- 列出目录中的代码文件summary://file/*
- 获取特定文件的摘要summary://batch/*
- 获取多个文件的摘要
MCP 工具
summarize_file
- 总结具有选项的单个文件summarize_directory
- 总结具有选项的目录set_config
- 更新配置选项
MCP 提示
code_summary
- 用于总结代码的提示模板directory_summary
- 用于总结整个目录的提示模板
故障排除
常见的 MCP 连接问题
-
连接被拒绝
- 确保 MCP 服务器正在运行 (
npm start -- server
) - 验证端口在您的配置中是否正确
- 检查是否存在阻止连接的防火墙问题
- 确保 MCP 服务器正在运行 (
-
身份验证错误
- 验证您是否在标头中添加了正确的 API 密钥 (
x-api-key
) - 检查您的 API 密钥是否有效且格式正确
- 确保正确设置了环境变量
- 验证您是否在标头中添加了正确的 API 密钥 (
-
传输错误
- 确保指定了正确的传输类型 (SSE)
- 检查 URL 是否包含正确的端点 (
/sse
) - 验证客户端和服务器之间的网络连接
-
权限问题
- 确保 MCP 服务器具有对您的代码库的读取权限
- 如果特定文件的摘要失败,请检查文件权限
-
Claude Desktop 找不到 MCP 服务器
- 验证
claude_desktop_config.json
中的路径是否正确 - 确保命令和 args 指向正确的位置
- 检查 Claude Desktop 日志中是否存在任何配置错误
- 验证
-
速率限制
- 如果您看到“请求过多”错误,请稍后重试
- 考虑调整服务器代码中的速率限制设置
对于其他问题,请检查服务器日志或在 GitHub 存储库上打开一个问题。
用法
命令行界面
# 默认命令 (summarize)
npm start -- summarize [directory] [output-file] [options]
# 总结当前目录中的代码(输出到 summaries.txt)
npm start -- summarize
# 总结具有特定详细程度和最大长度的代码
npm start -- summarize --detail high --max-length 1000
# 显示帮助
npm start -- --help
配置管理
# 设置您的 API 密钥
npm start -- config set --api-key "your-api-key"
# 设置默认详细程度和最大长度
npm start -- config set --detail-level high --max-length 1000
# 设置 MCP 服务器端口(默认:24312)
npm start -- config set --port 8080
# 显示当前配置
npm start -- config show
# 将配置重置为默认值
npm start -- config reset
API 身份验证
连接到 MCP 服务器时,您需要在请求标头中包含您的 API 密钥:
x-api-key: your_api_key_here
所有端点(/health
除外)都需要身份验证。
选项
--detail
,-d
: 设置摘要的详细程度。选项为 'low'、'medium' 或 'high'。默认为 'medium'。--max-length
,-l
: 每个摘要的最大长度(以字符为单位)。默认为 500。
安全功能
API 密钥管理
- API 密钥安全存储,并优先使用环境变量而不是配置文件
- 在使用前验证密钥的格式是否正确
- API 密钥永远不会在日志或错误消息中公开
- 当通过环境变量提供 API 密钥时,配置文件不会存储 API 密钥
身份验证
- 所有 MCP 服务器端点(健康检查除外)都需要通过 API 密钥进行身份验证
- 身份验证使用
x-api-key
标头进行安全传输 - 记录失败的身份验证尝试以进行安全监控
速率限制
- 内置速率限制可防止滥用服务
- 默认值:每个 IP 地址每分钟 60 个请求
- 可通过服务器设置进行配置
错误处理
- 具有分类的结构化错误系统
- 敏感信息永远不会在错误消息中公开
- 为不同的故障场景返回正确的错误代码
LLM 调用弹性
- 自动重试,并为瞬时故障提供指数退避
- 可配置的重试设置,包括最大重试次数、延迟和退避因子
- 将抖动添加到重试计时中,以防止惊群问题
- 请求 ID 跟踪,用于跟踪系统中的问题
支持的文件类型
- TypeScript (.ts, .tsx)
- JavaScript (.js, .jsx)
- Python (.py)
- Java (.java)
- C++ (.cpp)
- C (.c)
- Go (.go)
- Ruby (.rb)
- PHP (.php)
- C# (.cs)
- Swift (.swift)
- Rust (.rs)
- Kotlin (.kt)
- Scala (.scala)
- Vue (.vue)
- HTML (.html)
- CSS (.css, .scss, .less)
工作原理
- 该工具递归扫描指定的目录,遵循
.gitignore
规则。 - 它根据支持的扩展名过滤文件。
- 对于每个支持的文件,它读取内容并确定编程语言。
- 它将代码发送到 Gemini Flash 2.0,并提示进行总结,包括详细程度和长度限制。
- 收集摘要并将其写入指定的输出文件。
输出格式
输出文件将具有以下格式:
relative/path/to/file
Summary text here
relative/path/to/next/file
Next summary text here
项目结构
index.ts
: 主要 CLI 实现src/
: 源代码目录summarizer/
: 核心摘要功能mcp/
: MCP 服务器实现config/
: 配置管理
bin/
: CLI 入口点config.json
: 默认配置文件tsconfig.json
: TypeScript 配置package.json
: 项目依赖项和脚本.env.example
: 用于设置环境变量的模板.gitignore
: Git 中要忽略的文件和目录__tests__
: 单元和集成测试__mocks__/mock-codebase
: 用于测试的模拟代码库
环境变量
可以使用以下环境变量来配置应用程序:
变量 | 描述 | 默认值 |
---|---|---|
GOOGLE_API_KEY |
您的 Google Gemini API 密钥 | 无(必需) |
PORT |
MCP 服务器的端口 | 24312 |
ALLOWED_ORIGINS |
允许的 CORS 来源的逗号分隔列表 | http://localhost:3000 |
LOG_LEVEL |
日志记录级别(error、warn、info、debug) | info |
有关模板,请参见 .env.example
。
开发
运行测试
# 运行所有测试
npm test
# 运行具有覆盖率的测试
npm test -- --coverage
# 测试 MCP 服务器设置
npm run test:setup
未来改进
- 支持更多文件类型
- 支持其他 LLM 提供商
- 与 Electron 应用程序集成以获得 GUI 界面
- 增强的 MCP 服务器功能
- 高级令牌使用情况跟踪
- 基于 OpenTelemetry 的可观察性
- 增强的审计日志记录功能
- 秘密扫描集成
推荐服务器

Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。