🧩 FastAPI GitHub MCP服务器
轻量级 基于FastAPI的MCP(模型上下文协议)服务器 它将GitHub存储库操作暴露给 VS代码副本 或任何MCP兼容客户端。
此服务器允许您:
- 🔍 列出回购中的所有分支
- 🌿 创建新分支
- 🔀 打开新的拉取请求(PR)
- 🧾 查看和审查现有PR
- ✅ 合并PR
- 📂 查看存储库文件内容
所有这些都通过本地REST API,您可以注册为 MCP端点 VS代码内部。
______________________________________________________________________
🚀 特性
| 操作 | 端点 | 方法 |
|---|---|---|
| 健康检查 | /health | 得到 |
| MCP清单 | /mcp | 得到 |
| 列出分支 | /repos/{owner}/{repo}/branches | 得到 |
| 创建分支 | /repos/{owner}/{repo}/branches | 职位 |
| 列出PR | /repos/{owner}/{repo}/prs | 得到 |
| 公开公关 | /repos/{owner}/{repo}/prs | 职位 |
| 获取PR | /repos/{owner}/{repo}/prs/{pr_number} | 得到 |
| 审查公关 | /repos/{owner}/{repo}/prs/{pr_number}/reviews | 职位 |
| 合并PR | /repos/{owner}/{repo}/prs/{pr_number}/merge | 职位 |
______________________________________________________________________
⚙️ 安装
1.️⃣ 克隆或复制此文件
git clone
cd fastapi-github-mcp-server2.️⃣ 安装依赖项
pip install fastapi uvicorn pydantic requests python-multipart(可选,但建议使用 .env):
pip install python-dotenv______________________________________________________________________
🔐 认证
该应用程序需要 GitHub个人访问令牌(PAT).
选项A——通过环境变量
export GITHUB_TOKEN=ghp_yourtokenhere # macOS / Linux
set GITHUB_TOKEN=ghp_yourtokenhere # Windows CMD
$env:GITHUB_TOKEN="ghp_yourtokenhere" # PowerShell选项B——从代码中设置(用于本地调试)
os.environ["GITHUB_TOKEN"] = "ghp_yourtokenhere"选项C——使用 .env 文件
创建一个 .env 根目录中的文件:
GITHUB_TOKEN=ghp_yourtokenhere然后将以下内容添加到Python文件的顶部:
from dotenv import load_dotenv
load_dotenv()______________________________________________________________________
▶️ 运行服务器
调试/自动重新加载模式
uvicorn fastapi_github_mcp_server:app --reload --port 8000 --host 0.0.0.0使用详细日志记录
uvicorn fastapi_github_mcp_server:app --reload --log-level debug或者直接运行
python fastapi_github_mcp_server.py______________________________________________________________________
🧭 MCP注册(VS代码副本)
创建一个 .vscode/mcp.json 工作区中的文件:
{
"name": "local-github-mcp",
"version": "0.1.0",
"description": "Local GitHub MCP providing repo operations",
"modes": ["chat", "completion"],
"schemaVersion": "1.0.0",
"url": "http://localhost:8000/mcp"
}重新启动VS代码——副驾驶将检测并注册MCP。
现在,您可以使用以下提示:
“列出仓库中所有打开的拉取请求octocat/Hello-World" “创建新分支feature/test从main" “打开PRfeature/test到main"
______________________________________________________________________
🧪 cURL命令示例
列出分支
curl -H "Authorization: Bearer ghp_yourtoken" \
http://localhost:8000/repos/octocat/Hello-World/branches创建分支
curl -X POST -H "Authorization: Bearer ghp_yourtoken" \
-H "Content-Type: application/json" \
-d '{"new_branch": "feature/test", "base_branch": "main"}' \
http://localhost:8000/repos/octocat/Hello-World/branches打开PR
curl -X POST -H "Authorization: Bearer ghp_yourtoken" \
-H "Content-Type: application/json" \
-d '{"title": "Add feature", "head": "feature/test", "base": "main"}' \
http://localhost:8000/repos/octocat/Hello-World/prs审查PR
curl -X POST -H "Authorization: Bearer ghp_yourtoken" \
-H "Content-Type: application/json" \
-d '{"body": "Looks good!", "event": "APPROVE"}' \
http://localhost:8000/repos/octocat/Hello-World/prs/123/reviews合并PR
curl -X POST -H "Authorization: Bearer ghp_yourtoken" \
-H "Content-Type: application/json" \
-d '{"commit_title": "Merging PR 123", "merge_method": "squash"}' \
http://localhost:8000/repos/octocat/Hello-World/prs/123/merge______________________________________________________________________
🧰 VS代码调试配置
在 .vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug FastAPI MCP Server",
"type": "python",
"request": "launch",
"program": "uvicorn",
"args": [
"fastapi_github_mcp_server:app",
"--reload",
"--port", "8000",
"--log-level", "debug"
],
"env": {
"GITHUB_TOKEN": "ghp_yourtokenhere"
}
}
]
}然后按 F5 运行和调试。
______________________________________________________________________
🧩 备注
- 确保您的GitHub令牌具有
repo范围。 - 不要承诺你的代币或
.env文件到公共存储库。 - 对于生产使用,请集成安全密钥管理器(例如AWS密钥管理器、Azure密钥库)。
______________________________________________________________________
🧑💻 作者
艾米特·辛格\ FastAPI+GitHub MCP自动化演示——2025
