GitHub项目MCP服务器
GitHub项目的模型上下文协议服务器(v2)。它公开了AI代理可以调用的工具,以列出/搜索项目项、获取详细信息(包括状态/字段)、在通道之间移动项(状态)、更新标题/描述和评论。
需求
- Node.js 18+(使用ES模块)
- GitHub PAT及其作用域:
project,project:write,read:org,以及repo(用于问题更新/评论)
设置
- 复制
.env.example到.env并设置:
GITHUB_TOKEN=ghp_xxx
GITHUB_OWNER=my-org-or-user
GITHUB_PROJECT_NUMBER=12 # number from the project URL- 安装deps并构建:
npm install
npm run build
npm start对于使用实时TypeScript的开发人员: npm run dev.
码头工人
标准模式(默认,适用于本地客户端)
docker build -t github-project-mcp .
docker run --name github-project-mcp -d --rm -it --env-file .env github-project-mcpHTTP模式(用于远程MCP客户端)
docker build -t github-project-mcp .
docker run --name github-project-mcp -d --rm -p 3000:3000 --env-file .env -e MCP_TRANSPORT=http github-project-mcp服务器将监听 http://0.0.0.0:3000/mcp。配置您的MCP客户端以连接到此端点。
HTTP模式的环境变量:
MCP_TRANSPORT=http-启用HTTP传输(默认值:stdio)PORT=3000-要侦听的端口(默认值:3000)HOST=0.0.0.0-要绑定的主机(默认值:0.0.0.0)ALLOWED_HOSTS=localhost,example.com-以逗号分隔的DNS重新绑定保护允许的主机名列表
MCP工具
list_items--列出/搜索项目(query,first,after;每次呼叫覆盖:owner,projectNumber,token)get_item--通过以下方式获取项目项itemIdlist_statuses--显示项目的状态选项set_status--将项目移动到状态/通道(itemId,status)update_item--更新Issue或DraftIssue内容的标题/正文comment_item--在Issue/PR内容中添加评论
所有工具都接受每次调用的覆盖 owner, projectNumber,以及 token,回落到 .env.
连接MCP客户端
本地客户端(stdio模式)
对于像Cursor这样的本地客户端,配置MCP服务器以使用stdio传输运行:
{
"mcpServers": {
"github-project": {
"command": "docker",
"args": ["exec", "-i", "container-name", "node", "dist/index.js"]
}
}
}远程客户端(HTTP模式)
对于远程MCP客户端,请使用HTTP传输:
- 以HTTP模式启动服务器:
MCP_TRANSPORT=http docker run ... - 配置您的客户端以连接到:
http://your-server:3000/mcp - 客户端应发送请求
x-mcp-session-id会话管理标头
备注
GITHUB_PROJECT_NUMBER是URL中可见的项目编号(例如。,/projects/12).- 状态更新的目标是
Status项目上的单选字段。 - DraftIssue和Issue内容支持更新标题/正文;支持对问题和公关内容进行评论。
- 服务器通过以下方式支持stdio(默认)和HTTP传输模式
MCP_TRANSPORT环境变量。
