项目简介 MCP GitHub 代码分析服务器是一个功能强大的后端应用,专门设计用于通过人工智能模型对GitHub仓库进行深度代码分析。它遵循 Model Context Protocol (MCP) 标准,能够以标准化的方式向客户端(如大语言模型应用)提供代码上下文信息和执行分析任务。

主要功能点

  • GitHub仓库克隆与分析: 能够从GitHub克隆指定仓库并对其代码进行深入分析。
  • 代码结构与关系提取: 识别并提取代码中的结构信息和组件之间的关系。
  • AI模型驱动洞察: 利用Ollama等本地AI模型API生成详细的代码洞察和摘要。
  • 标准化MCP接口: 通过MCP协议提供工具接口,使客户端(如大语言模型)可以方便地调用其功能。
  • 多种服务器模式: 支持Stdio和SSE等多种通信协议,灵活适应不同的部署和集成环境。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/eschizoid/mcp-github-code-analyzer.git
    cd mcp-github-code-analyzer
  2. 构建项目:
    ./gradlew build
  3. 安装并启动 Ollama: 确保您已安装 Ollama (版本 3.2+) 并启动一个模型(例如 'llama3.2:latest')。
    ollama run llama3.2:latest
  4. 安装 MCP Inspector (可选,用于测试和调试): 如果您想通过图形界面测试服务器,可以安装 MCP Inspector。
    export DANGEROUSLY_OMIT_AUTH=true; npx @modelcontextprotocol/[email protected]
    然后访问 'http://127.0.0.1:6274/'。

服务器配置 MCP服务器启动后,您的MCP客户端需要知道如何连接到它。以下是客户端连接MCP服务器所需的配置信息示例(假设使用 StdIo 模式):

{
  "serverName": "GitHub Code Analyzer",
  "command": "java",
  "args": [
    "-jar",
    "/path/to/mcp-github-code-analyzer/build/libs/mcp-github-code-analyzer-0.1.0-SNAPSHOT.jar",
    "--stdio"
  ],
  "description": "一个用于分析GitHub仓库代码的MCP服务器。",
  "mode": "stdio"
}
  • 'serverName': 服务器的显示名称,可自定义。
  • 'command': 启动MCP服务器的可执行命令,通常是 'java'。
  • 'args': 传递给 'command' 的参数列表。
    • '-jar': 指定运行JAR文件。
    • '/path/to/mcp-github-code-analyzer/build/libs/mcp-github-code-analyzer-0.1.0-SNAPSHOT.jar': MCP服务器 JAR 文件的绝对路径,请替换为您的实际路径。
    • '--stdio': 指定服务器以标准输入输出(Stdio)模式运行,这是最常见的本地连接方式。
  • 'description': 服务器的简短描述,用于客户端界面显示。
  • 'mode': 通信协议模式,这里是 'stdio'。

如果您选择SSE模式,客户端配置可能会有所不同,例如:

{
  "serverName": "GitHub Code Analyzer SSE",
  "command": "java",
  "args": [
    "-jar",
    "/path/to/mcp-github-code-analyzer/build/libs/mcp-github-code-analyzer-0.1.0-SNAPSHOT.jar",
    "--sse-server-ktor",
    "3001"
  ],
  "description": "一个用于分析GitHub仓库代码的MCP服务器 (SSE模式)。",
  "mode": "sse",
  "ssePort": 3001 // SSE模式下客户端连接的端口
}

环境变量配置 (可选) 您可以设置以下环境变量来定制服务器行为:

  • 'SERVER_PORT': SSE服务器运行的端口(默认: 3001)。
  • 'GITHUB_TOKEN': 用于访问GitHub API的个人访问令牌(可选,提高API请求限额)。
  • 'WORKING_DIRECTORY': 克隆仓库的临时目录(默认: 系统临时目录)。
  • 'MODEL_API_URL': AI模型API的URL(默认: 'http://localhost:11434/api',Ollama默认地址)。
  • 'MODEL_API_KEY': 模型服务API密钥(可选)。
  • 'MODEL_NAME': 使用的AI模型名称(默认: 'llama3.2')。

基本使用方法

  1. 启动 MCP 服务器: 根据您的需求选择启动模式。
    • Stdio 模式 (推荐用于本地开发和客户端连接):
      java -jar build/libs/mcp-github-code-analyzer-0.1.0-SNAPSHOT.jar --stdio
    • SSE 服务器模式 (推荐用于网络访问):
      ./gradlew run # 默认以SSE模式启动在3001端口
      # 或指定端口
      java -jar build/libs/mcp-github-code-analyzer-0.1.0-SNAPSHOT.jar --sse-server-ktor 3002
  2. 通过 MCP 客户端连接: 使用任何兼容MCP的客户端(例如MCP Inspector或您自己的LLM应用)连接到服务器。配置客户端时,提供上述生成的 MCP 服务器配置信息。
  3. 发现并调用工具: 连接成功后,客户端将能够发现服务器提供的 'analyze-repository' 工具。
    • 工具名称: 'analyze-repository'
    • 功能: 分析GitHub仓库并提供代码洞察和结构摘要。
    • 必需参数:
      • 'repoUrl': GitHub仓库的完整URL(例如 'https://github.com/owner/repo')。
    • 可选参数:
      • 'branch': 要分析的分支名称(默认: 'main')。
  4. 执行分析: 在客户端界面输入 'repoUrl' 和 'branch' 参数,然后调用 'analyze-repository' 工具。服务器将执行克隆、分析和AI模型处理,并将结果返回给客户端。

信息

分类

开发者工具