GitHub模型上下文协议服务器

一个为GitHub仓库、问题、拉取请求、分支、标签、提交和搜索提供模型上下文协议服务的服务器,支持托管密钥服务、自托管HTTP部署和CLI使用。

  • by hithereiamaliff
  • TypeScript
  • 混合部署
  • 更新于
在 GitHub 查看 hithereiamaliff/mcp-github

使用说明

GitHub MCP服务器

GitHub存储库、问题、拉取请求、分支、标签、提交和搜索的模型上下文协议服务器。

它附带了5个类别和支持的34个工具:

  • 托管密钥服务模式 usr_... 用户密钥
  • 自托管流式HTTP部署
  • 本地MCP客户端的CLI/stdio使用情况

快速开始

选项1:托管密钥服务模式

首选基于路径的形式:

{
  "mcpServers": {
    "github": {
      "transport": "streamable-http",
      "url": "https://mcp.techmavie.digital/github/mcp/usr_YOUR_USER_KEY"
    }
  }
}

兼容性查询表单:

https://mcp.techmavie.digital/github/mcp?api_key=usr_YOUR_USER_KEY

选项2:自托管HTTP

使用基于标头的身份验证 /github/mcp:

{
  "mcpServers": {
    "github": {
      "transport": "streamable-http",
      "url": "https://mcp.techmavie.digital/github/mcp",
      "headers": {
        "X-API-Key": "YOUR_MCP_API_KEY",
        "X-GitHub-Token": "YOUR_GITHUB_TOKEN"
      }
    }
  }
}

MCP_API_KEY 必须在服务器上或自托管上配置 /mcp 请求将被拒绝。 对于安装在以下位置的部署 /github,set PUBLIC_BASE_PATH=/github 因此服务器卡通告正确的公共端点。

选项3:CLI/stdio

npm install -g mcp-github
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_your_token_here mcp-github

客户端配置示例:

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "mcp-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
      }
    }
  }
}

选项4:传统查询令牌模式

这仍然仅支持显式请求,并且已被弃用:

https://mcp.techmavie.digital/github/mcp?token=YOUR_GITHUB_TOKEN

服务器不再回退到自己的服务器 GITHUB_PERSONAL_ACCESS_TOKEN 为裸 /mcp HTTP请求。

身份验证模式

模式 端点 客户端身份验证
托管密钥服务 POST /github/mcp/usr_... 用户键入路径
托管密钥服务兼容性 POST /github/mcp?api_key=usr_... 查询字符串中的用户密钥
自托管 POST /github/mcp X-API-Key 和 X-GitHub-Token 标题
遗产 POST /github/mcp?token=... 显式查询令牌,已弃用
CLI 标准输入 GITHUB_PERSONAL_ACCESS_TOKEN 有人是。

工具类别

搜索工具(3)

  • search_repositories
  • search_code
  • search_users

存储库工具(12)

  • get_repository
  • get_commit
  • list_commits
  • list_branches
  • create_or_update_file
  • create_repository
  • get_file_contents
  • fork_repository
  • create_branch
  • list_tags
  • get_tag
  • push_files

问题工具(7)

  • get_issue
  • add_issue_comment
  • search_issues
  • create_issue
  • list_issues
  • update_issue
  • get_issue_comments

拉取请求工具(11)

  • get_pull_request
  • update_pull_request
  • list_pull_requests
  • merge_pull_request
  • get_pull_request_files
  • get_pull_request_status
  • update_pull_request_branch
  • get_pull_request_comments
  • create_pull_request
  • get_pull_request_review_comments
  • create_pull_request_review_comment

实用工具(1)

  • hello

端点

端点 方法 描述
/health GET 健康检查
/mcp/:userKey POST 托管密钥服务端点
/mcp POST 自托管端点
/mcp-debug/open POST 启用时的诊断端点
/.well-known/mcp/server-card.json GET 根级发现元数据
/analytics GET 分析JSON,需要 X-API-Key
/analytics/tools GET 分析工具故障,需要 X-API-Key
/analytics/dashboard GET 分析仪表板外壳

如果此服务器安装在 /github,服务器卡路由仍然存在于主机根:

https://mcp.techmavie.digital/.well-known/mcp/server-card.json

环境变量

变量 默认值 描述
PORT 8080 HTTP端口
HOST 0.0.0.0 绑定地址
GITHUB_PERSONAL_ACCESS_TOKEN unset 仅限CLI/stdio令牌
MCP_API_KEY unset 自托管需要 /mcp 和分析
KEY_SERVICE_URL unset 托管密钥服务解析器URL
KEY_SERVICE_TOKEN unset 托管密钥服务承载令牌
ALLOWED_ORIGINS * 逗号分隔的CORS列表
PUBLIC_BASE_PATH unset 公共反向代理装载路径,例如 /github
MCP_PROTOCOL_VERSION 2025-11-25 HTTP服务器报告的协议版本
MCP_TRACE_HTTP false 启用净化请求跟踪
ENABLE_MCP_DIAGNOSTICS false 启用 /mcp-debug/open
ANALYTICS_DIR /app/data 分析存储目录

本地开发

npm install
npm run dev:http

构建并运行生产HTTP模式:

npm run build:tsc
npm run start:http

运行CLI模式:

GITHUB_PERSONAL_ACCESS_TOKEN=ghp_your_token_here npm run cli

项目结构

mcp-github/
|-- src/
|   |-- index.ts
|   |-- http-server.ts
|   |-- cli.ts
|   |-- tools/
|   |-- resources/
|-- deploy/
|   |-- DEPLOYMENT.md
|   |-- nginx-mcp.conf
|-- .github/workflows/
|-- docker-compose.yml
|-- Dockerfile
|-- .env.sample
|-- package.json
|-- tsconfig.json
`-- README.md

安全须知

  • 自托管 /mcp 在以下情况下关闭失败 MCP_API_KEY 不见了。
  • 分析失败时关闭 MCP_API_KEY 不见了。
  • 裸露的 /mcp 请求不再继承服务器自己的PAT。
  • 最近的分析仅存储哈希客户端IP。
  • 请求范围的MCP服务器和传输用于HTTP请求。
  • ?token= 仅作为明确的已弃用兼容性路径可用。

许可证

麻省理工学院