项目简介 MCP GitHub 代码分析服务器是一个功能强大的后端应用,专门设计用于通过人工智能模型对GitHub仓库进行深度代码分析。它遵循 Model Context Protocol (MCP) 标准,能够以标准化的方式向客户端(如大语言模型应用)提供代码上下文信息和执行分析任务。
主要功能点
- GitHub仓库克隆与分析: 能够从GitHub克隆指定仓库并对其代码进行深入分析。
- 代码结构与关系提取: 识别并提取代码中的结构信息和组件之间的关系。
- AI模型驱动洞察: 利用Ollama等本地AI模型API生成详细的代码洞察和摘要。
- 标准化MCP接口: 通过MCP协议提供工具接口,使客户端(如大语言模型)可以方便地调用其功能。
- 多种服务器模式: 支持Stdio和SSE等多种通信协议,灵活适应不同的部署和集成环境。
安装步骤
- 克隆仓库:
git clone https://github.com/eschizoid/mcp-github-code-analyzer.git cd mcp-github-code-analyzer - 构建项目:
./gradlew build - 安装并启动 Ollama:
确保您已安装 Ollama (版本 3.2+) 并启动一个模型(例如 'llama3.2:latest')。
ollama run llama3.2:latest - 安装 MCP Inspector (可选,用于测试和调试):
如果您想通过图形界面测试服务器,可以安装 MCP Inspector。
然后访问 'http://127.0.0.1:6274/'。export DANGEROUSLY_OMIT_AUTH=true; npx @modelcontextprotocol/[email protected]
服务器配置 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')。
基本使用方法
- 启动 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
- Stdio 模式 (推荐用于本地开发和客户端连接):
- 通过 MCP 客户端连接: 使用任何兼容MCP的客户端(例如MCP Inspector或您自己的LLM应用)连接到服务器。配置客户端时,提供上述生成的 MCP 服务器配置信息。
- 发现并调用工具:
连接成功后,客户端将能够发现服务器提供的 'analyze-repository' 工具。
- 工具名称: 'analyze-repository'
- 功能: 分析GitHub仓库并提供代码洞察和结构摘要。
- 必需参数:
- 'repoUrl': GitHub仓库的完整URL(例如 'https://github.com/owner/repo')。
- 可选参数:
- 'branch': 要分析的分支名称(默认: 'main')。
- 执行分析: 在客户端界面输入 'repoUrl' 和 'branch' 参数,然后调用 'analyze-repository' 工具。服务器将执行克隆、分析和AI模型处理,并将结果返回给客户端。
信息
分类
开发者工具