内容
# 🚀 GitHub MCP Server - FastAPI 实现
## 🌟 概述
该项目使用 **FastAPI** 实现了一个 **Model Context Protocol (MCP) 服务器**,使得像 Claude 这样的 AI 助手能够与 GitHub 进行交互。该服务器提供 API 端点以获取用户详细信息、管理仓库、创建问题以及自动化 GitHub 工作流。
## ✨ 特性
- ✅ 获取 **GitHub 用户详细信息** 和仓库
- ✅ **创建和管理仓库中的问题**
- ✅ **列出仓库中的所有问题**
- ✅ **给仓库加星**
- ✅ AI 驱动的 **GitHub 问题摘要**(可选)
- ✅ 使用 **GitHub OAuth Token** 的安全 API
- ✅ **异步** FastAPI 实现
---
## 🛠️ 设置与安装
### **1️⃣ 克隆仓库**
```sh
git clone https://github.com/snehaapratap/mcp-server.git
cd mcp-server
```
### **2️⃣ 创建并激活虚拟环境**
```sh
python3 -m venv venv
source venv/bin/activate
```
### **3️⃣ 安装依赖**
```sh
pip install -r requirements.txt
```
### **4️⃣ 设置环境变量**
在根目录创建一个 `.env` 文件,并添加你的 **GitHub Personal Access Token (PAT)**:
```
GITHUB_TOKEN=your_personal_access_token
```
### **5️⃣ 运行 FastAPI 服务器**
```sh
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)
### 🔹 **获取用户详细信息**
```sh
curl -X GET "http://127.0.0.1:8000/github/user"
```
### 🔹 **获取仓库**
```sh
curl -X GET "http://127.0.0.1:8000/github/repos"
```
### 🔹 **创建一个问题**
```sh
curl -X POST "http://127.0.0.1:8000/github/create-issue?owner=your-username&repo=your-repo&title=New%20Issue&body=This%20is%20a%20test%20issue"
```
### 🔹 **给仓库加星**
```sh
curl -X PUT "http://127.0.0.1:8000/github/star-repo?owner=your-username&repo=your-repo"
```
---
## 🎥 幻灯片
📌 **[查看幻灯片](https://gamma.app/docs/GitHub-MCP-Server-with-FastAPI-m9vyprwqynhaln7)**
---
## 🛡️ 错误处理
API 优雅地处理错误并返回有意义的消息:
```json
{
"error": "Invalid GitHub Token",
"hint": "确保你的 token 具有 'repo' 范围。"
}
```
---
## 🎯 未来增强
- 🔹 支持 **拉取请求管理**
- 🔹 实现 **WebSockets** 以获取实时 GitHub 通知
- 🔹 在 AWS/GCP 上 **部署** 并使用 CI/CD 管道
---
## 💡 贡献
想要改善这个项目吗?欢迎提交 **pull request** 或者提出 **issue**!
---
## 👨💻 作者
🔹 **Sneha P Pratap**
🔹 GitHub: [@snehaapratap](https://github.com/snehaapratap)
🔹 LinkedIn: [Sneha Prem Pratap](https://www.linkedin.com/in/sneha-prem-pratap/)
---