内容
# Vane MCP 服务器 - GitHub Copilot 集成
一个生产就绪的 **模型上下文协议(MCP)服务器**,通过 GitHub 仓库管理功能扩展 GitHub Copilot。启用 AI 驱动的问题跟踪、仓库信息检索和无缝 GitHub 集成。
## ✨ 功能
- 🔌 **基于 HTTP 的 MCP 服务器** - 与 AI 工具的通用兼容性
- 🚀 **GitHub 集成** - 原生 GitHub 工具支持(列出问题、创建问题、获取仓库信息)
- 🎯 **代理就绪架构** - 构建在 Vane 代理框架上,带有工作区隔离
- 📊 **语义缓存** - 具有置信度阈值的智能上下文管理
- 🔧 **可配置** - 带有环境变量支持的集中式配置
- 📝 **生产就绪** - 包含 Railway/Docker 部署指南
- 🔄 **可重用** - 单个 MCP 服务器实例为多个项目服务
## 🚀 快速开始
### 本地开发(5 分钟)
```bash
# 1. 克隆和设置
git clone https://github.com/myou260312-eng/skills-integrate-mcp-with-copilot
cd skills-integrate-mcp-with-copilot
# 2. 配置环境
cp .env.example .env
# 编辑 .env 文件,添加 GITHUB_TOKEN
# 3. 安装依赖
pip install -r requirements.txt
# 4. 启动 MCP 服务器
python mcp_server.py
```
**输出:**
```
✅ MCP 服务器已在 http://0.0.0.0:3000 启动
🚀 MCP 服务器正在运行。按 Ctrl+C 停止。
```
### 验证服务器
```bash
curl http://localhost:3000/mcp/
```
## 🌐 生产 URL
```
https://mdabul-project.railway.app/mcp/
```
在任何项目的 `.vscode/mcp.json` 中使用此 URL:
```json
{
"servers": {
"github": {
"type": "http",
"url": "https://mdabul-project.railway.app/mcp/"
}
}
}
```
## 📚 API 端点
| 端点 | 方法 | 描述 |
|----------|--------|-------------|
| `/` | GET | 服务器状态和功能 |
| `/mcp/` | GET | MCP 工具和资源 |
| `/` | POST | 执行 MCP 工具 |
## 🛠️ 可用工具
### `list_issues`
列出 GitHub 问题。
**参数:**
- `state`(字符串):"open"、"closed" 或 "all"
- `labels`(数组):按标签过滤
- `limit`(整数):最大结果数(默认:10)
**示例:**
```bash
curl -X POST http://localhost:3000/ \
-H "Content-Type: application/json" \
-d '{
"tool": "list_issues",
"parameters": {"state": "open", "limit": 5}
}'
```
### `create_issue`
创建新的 GitHub 问题。
**参数:**
- `title`(字符串,必填):问题标题
- `body`(字符串):问题描述
- `labels`(数组):添加的标签
**示例:**
```bash
curl -X POST http://localhost:3000/ \
-H "Content-Type: application/json" \
-d '{
"tool": "create_issue",
"parameters": {
"title": "新功能请求",
"body": "描述在这里",
"labels": ["增强"]
}
}'
```
### `get_repository_info`
获取配置仓库的信息。
**示例:**
```bash
curl -X POST http://localhost:3000/ \
-H "Content-Type: application/json" \
-d '{"tool": "get_repository_info"}'
```
## ⚙️ 配置
### 环境变量
```bash
# 必需
GITHUB_TOKEN=ghp_xxxx # GitHub 个人访问令牌
GITHUB_REPO_OWNER=myou260312-eng # 仓库所有者
GITHUB_REPO_NAME=repo-name # 仓库名称
# 可选
MCP_ENABLED=true # 启用/禁用 MCP(默认:true)
LLM_MODEL=gpt-3.5-turbo # 要使用的 LLM 模型
LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR
DEBUG_MODE=false # 详细日志记录
VANE_ROOT_ID=VANE_ROOT_ID_8A9B3C4D5E6F7G8H # 工作区 ID
```
### 核心设置(config.py)
| 设置 | 默认值 | 目的 |
|---------|---------|---------|
| `MCP_ENABLED` | `true` | 启用/禁用 MCP |
| `TEMPERATURE` | `0.0` | LLM 确定性(0=严格) |
| `CONFIDENCE_HIGH_THRESHOLD` | `0.85` | 高置信度障碍 |
| `API_TIMEOUT` | `3.5s` | 外部 API 超时 |
| `MAX_TOKENS` | `800` | 最大 LLM 响应令牌 |
## 📦 项目结构
```
skills-integrate-mcp-with-copilot/
├── config.py # 核心配置,包含 MCP 设置
├── mcp_server.py # MCP HTTP 服务器实现
├── requirements.txt # Python 依赖项
├── .env.example # 环境变量模板
├── .vscode/
│ └── mcp.json # VS Code MCP 配置
├── MCP_DEPLOYMENT_GUIDE.md # 完整的部署指南
└── README.md # 本文件
```
## 🔌 与 GitHub Copilot 结合使用
### 在 VS Code 或 Codespace 中
1. **更新 `.vscode/mcp.json`**,添加 MCP 服务器 URL
2. **单击开始按钮**,进行身份验证
3. **打开 Copilot 聊天**,使用:
```
@github 列出所有打开的问题
@github 创建问题:需要修复错误
@github 显示仓库信息
```
## 🚀 部署到生产环境
### Railway.app(推荐)
1. 访问 [Railway.app](https://railway.app)
2. 从 GitHub 仓库创建新项目
3. 命名服务:`mdabul-project`
4. 添加环境变量
5. 部署!我的 URL:`https://mdabul-project.railway.app/mcp/`
### Docker
```bash
docker build -t vane-mcp-server .
docker run -p 3000:3000 \
-e GITHUB_TOKEN=$GITHUB_TOKEN \
-e MCP_ENABLED=true \
vane-mcp-server
```
### Heroku
```bash
heroku create mdabul-mcp-server
git push heroku main
heroku config:set GITHUB_TOKEN=ghp_xxxx
```
## 📖 完整文档
参见 **[MCP_DEPLOYMENT_GUIDE.md](./MCP_DEPLOYMENT_GUIDE.md)**,获取:
- 详细的设置说明
- 多种部署选项
- 故障排除指南
- 测试程序
- 跨项目使用示例
## 🧪 测试
### 本地测试
```bash
# 服务器状态
curl http://localhost:3000/mcp/
# 列出问题
curl -X POST http://localhost:3000/ \
-H "Content-Type: application/json" \
-d '{"tool": "list_issues", "parameters": {"state": "open"}}'
```
### 生产测试
```bash
curl https://mdabul-project.railway.app/mcp/
```
### 与 Copilot 测试
在 VS Code Copilot 聊天中:
```
@github 有哪些打开的问题?
```
## 🔄 跨项目重用
我们可以在 **任何 GitHub 项目**中使用此 MCP 服务器:
1. 将 `.vscode/mcp.json` 复制到您的项目中
2. 更新 `.env` 文件,添加您的仓库凭证
3. 开始使用:在 Copilot 聊天中使用 `@github` 命令
**一台服务器。无限项目。 🎯**
## 📋 检查清单
- [x] MCP 服务器实现
- [x] GitHub 工具集成
- [x] Vane 代理框架集成
- [x] 本地测试
- [x] 生产部署指南
- [x] VS Code 配置
- [x] 文档
- [x] Railway URL 配置
## 🛠️ 架构
### 核心组件
**config.py** - 集中式配置
- 通过 VANE_ROOT_ID 实现工作区隔离
- MCP 服务器设置
- LLM 协调参数
- 置信度阈值
- 日志记录配置
**mcp_server.py** - HTTP MCP 服务器
- `MCPRequestHandler` - HTTP 请求处理
- `MCPServer` - 服务器生命周期管理
- 工具执行引擎
- GitHub 集成接口
**Vane 代理框架**
- 带有 Chroma DB 的语义缓存
- 基于置信度的过滤
- 结构化工作区管理
## 🔐 安全
- GitHub 令牌存储在 `.env` 文件中(从未提交)
- 在生产环境中强制使用 HTTPS
- 所有端点上的请求验证
- 错误处理防止信息泄露
## 📊 日志记录
日志存储在:`workspaces/{VANE_ROOT_ID}/logs/vane_agent.log`
配置详细程度:
```bash
LOG_LEVEL=DEBUG DEBUG_MODE=true python mcp_server.py
```
## 🤝 贡献
这是一个生产就绪的 MCP 服务器。要扩展:
1. 在 `MCPRequestHandler.CAPABILITIES` 中添加新工具
2. 实现处理程序方法:`handle_<tool_name>()`
3. 更新文档
4. 在部署前进行本地测试
## 📝 许可证
MIT 许可证 - 参见 LICENSE 文件获取详细信息
## 🔗 资源
- [模型上下文协议](https://modelcontextprotocol.io/)
- [GitHub Copilot 扩展](https://docs.github.com/en/copilot)
- [GitHub API 参考](https://docs.github.com/en/rest)
- [Railway 文档](https://docs.railway.app/)
## 📞 支持
如有问题或疑问:
1. 查看 [MCP_DEPLOYMENT_GUIDE.md](./MCP_DEPLOYMENT_GUIDE.md) 故障排除部分
2. 查看日志:`tail -f workspaces/*/logs/vane_agent.log`
3. 测试连接性:`curl https://mdabul-project.railway.app/mcp/`
---
**我的 MCP 服务器:** `https://mdabul-project.railway.app/mcp/`
由 MD ABUL HOSSAIN (myou260312-eng) 构建 | 2026
---
*Copyright 2026 MD ABUL HOSSAIN (MCP SERVER). All Rights Reserved.*