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 服务器(默认)。Copy - 原始客户端(
tools/mcp-raw-client.js
):一个更简单的客户端,仅捕获服务器信息。Copy - 简单客户端(
tools/simple-client.js
):通过 stdio 与服务器通信。Copy
所有客户端脚本都会在项目根目录中生成一个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(开发可选,生产推荐)
This server cannot be installed
用于高级代码分析的综合模型上下文协议服务器,提供语法分析、依赖关系可视化和 AI 辅助开发工作流程支持的工具。
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol tool for analyzing code repositories, performing security scans, and assessing code quality across multiple programming languages.Last updated -PythonMIT 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
- -securityAlicense-qualityA Model Context Protocol (MCP) server that provides code analysis capabilities using tree-sitter, designed to give Claude intelligent access to codebases with appropriate context management.Last updated -1PythonMIT License
- -securityAlicense-qualityA Model Context Protocol server that enhances AI-generated code quality through comprehensive analysis across 10 critical dimensions, helping identify issues before they become problems.Last updated -3PythonApache 2.0