代码摘要器
一款使用 Gemini Flash 2.0 汇总指定目录中代码文件的命令行工具。现已支持 MCP 服务器,可与 LLM 工具集成!
特征
- 递归处理目录中的代码文件
- 遵守
.gitignore
规则 - 跳过不相关的目录,如
node_modules
、dist
等。 - 使用 Gemini Flash 2.0 总结代码文件
- 将摘要输出到文本文件
- 可配置的详细程度和摘要长度
- MCP 服务器用于与 Claude Desktop 和其他 LLM 工具集成
- 模块化设计,可轻松集成到其他应用程序中
- 安全 API 密钥管理
- MCP 服务器端点的身份验证
- LLM 调用的指数退避重试机制
- 限制速率以防止滥用
要求
- Node.js 18+
安装
- 克隆存储库
- 安装依赖项:
- 使用您的 Google API 密钥创建一个
.env
文件: - 构建项目:
MCP 服务器设置和集成
代码摘要器包括一个模型上下文协议 (MCP) 服务器,允许 Claude Desktop、Cursor AI 和 Cline 等 LLM 工具访问代码摘要和文件内容。
启动 MCP 服务器
默认情况下,服务器在端口 24312 上运行。您可以在配置中更改此设置:
与 Claude Desktop 连接
- 启动代码摘要器 MCP 服务器
- 打开 Claude Desktop 并点击 Claude 菜单,然后点击“设置...”
- 导航至“开发者”部分
- 在
~/.claude/claude_desktop_config.json
(macOS/Linux) 或%USERPROFILE%\.claude\claude_desktop_config.json
(Windows) 中创建一个文件,内容如下:
- 重启Claude桌面
- 重新启动后,您可以要求 Claude 访问您的代码库,例如“总结我的项目中的文件”
Claude Desktop 的示例提示:
- “你能总结一下我项目里的所有 JavaScript 文件吗?”
- “请给我一个关于我的代码库的总体概述。”
- “解释一下‘src/config/config.ts’文件的作用。”
- “在我的代码中查找所有与身份验证相关的函数。”
与 Cursor AI 连接
- 启动代码摘要器 MCP 服务器
- 在您的项目目录中创建一个
.cursor/mcp.json
文件:
- 重新启动 Cursor 或重新加载您的项目
- 向 Cursor 询问您的代码,例如“您能总结一下我的代码库吗?”
光标提示示例:
- “请为我总结一下这个代码库的结构。”
- “这个项目的关键组成部分是什么?”
- “请详细解释一下 MCP 服务器的实现。”
- “帮助我理解重试机制是如何工作的。”
与克莱恩联系
- 启动代码摘要器 MCP 服务器
- 在 Cline 中,您可以使用以下命令添加 MCP 服务器:
- 然后使用您的 API 密钥进行身份验证:
- 然后你可以要求 Cline 使用代码摘要器,例如“请总结我的代码文件”
Cline 的示例提示:
- “我的项目中的每个文件有什么作用?”
- “创建所有 TypeScript 文件的摘要。”
- “解释此代码库中的身份验证流程。”
- “‘summarizer’目录下的主要功能是什么?”
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
中的路径是否正确 - 确保命令和参数指向正确的位置
- 检查 Claude Desktop 日志中是否存在任何配置错误
- 验证
- 速率限制
- 如果您看到“请求过多”错误,请等待并稍后重试
- 考虑调整服务器代码中的速率限制设置
对于其他问题,请检查服务器日志或在 GitHub 存储库上打开问题。
用法
命令行界面
配置管理
API 身份验证
当连接到 MCP 服务器时,您需要在请求标头中包含您的 API 密钥:
所有端点( /health
除外)都需要身份验证。
选项
--detail
,-d
:设置摘要的详细程度。选项包括“低”、“中”或“高”。默认为“中”。--max-length
,-l
:每个摘要的最大长度(以字符为单位)。默认值为 500。
安全功能
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)
- 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,并提示进行总结,包括详细程度和长度限制。
- 摘要被收集并写入指定的输出文件。
输出格式
输出文件将具有以下格式:
项目结构
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 | 日志级别(错误、警告、信息、调试) | 信息 |
请参阅.env.example
了解模板。
发展
运行测试
未来的改进
- 支持更多文件类型
- 对替代法学硕士 (LLM) 提供商的支持
- 与 Electron 应用程序集成以实现 GUI 界面
- 增强的 MCP 服务器功能
- 高级令牌使用情况跟踪
- 基于 OpenTelemetry 的可观察性
- 增强的审计日志功能
- 秘密扫描集成
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
允许 Claude Desktop 和 Cursor AI 等 LLM 工具通过模型上下文协议服务器访问和汇总代码文件,从而无需手动复制即可提供对代码库内容的结构化访问。
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that enables LLMs to read, search, and analyze code files with advanced caching and real-time file watching capabilities.Last updated -61623JavaScriptMIT License
- -securityAlicense-qualityA comprehensive toolkit that enhances LLM capabilities through the Model Context Protocol, allowing LLMs to interact with external services including command-line operations, file management, Figma integration, and audio processing.Last updated -22PythonApache 2.0
- -securityAlicense-qualityA custom Model Context Protocol server that gives Claude Desktop and other LLMs access to file system operations and command execution capabilities through standardized tool interfaces.Last updated -24PythonApache 2.0
- AsecurityFlicenseAqualityA Model Context Protocol server that connects LLMs to the Compiler Explorer API, enabling them to compile code, explore compiler features, and analyze optimizations across different compilers and languages.Last updated -513Python
Appeared in Searches
- Using separate agents for schema validation, code standards, and directory structure enforcement in development workflows
- A tool for reading PDF files
- Finding the Top 10 Most Frequently Pulled Packages from Nexus Repository
- Best practices for organizing and structuring a codebase
- Information about cursors