代码审查MCP服务器

一个提供Python、Go和C++ GitHub仓库代码审查上下文的MCP服务器,通过JSON-RPC暴露API给LLMs使用。

  • by alexcpn
  • Python
  • 混合部署
  • 更新于
在 GitHub 查看 alexcpn/codereview_mcp_server

使用说明


标题:代码审查MCP服务器 表情符号🛰️ 颜色来源:靛蓝 颜色致:蓝色 sdk:docker app_file:Dockerfile 固定:false

MCP服务器公开回购代码详细信息

一个MCP服务器,为Python、Go和C++GitHub Repos的有效代码审查提供上下文

MCP是用于向LLM公开API的模型上下文协议,既有API描述,也有通过JSON-RPC调用API的方法。

MCP服务器公开了在 工具/code_indexer.py:

  • index_github_repo_mcp(github url,re_index=False) --克隆一个GitHub仓库(浅,深度=1)并对其进行索引以供查询。集 re_index=True 强制进行新的克隆并重新索引。
  • index_folder_mcp(文件夹路径,re_index=False) --为本地文件夹建立索引,以便其他工具可以查询它。设置 re_index=True 强制从磁盘重新索引。
  • get_function_context_for_project_mcp --获取函数及其被调用者的详细信息。
  • get_function_references_mcp --获取索引代码库中函数的引用。
  • 搜索_降级_mcp --在存储库中搜索术语,并以类似grep的格式返回匹配的行。

注: 您必须首先为仓库或文件夹建立索引(通过 index_github_repo_mcp 或 index_folder_mcp)在用其他工具查询之前。返回的文件夹路径/密钥应作为 repo_name 查询工具的参数。

缓存

索引数据被持久化到SQLite数据库中(cache/index_cache.db).在后续调用中,即使在服务器重启后,缓存的索引也会立即加载,而无需重新克隆或重新解析。要获取存储库或文件夹中的新更改,请再次调用索引工具 re_index=True.

服务器使用 TreeSitter项目 对源代码进行AST解析,提取类、方法、引用和文档。目前仅限于Python、Go和CPP源代码,但可以轻松扩展到TreeSitter支持的其他语言

使用uv作为包管理器。

中的客户端调用示例 Colab笔记本

此服务器的示例托管在Hugging Face Spaces中-https://alexcpn-treesitter-mcp.hf.space/mcp/


如何跑步

在流式HTTP上运行服务器

继续运行 http://127.0.0.1:7860/mcp

uv run codereview_mcp_server/http_server.py

与MCP Insepctor核实

npx @modelcontextprotocol/inspector  

选择流式HTTP并给出URL http://127.0.0.1:7860/mcp

您可以通过Ngrok公开上述内容 ngrok http http://localhost:7860 互联网

运行STDIO服务器

STDIO客户端将运行服务器并查询工具

uv run codereview_mcp_server/stdio_client.py

使用MCP检查器进行检查

示例

npx @modelcontextprotocol/inspector   uv   --directory codereview_mcp_server/   run   stdio_server.py

用于测试逻辑/用于开发和扩展

 uv run code_ast_mcp_server/tools/code_indexer.py 

Claude桌面配置

{
  "mcpServers": {
    "CodeReviewMCP": {
      "command": "uv",
      "args": [
        "--directory",
        "<add path>/codereview_mcp_server",
        "run",
        "stdio_server.py"
      ]
    }
  }
}

Docker的构建与运行

docker build -t codereview-mcp-server .

docker run -it --rm -p 7860:7860 codereview-mcp-server