README
🚀 GitHub MCP 服务器 - FastAPI 实现
本项目借助 FastAPI 实现了一个 模型上下文协议(MCP)服务器,能让 AI 助手(如 Claude)与 GitHub 进行交互。服务器提供了一系列 API 端点,可用于获取用户信息、管理仓库、创建问题以及自动化 GitHub 工作流。
✨ 主要特性
- ✅ 获取 GitHub 用户详情 和仓库
- ✅ 创建和管理问题 在仓库中
- ✅ 列出仓库中的所有 问题
- ✅ 星标一个仓库
- ✅ 带 AI 功能的 GitHub 问题摘要(可选)
- ✅ 安全 API 使用 GitHub OAuth 令牌
- ✅ 异步 FastAPI 实现
📦 安装指南
1️⃣ 克隆仓库
git clone https://github.com/snehaapratap/mcp-server.git
cd mcp-server
2️⃣ 创建并激活虚拟环境
python3 -m venv venv
source venv/bin/activate
3️⃣ 安装依赖项
pip install -r requirements.txt
4️⃣ 设置环境变量
在根目录下创建一个 .env 文件,并添加你的 GitHub 个人访问令牌 (PAT):
GITHUB_TOKEN=your_personal_access_token
5️⃣ 运行 FastAPI 服务器
uvicorn server:app --reload
服务器将在 http://127.0.0.1:8000 上运行。
📚 详细文档
🔥 API 端点
| 方法 | 端点 | 描述 |
|------|-----|-------------|
| GET | / | 检查 MCP 服务器健康状态 |
| GET | /github/user | 获取 GitHub 用户详情 |
| GET | /github/repos | 获取认证用户的所有仓库 |
| POST | /github/create-issue | 在仓库中创建问题 |
| GET | /github/list-issues | 列出仓库中的所有问题 |
| PUT | /github/star-repo | 星标一个仓库 |
| POST | /github/summarize-issues | 带 AI 功能的问题摘要(可选) |
⚡ 使用示例 (cURL)
🔹 获取用户详情
curl -X GET "http://127.0.0.1:8000/github/user"
🔹 获取仓库
curl -X GET "http://127.0.0.1:8000/github/repos"
🔹 创建问题
curl -X POST "http://127.0.0.1:8000/github/create-issue" \
-H "Content-Type: application/json" \
-d '{"owner":"username", "repo":"repository", "title":"Issue Title", "body":"Issue Body"}'
🔹 列出问题
curl -X GET "http://127.0.0.1:8000/github/list-issues?owner=username&repo=repository"
🔹 星标仓库
curl -X PUT "http://127.0.0.1:8000/github/star-repo" \
-H "Content-Type: application/json" \
-d '{"owner":"username", "repo":"repository"}'
🛡️ 错误处理
如果出现错误,例如无效的 GitHub 令牌,服务器将返回以下格式的消息:
{
"error": "Invalid GitHub Token",
"message": "Please provide a valid GitHub OAuth token."
}
这有助于开发者快速识别和解决错误。
🌟 未来增强
- 支持管理 pull 请求
- 添加 WebSocket 实时通知功能
- 部署到云服务(如 AWS、Azure 或 Google Cloud)
这个项目展示了如何使用 FastAPI 快速构建一个与 GitHub 交互的 API 服务器。通过配置环境变量和简单的命令,开发者可以轻松启动并运行该服务器,开始与 GitHub 进行交互。
Scan to join WeChat group