使用说明
GitHub项目MCP服务器
一个MCP(模型上下文协议)服务器,通过GraphQL API提供与GitHub项目交互的工具。此仓库由模型上下文协议(MCP)管理,旨在与Claude Desktop无缝协作。由ProRanked撰写。
特性
项目管理
- 为存储库或组织创建新项目
- 列出存储库和组织的项目
- 获取包括字段在内的详细项目信息
- 列出项目中的项目
- 从问题/PR创建新项目项
- 更新项目项字段值
问题管理
- 使用自动类型检测和标签创建新问题
- 智能检测问题类型:Epic、功能、Bug、任务、故事、文档
- 在问题之间创建父子关系(Epic>功能>故事/任务)
- 更新现有问题(标题、正文、状态、标签、受让人、里程碑)
- 列出筛选选项(状态、标签、受让人)的问题
- 获取详细的问题信息,包括评论和项目关联
- 查看完整的问题层次结构(父级和子级)
- 确保存储库中存在标准问题类型标签
设置
-
克隆此存储库
-
安装依赖项:
npm install -
构建项目:
npm run build -
在Claude Desktop设置中配置您的GitHub令牌(请参阅下面的集成部分)
用法
运行服务器
该服务器设计为通过Claude Desktop的MCP集成运行。
对于当地发展而言 .env 文件:
npm run dev
注: 生产服务器(npm start)要求 GITHUB_TOKEN 外部设置的环境变量。
可用工具
项目工具
创建项目
创建一个新的GitHub项目。
参数:
owner(必填):存储库所有者或组织名称title(必填):项目名称repo(可选):存储库名称(组织项目省略)
list_项目
列出存储库或组织的GitHub项目。
参数:
owner(必填):存储库所有者或组织名称repo(可选):存储库名称(对于组织项目省略)projectsType(可选):“存储库”或“组织”(默认:“存储仓库”)
get_工程
获取特定项目的详细信息。
参数:
projectNumber(必填):项目编号owner(必填):存储库所有者或组织名称repo(可选):存储库名称(对于组织项目省略)
list_project_items
列出GitHub项目中的项目。
参数:
projectId(必填):项目节点IDfirst(可选):要返回的项目数(默认值:20)
创建项目
将现有问题或拉取请求添加到项目中。
参数:
projectId(必填):项目节点IDcontentId(必填):问题或PR节点ID
update_project_item_field
更新项目项的字段值。
参数:
projectId(必填):项目节点IDitemId(必填):项目项节点IDfieldId(必填):字段节点IDvalue(必填):字段的新值
问题工具
创建_发行
在具有自动类型检测功能的存储库中创建新问题。
参数:
owner(必填):存储库所有者(自动转换为小写)repo(必填):存储库名称title(必填):发行标题body(可选):问题正文/描述labels(可选):要分配的标签名称数组assignees(可选):要分配的用户名数组milestone(可选):要分配的里程碑编号parentIssueNumber(可选):将此问题链接到的父问题编号
自动类型检测:该工具分析标题和正文,以自动添加适当的标签:
- 史诗:大型计划、里程碑、上级任务
- 特性:新功能、增强功能、实施
- 程序错误:错误、修复、崩溃、功能损坏
- 任务:一般任务、杂务、重构、更新
- 故事:用户故事,“作为用户”场景
- 文档:文档、自述文件、指南
update_issue
更新现有问题。
参数:
owner(必填):存储库所有者repo(必填):存储库名称issueNumber(必填):发行号title(可选):新标题body(可选):新车身state(可选):“打开”或“关闭”labels(可选):用此数组替换所有标签assignees(可选):用此数组替换所有受让人milestone(可选):新的里程碑编号(或空删除)
list_issues
在存储库中列出问题。
参数:
owner(必填):存储库所有者repo(必填):存储库名称state(可选):“打开”、“关闭”或“全部”(默认为“打开”)labels(可选):要筛选的标签数组assignee(可选):按受让人用户名筛选first(可选):要返回的问题数量(默认值:20)
获取问题
获取有关特定问题的详细信息。
参数:
owner(必填):存储库所有者repo(必填):存储库名称issueNumber(必填):发行号
确保标签
确保存储库中存在标准问题类型标签。
参数:
owner(必填):存储库所有者repo(必填):存储库名称labels(可选):标签定义数组,包含:name(必填):标签名称color(必填):十六进制颜色,无#description(可选):标签描述
如果没有提供标签,则创建默认问题类型标签(史诗、功能、错误、任务、故事、文档)。
链接问题
在问题之间建立父子关系。
参数:
owner(必填):存储库所有者repo(必填):存储库名称parentIssueNumber(必填):父发行号(例如Epic或Feature)childIssueNumber(必填):要链接的儿童问题编号linkType(可选):关系类型-“轨迹”(默认)、“块”或“相关”
设置_租金
设置或更新问题的父级(比link_issues更简单的替代方案)。
参数:
owner(必填):存储库所有者repo(必填):存储库名称issueNumber(必填):要为其设置父项的问题编号parentIssueNumber(必填):父发行号(例如Epic或Feature)
获取问题层次结构
获取一个问题的完整层次结构,显示所有家长和孩子。
参数:
owner(必填):存储库所有者repo(必填):存储库名称issueNumber(必填):用于获取层次结构的问题编号
add_sub_issue
使用GitHub beta API添加本机子问题关系(在GitHub的UI中创建可见的父子关系)。
参数:
owner(必填):存储库所有者repo(必填):存储库名称parentIssueNumber(必填):母公司发行号childIssueNumber(必填):要添加为子问题的子问题编号
注意:这使用了GitHub的测试版API。如果不可用,则退回到任务列表方法。
与Claude Desktop集成
添加到您的Claude Desktop配置文件中:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"github-projects": {
"command": "node",
"args": ["/path/to/github-projects-mcp/dist/index.js"],
"env": {
"GITHUB_TOKEN": "your_github_personal_access_token"
}
}
}
}
所需的GitHub令牌权限:
repo-用于访问存储库项目read:org-用于访问组织项目project-用于完全项目访问(读/写)
在以下位置创建您的令牌:https://github.com/settings/tokens
示例用法
项目范例
-
创建新项目:
Tool: create_project Arguments: { "owner": "octocat", "repo": "hello-world", "title": "My New Project" } -
列出存储库中的所有项目:
Tool: list_projects Arguments: { "owner": "octocat", "repo": "hello-world" } -
获取项目详细信息:
Tool: get_project Arguments: { "owner": "octocat", "repo": "hello-world", "projectNumber": 1 }
问题示例
-
确保存在问题类型标签:
Tool: ensure_labels Arguments: { "owner": "octocat", "repo": "hello-world" } -
创建新问题(自动检测为错误):
Tool: create_issue Arguments: { "owner": "octocat", "repo": "hello-world", "title": "Bug: Application crashes on startup", "body": "When I try to start the application, it crashes with error XYZ.", "labels": ["high-priority"], "assignees": ["octocat"] } -
创造史诗:
Tool: create_issue Arguments: { "owner": "octocat", "repo": "hello-world", "title": "Epic: Implement user authentication system", "body": "This epic covers the implementation of a complete authentication system including login, registration, and password recovery." } -
在史诗下创建一个功能:
Tool: create_issue Arguments: { "owner": "octocat", "repo": "hello-world", "title": "Feature: Implement login functionality", "body": "Implement secure login with JWT tokens", "parentIssueNumber": 100 } -
链接现有问题:
Tool: link_issues Arguments: { "owner": "octocat", "repo": "hello-world", "parentIssueNumber": 100, "childIssueNumber": 101, "linkType": "tracks" } -
为问题设置父项(语法更简单):
Tool: set_parent Arguments: { "owner": "octocat", "repo": "hello-world", "issueNumber": 101, "parentIssueNumber": 100 } -
查看问题层次结构:
Tool: get_issue_hierarchy
Arguments: {
"owner": "octocat",
"repo": "hello-world",
"issueNumber": 100
}
- 添加本地子问题关系(测试版):
Tool: add_sub_issue
Arguments: {
"owner": "octocat",
"repo": "hello-world",
"parentIssueNumber": 100,
"childIssueNumber": 101
}
- 更新问题:
Tool: update_issue
Arguments: {
"owner": "octocat",
"repo": "hello-world",
"issueNumber": 42,
"state": "closed",
"labels": ["bug", "fixed"]
}
- 用特定标签列出未决问题:
Tool: list_issues
Arguments: {
"owner": "octocat",
"repo": "hello-world",
"state": "open",
"labels": ["bug"]
}
- 向项目添加问题:
Tool: create_project_item
Arguments: {
"projectId": "PVT_kwDOBgKK184AAAAA",
"contentId": "I_kwDOBgKK185BBBBB"
}
发展
服务器由以下组件构建:
- TypeScript用于类型安全
- @MCP服务器实现的modelcontextprotocol/sdk
- @用于GitHub graphql API访问的octopkit/graphql
- 用于环境配置的dotenv
作者
由...创建 已发布
许可证
MIT许可证-请参阅 许可证 详细信息文件