项目简介
本项目是一个基于 Model Context Protocol (MCP) 实现的服务器,专门用于连接LLM客户端(如AI编程助手)与GitHub仓库。它允许AI通过标准化的接口访问和获取GitHub仓库的代码文件、项目结构等信息,从而更好地理解代码、回答问题或执行与代码相关的任务。
主要功能点
- 获取仓库全部文件内容: 根据指定的仓库、文件类型过滤、排除路径和文件数量限制,获取仓库中的多个文件内容。
- 获取单个文件内容: 获取GitHub仓库中指定路径的单个文件的详细内容。
- 获取仓库结构: 获取仓库的文件和目录列表,呈现项目结构概览。
- 支持GitHub认证: 可以配置GitHub Personal Access Token,提高API请求频率限制。
安装步骤
- 克隆仓库到本地:
git clone https://github.com/shanksxz/github-mcp.git cd github-mcp - 安装项目依赖:
npm install - 构建项目:
这会在 'dist' 目录下生成可执行的JavaScript文件。npm run build - 可选步骤:配置GitHub认证
为了避免GitHub API的低请求频率限制,建议设置 'GITHUB_TOKEN' 环境变量。创建一个文件(例如 'gh.sh'),加入以下内容,替换 'your_github_personal_access_token' 为你的令牌:
然后赋予执行权限并运行一次:export GITHUB_TOKEN=your_github_personal_access_token # 后面可以加上运行服务器的命令,例如: # node /path/to/your-cloned-repo/dist/index.js
你也可以通过其他方式设置环境变量,确保服务器运行时可以访问到 'GITHUB_TOKEN'。chmod +x gh.sh ./gh.sh # 运行此脚本可在当前shell会话中设置TOKEN
服务器配置(针对MCP客户端)
MCP服务器通常以一个命令的形式运行。MCP客户端需要知道如何启动这个服务器。对于本仓库,构建完成后,服务器的可执行文件通常位于 'dist/index.js'。客户端需要配置一个类型为 "Command" 的MCP服务器,其命令路径指向这个文件,并使用 'node' 命令来执行它。
基本的配置信息如下(具体配置界面和字段名称取决于你的MCP客户端):
- 服务器名称 (Name): github-repo-context (或其他你喜欢的名称)
- 类型 (Type): Command
- 命令 (Command): node
- 命令参数 (Args): /path/to/your-cloned-repo/dist/index.js (请替换为你在本地克隆仓库后 'dist/index.js' 文件的实际绝对路径)
确保运行客户端的环境已经设置了 'GITHUB_TOKEN' 环境变量,以便服务器能够使用你的认证进行API调用。
基本使用方法
服务器启动并与MCP客户端连接后,你可以在与LLM交互时,通过自然语言或客户端提供的工具调用界面,触发服务器提供的功能。例如,在支持的客户端中,你可以尝试输入:
- 'Get the structure of the repository tensorflow/tensorflow' (可能会触发 'get-repo-structure' 工具)
- 'Show me the content of the file README.md in repo octocat/Spoon-Knife' (可能会触发 'get-file-content' 工具)
- 'Fetch context from the repository facebook/react, including .js and .ts files, but limit to 30 files' (可能会触发 'get-repo-context' 工具)
LLM客户端会根据你的输入,判断需要调用哪个MCP工具,并将相应的参数传递给服务器执行。服务器返回的结果将作为上下文提供给LLM。
信息
分类
开发者工具