MCP代码分析
强大的代码库分析工具包,利用模型上下文协议 (MCP) 进行 AI 辅助代码理解和转换。
特征
- 代码分析:使用抽象语法树解析和分析代码库
- 上下文生成:为人工智能模型创建丰富的上下文信息
- 工具集成:基于 MCP SDK 构建,实现无缝 AI 工具集成
- 可扩展架构:基于插件的自定义分析器系统
要求
- Node.js 18+
- NPM 9+
- Redis(可选,仅生产环境需要)
安装
Redis 配置(可选)
Redis 用于生产环境中的会话存储。在开发和测试环境中,如果 Redis 不可用,系统将自动回退到内存会话存储。
注意:Redis 连接存在一个已知问题,即使 Redis 正在运行,操作也可能会失败。有关详情,请参阅
plan.md
中的“技术债务”部分。目前,您可以使用./use-memory-session.sh
脚本运行带有内存会话存储的服务器。有关更多信息,请参阅Redis 故障排除指南。
安装 Redis:
默认情况下,应用程序会尝试通过redis://localhost:6379
连接到 Redis。您可以使用环境变量配置 Redis 连接:
发展
用法
文档
执照
麻省理工学院
CodeAnalysis MCP 服务器
用于高级代码分析的综合模型上下文协议 (MCP) 服务器,通过可扩展的架构提供工具和见解。
🚀 功能
- 基本代码分析:语法和结构分析
- 代码指标:复杂度、行数和代码质量指标
- 依赖关系分析:包和导入关系可视化
- 知识图谱:代码关系可视化和查询
- 记忆系统:存储和检索有关代码库的见解
- 可视化:生成多种格式的图表(Mermaid、DOT、ASCII)
- 社会技术分析:了解团队和代码关系
- 多存储库分析:跨存储库关系分析
- 演进规��:代码改进建议
- 实时监控:实时监控代码变化
- IDE 集成:编辑器集成工具
- 开发者工具:增强的AI辅助开发工作流程支持
📋 先决条件
- Node.js 18+
- npm 或 yarn
- Redis(开发可选,生产推荐)
🛠️ 安装
🖥️ 使用方法
CodeAnalysis MCP 服务器可以通过两种方式使用:
1. 作为 MCP 服务器
这将启动 MCP 服务器,任何 MCP 客户端(如 Claude Desktop、Cursor 或其他客户端)都可以连接到该服务器。
2. 使用 CLI
该项目包括一个用于直接交互的综合 CLI:
3. 使用开发者工具进行AI辅助开发
该项目包括旨在增强人工智能辅助开发的特殊工具:
有关详细信息,请参阅开发人员工具指南。
📊 示例命令
基本分析
代码指标
依赖关系分析
代码质量
知识图谱
洞察力与记忆
开发人员工具
🏗️ 建筑
该项目遵循 MCP 架构,包含以下组件:
- MCP 服务器:使用 MCP 协议的核心服务器实现
- 分析特点:模块化代码分析功能
- CLI :用于直接交互的命令行界面
- 传输层:通信机制(默认为stdio)
🔌 与 MCP 客户端集成
该服务器与任何符合 MCP 的客户端兼容,包括:
- 克劳德桌面应用程序
- 光标编辑器
- 继续
- 其他 MCP 兼容工具
📝 路径规范
命令接受各种格式的路径:
- 本地目录:
./src
或/absolute/path/to/dir
- 本地文件:
./src/file.ts
或/path/to/file.ts
- 存储库 URL:
https://github.com/username/repo
🤝 贡献
欢迎贡献代码!欢迎提交 Pull 请求。
📄 许可证
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
MCP SDK 状态管理架构
该项目为模型上下文协议 (MCP) SDK 实现了有状态工具,为构建在调用之间维护上下文的工具提供了框架。
架构概述
状态管理架构分为几个模块化组件:
核心组件
状态工具助手( statefulTool.ts
)
与 MCP SDK 的中央集成点,提供:
- 带有会话管理的工具注册
- 符合 MCP 标准的响应格式
- 内存会话管理
- 用于会话访问和操作的辅助函数
工具机( toolMachine.ts
)
基于 XState 的状态机,定义工具的执行流程:
- 状态转换(空闲、工具选择、参数设置、执行等)
- 参数、结果和历史记录的上下文管理
- 错误处理和恢复路径
该组件将会话管理委托给 statefulTool 实现。
工具服务( toolService.ts
)
协调工具状态转换的核心执行服务:
- 管理工具选择、参数验证和执行
- 跟踪执行历史
- 处理执行结果和错误
类型( types.ts
)
共享类型定义可确保整个状态管理系统的一致性:
- SessionData:用于存储工具状态的结构
- SessionStore:会话存储实现的接口
- ExecutionResult:工具的标准响应格式
与 MCP SDK 集成
该架构通过以下方式与 MCP SDK 集成:
- 使用状态管理扩展工具注册模式
- 保持与 MCP 响应格式的兼容性
- 为状态操作提供会话和上下文跟踪
使用示例
分布式状态管理
对于分布式环境,基于 Redis 的实现提供:
- 服务器重启后会话仍然保持
- 用于并发访问的分布式锁定
- 基于TTL的会话清理
- 网络/连接问题的错误处理
测试
这些组件包括全面的测试套件,用于验证:
- 工具状态转换
- 会话管理
- 错误处理和恢复
- 响应格式
- 分布式操作(使用Redis)
人工智能开发工具
CodeAnalysis MCP 服务器提供用于 AI 辅助开发的专用工具。这些工具有助于收集代码上下文,并将其提供给 AI 系统,从而提供更有效的辅助。
客户端脚本
该存储库在tools/
目录中包含几个客户端脚本:
- HTTP 客户端(
tools/http-client.js
):通过 HTTP 传输连接到 MCP 服务器(默认)。 - 原始客户端(
tools/mcp-raw-client.js
):一个更简单的客户端,仅捕获服务器信息。 - 简单客户端(
tools/simple-client.js
):通过 stdio 与服务器通信。
所有客户端脚本都会在项目根目录中生成一个ai-context.json
文件。该文件包含有关您的代码库的宝贵上下文信息,可以与 AI 助手共享,以提供更明智的响应。
提示模板
templates/ai-prompt-template.md
提供了 AI 助手的提示模板。此模板可帮助您根据 MCP 工具中的适当上下文,构建对 AI 助手的请求。
服务器传输模式
MCP 服务器支持两种传输模式:
- HTTP 传输(默认):默认在 3000 端口运行。最适合客户端-服务器架构。
- Stdio Transport :用于直接进程通信。设置
STDIO_TRANSPORT=true
环境变量即可启用。
会话存储架构
MCP 代码分析现在具有模块化会话存储架构,具有自动后端检测功能:
- 灵活存储:自动在 Redis 和内存存储之间切换
- 开发友好:开发过程中无需 Redis 即可运行
- 生产就绪:在生产环境中使用 Redis 进行持久化
- 自动回退:当 Redis 不可用时,优雅地回退到内存存储
有关更多详细信息,请参阅会话存储架构文档。
要求
- Node.js 18+
- npm 或 yarn
- Redis(开发可选,生产推荐)
You must be authenticated.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
用于高级代码分析的综合模型上下文协议服务器,提供语法分析、依赖关系可视化和 AI 辅助开发工作流程支持的工具。
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that provides tools for code modification and generation via Large Language Models, allowing users to create, modify, rewrite, and delete files using structured XML instructions.Last updated -12PythonMIT License
- -securityAlicense-qualityA Model Context Protocol server that enables AI agents to retrieve and understand entire codebases at once, providing tools to analyze local workspaces or remote GitHub repositories.Last updated -9TypeScriptMIT License
- -securityFlicense-qualityA server component of the Model Context Protocol that provides intelligent analysis of codebases using vector search and machine learning to understand code patterns, architectural decisions, and documentation.Last updated -4Python
- AsecurityAlicenseAqualityA Model Context Protocol server that helps large language models process code repositories by providing file tree generation, code merging, and code analysis capabilities.Last updated -314JavaScriptMIT License