返回市场
代码分析MCP

代码分析MCP

作者:saiprashanths21 星标更新:2025-02-08

项目介绍

代码分析MCP服务器

一个基于模型上下文协议(MCP)的服务器,使AI模型能够通过自然语言对话来理解和分析代码库。

✨ 特点

  • 自然代码探索:对你的代码库提出高层次的问题

    "系统中集成了哪些不同的支付提供商?"
    
  • 深入代码理解:提取关于数据模型和系统架构的见解

    "从前端到数据库,用户认证流程是如何工作的?"
    
  • 动态分析:跟踪数据流并理解系统关系

    "展示我们计算交易费用的所有地方"
    

限制

此工具是更复杂的代码分析工具或copilot(如Aider)的简化替代品。虽然它缺乏像Aider这样的工具所具备的高级代码分析能力和健壮性,但它为已经拥有Claude Pro订阅的用户提供了一种轻量级的代码库探索解决方案。其主要优势包括:

  • 成本效益:使用现有的Claude Pro订阅意味着没有额外的API费用,而其他工具在分析大型代码库时可能会变得昂贵。
  • 简单设置:快速启动,配置最少。
  • 基本分析:适合高层次的代码理解和探索。

需要注意的是,由于其较为简单的代码分析方法,与更专业的工具相比,它可能产生更多错误或提供较少详细的信息。

🚀 快速开始

  1. 安装服务器:
git clone https://github.com/saiprashanths/code-analysis-mcp.git
cd code-analysis-mcp
  1. 安装Claude桌面应用。有关如何使用Claude桌面应用设置MCP服务器的更多信息,请参阅文档

  2. 在Claude桌面的应用配置文件中配置服务器:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "code-analysis": {
      "command": "uv",
      "args": [
        "--directory",
        "/PATH/TO/YOUR/REPO",
        "run",
        "code_analysis.py"
      ]
    }
  }
}
  1. 重启Claude桌面应用并开始分析你的代码!

  2. 确保工具正确安装

  • 点击工具图标应显示code-analysis工具 <img src="./docs/images/tools.png" width="500">
<img src="./docs/images/mcptools.png" width="500">
  • 点击集成按钮应显示analyze_code_repository提示 <img src="./docs/images/integrations.png" width="500">
<img src="./docs/images/prompt.png" width="500">

💡 示例用法

这是你如何使用该工具来理解复杂代码库的一个示例:

首先点击下面显示的analyze_code_repository提示。这将引导你完成初始化仓库并开始的过程。

<img src="./docs/images/prompt.png" width="500">
你:在这个系统中,交易处理是如何工作的?

Claude:让我分析一下交易的数据流。
查看代码库,我发现交易处理通过几个关键组件进行:

1. 原始交易数据被捕获在`TransactionEvent`模型中,字段包括:
   - 支付状态
   - 金额
   - 费用计算
   - 处理时间戳

2. 这些数据随后通过PaymentSummary模型进行处理,该模型:
   - 验证支付提供商的响应
   - 计算处理费用
   - 记录交易状态

你想让我详细解释这些中的任何一部分吗?

你:涉及的关键数据库表有哪些?

Claude:交易处理管道中的主要表有:

1. transaction_events:存储原始支付事件
2. payment_summary:处理过的交易记录
3. payment_providers:提供商配置
4. merchant_accounts:账户特定设置

告诉我你想看这些表中的任何一个的模式!

🔧 可用工具

initialize_repository

初始化用于分析的代码仓库:

initialize_repository("/path/to/repo")
# 输出:成功初始化代码仓库于:/path/to/repo

get_repo_info

获取已初始化仓库的信息:

get_repo_info()
# 输出:
# 代码仓库信息:
# 路径:/path/to/repo
# 存在:True
# 是否目录:True
# 找到.gitignore文件

get_repo_structure

检查仓库文件结构:

get_repo_structure(depth=2)
# 输出:
# 📁 src/
#   📁 api/
#     📄 routes.py
#     📄 models.py
#   📁 utils/
#     📄 helpers.py
#   📄 main.py

read_file

读取并分析特定文件:

read_file("src/api/models.py")
# 输出:
# 文件:src/api/models.py
# 语言:python
# 大小:2.3 KB
#
# [文件内容...]

⚙️ 技术细节

  • 默认扫描深度:3层
  • 最大文件大小:1MB
  • 每个文件的最大行数:1000
  • 忽略.gitignore列出的路径
  • 仅限本地文件系统访问
  • 验证文件路径以防止目录遍历

📝 许可证

本项目采用MIT许可证——详情见LICENSE文件。