Token导航 LogoToken导航TokenDH.com
Protected GitHub MCP logo
开发工具stdio官方级别未说明来源级核验

Protected GitHub MCP

MCP Server

一个独立的示例,展示如何构建一个MCP服务器,使用KeyCard OAuth SDK进行委托令牌交换,代表认证用户访问GitHub API。

工具数

1

提示词数

0

GitHub Stars

0

资源数

0
PythonOAuth认证开发工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Larry-Osakwe

提供方

Larry-Osakwe

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run mcp-github-api-server

详细介绍

GitHub API MCP 服务器

一个独立示例,展示了如何构建一个MCP(模型上下文协议)服务器,该服务器使用KeyCard OAuth SDK进行委托令牌交换,以代表经过身份验证的用户访问GitHub API。

特点/特性

  • 多区域支持服务器通过URL路径支持多个KeyCard区域(例如。, /{zone_id}/
  • 代币交换使用委托令牌交换来访问GitHub API
  • MCP集成使用FastMCP框架实现MCP工具
  • KeyCard SDK(密钥卡软件开发工具包)展示使用方法 keycardai-oauth 并且 keycardai-mcp 包裹;软件包
  • 错误处理使用 Pydantic 进行适当的错误处理和数据验证

先决条件

  • Python 3.10+(或“Python 3.10及以上版本”)
  • 紫外线 安装好的
这个项目使用了KeyCard Python SDK包(keycardai-oauth 并且 keycardai-mcp从 TestPyPI 索引中获取。这些包会在设置过程中自动安装。

设置

  1. 克隆此项目
   git clone https://github.com/keycardai/python-github-api-mcp-server
   cd python-github-api-mcp-server
  1. 安装依赖项
   uv sync

运行服务器

本地开发

# Copy environment template
cp .env.example .env

# Edit .env with your KeyCard client credentials
# (Create a client in KeyCard Console if you haven't already)

# Run the server
uv run mcp-github-api-server

服务器运行于 http://0.0.0.0:7878 默认情况下。

本地开发需要手动设置BasicAuth凭据,因为KeyCard无法访问localhost以获取用于动态注册的JWKS。请参阅 部署说明文件(DEPLOYMENT.md) 用于具有真正多租户功能的生产环境部署。

多区域配置

这台服务器已配置为 enable_multi_zone=True,意思是:

  • 路线可通过以下方式获取: /{zone_id}/ 而不是 /
  • 每个区域可以拥有独立的OAuth配置
  • 在请求处理过程中,从URL路径中提取区域ID

示例:如果您的区域ID是 abc1234,则MCP端点将是:

http://0.0.0.0:7878/abc1234/

可用工具

get_repositories

为已认证用户获取GitHub仓库。

参数:

  • per_page (int, 默认: 30):每页显示的仓库数量(1-100)
  • page (int, 默认值: 1): 分页的页码
  • sort (str, 默认值: "updated"):排序顺序 - 创建时间、更新时间、推送时间、完整名称
  • direction (str, 默认: "desc"):排序方向 - 升序或降序

示例回复:

{
  "repositories": [
    {
      "id": 123456,
      "name": "my-repo",
      "full_name": "user/my-repo",
      "private": false,
      "html_url": "https://github.com/user/my-repo",
      "description": "My awesome project",
      "language": "Python",
      "stargazers_count": 42,
      ...
    }
  ],
  "requestId": "abc12345",
  "totalRepositories": 1,
  "pagination": {
    "page": 1,
    "per_page": 30
  }
}

KeyCard 控制台配置

使用KeyCard连接此服务器:

  1. 在KeyCard控制台中创建一个MCP资源
  2. 将资源URL设置为与您的服务器基础URL相匹配(例如。, http://0.0.0.0:7878/{zone_id}/
  3. 将GitHub配置为凭据提供程序
  4. 设置GitHub API访问的OAuth流程
  5. 将GitHub凭据链接到您的MCP资源

部署

如需了解具有动态客户端注册和真正多租户功能的生产部署,请参阅 DEPLOYMENT.md 翻译为中文是:“部署指南.md” 或 “部署说明文件.md”

快速部署到渲染环境:

# Commit your changes
git add .
git commit -m "Deploy GitHub MCP Server"
git push

# Use render.yaml blueprint at https://render.com

发展

# Install with development dependencies
uv sync --dev

# Run linting
uv run ruff check src/

这个例子所展示的内容

  • 代币交换使用委托令牌交换来访问GitHub API
  • 多区域支持基于URL路径的多租户支持,适用于多个KeyCard区域
  • MCP集成使用FastMCP框架实现MCP工具
  • KeyCard SDK(软件开发工具包)展示使用方法 keycardai-mcp 使用私钥的JWT认证打包
  • 错误处理使用 Pydantic 进行适当的错误处理和数据验证

目录标签

目录标签

PythonOAuth认证开发工具GitHubAPI本地部署多区域支持令牌交换MCP集成

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP