用户可借助此项目让 Cursor、Windsurf 等 IDE 无缝接入 GitCode 功能。它提供仓库管理、分支管理、Issue 跟踪、Pull Request 和搜索等核心功能,支持代理配置与 Docker 部署,便于开发协作。【此简介由AI生成】
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 9 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 5 个月前 | ||
| 1 年前 | ||
| 1 个月前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 1 个月前 |
GitCode MCP 服务器
这是一个基于 Model Context Protocol (MCP) 的 GitCode 集成服务器,允许 Cursor、Windsurf 等 IDE 无缝接入 GitCode 的功能。
功能
- 仓库管理:查看、创建、编辑仓库
- 分支管理:查看、创建、切换分支
- Issue 跟踪:查看、创建、更新 Issue
- Pull Request:查看、创建、评论 PR
- 搜索功能:搜索仓库、代码、Issues 等
安装
方法一:使用 pip 安装
# 从源码安装
pip install -e .
安装后可以直接使用命令行工具:
gitcode-mcp
方法二:手动安装依赖
pip install -r requirements.txt
Docker 使用
在容器内运行与本地相同的 stdio MCP 进程;宿主 IDE 通过 docker run -i 将标准输入输出接到容器(必须带 -i,否则 MCP 无法通信)。
构建镜像
在仓库根目录执行:
docker build -t gitcode-mcp:local .
行为说明
- 令牌:不要把
GITCODE_TOKEN写入镜像;通过-e或 MCP 配置里的env在运行时注入(见下)。 - 日志:服务会在容器工作目录写入
gitcode_mcp.log;未挂载卷时,容器删除后日志一并消失;协议仍走 stdout,不受影响。 - 代理:需要时在
docker的args中增加-e、HTTP_PROXY、HTTPS_PROXY等与本地一致。
在 Cursor 中通过 Docker 运行
示例(请先本地 docker build 或使用已拉取的镜像名):
{
"mcpServers": {
"gitcode": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"GITCODE_TOKEN",
"gitcode-mcp:local"
],
"env": {
"GITCODE_TOKEN": "your_personal_access_token_here"
}
}
}
}
docker run -e GITCODE_TOKEN 会把当前子进程环境里的 GITCODE_TOKEN 传入容器;Cursor 会将 env 注入到 docker 进程,因此与上例一致。若使用代理,可扩展 args 与 env,例如增加 HTTP_PROXY、HTTPS_PROXY。
使用方法
- 设置环境变量(或者创建
.env文件):
GITCODE_TOKEN=your_personal_access_token
# 说明:访问 GitCode OpenAPI 时,请求头 User-Agent 为 GitCode-MCP-Client/<版本> python/<发布日期>,供平台侧统计 MCP 客户端流量(版本见 _client_identity.USER_AGENT_PRODUCT_VERSION,与 setup.py version 同步)。
# 可选:如果需要使用代理
HTTP_PROXY=http://localhost:8080
HTTPS_PROXY=https://localhost:8080
- 运行服务器:
python -m gitcode_mcp
- 在支持 MCP 的 IDE 中配置服务器连接
代理支持
GitCode MCP 支持通过 HTTP/HTTPS 代理访问 GitCode API。您可以通过以下方式配置代理:
方式一:环境变量
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
方式二:在 MCP 配置文件中设置
{
"mcpServers": {
"gitcode": {
"command": "python",
"args": ["-m", "gitcode_mcp"],
"env": {
"GITCODE_TOKEN": "your_personal_access_token_here",
"HTTP_PROXY": "http://proxy.example.com:8080",
"HTTPS_PROXY": "http://proxy.example.com:8080"
}
}
}
}
支持的代理格式:
http://proxy.example.com:8080- 基础 HTTP 代理http://user:password@proxy.example.com:8080- 带认证的代理socks5://proxy.example.com:1080- SOCKS5 代理(需要安装aiohttp-socks)
在 Cursor 中接入
Cursor 支持通过 MCP 协议连接到外部服务器。按照以下步骤在 Cursor 中接入 GitCode:
方法一:项目级配置(仅对当前项目生效)
- 在项目根目录创建
.cursor/mcp.json文件,内容如下:{ "mcpServers": { "gitcode": { "command": "python", "args": ["-m", "gitcode_mcp"], "env": { "GITCODE_TOKEN": "your_personal_access_token_here" } } } }
方法二:全局配置(对所有项目生效)
-
在用户主目录创建
~/.cursor/mcp.json文件,内容如上。 -
启动或重启 Cursor
-
使用 GitCode 功能
- 使用
/命令可访问 GitCode 相关功能 - 或直接告诉 AI 助手使用 GitCode 工具完成任务
- 使用
配置文件示例: 在 examples/cursor_config.json 中提供了 Cursor 的配置示例,可以作为参考。
在 Windsurf 中接入
Windsurf 同样支持 MCP 协议。按照以下步骤设置:
方法一:使用配置文件
-
创建或编辑 Windsurf 的 MCP 配置文件,添加以下内容:
{ "mcpServers": { "gitcode": { "command": "python", "args": ["-m", "gitcode_mcp"], "env": { "GITCODE_TOKEN": "your_personal_access_token_here" } } } } -
确保 GitCode MCP 服务器已安装
pip install -e . -
启动或重启 Windsurf
-
使用 GitCode 功能
- 在编辑器中通过命令面板访问 GitCode 功能
- 或直接告诉 AI 助手使用 GitCode 工具完成任务
配置文件示例: 在 examples/windsurf_config.json 中提供了 Windsurf 的配置示例,可以作为参考。
方法二:通过设置界面(旧版本)
如果您使用的是不支持新配置格式的旧版 Windsurf,可以通过以下步骤设置:
-
确保 GitCode MCP 服务器已启动
python -m gitcode_mcp -
打开 Windsurf 设置面板
- 点击右上角菜单或使用快捷键进入设置
-
找到 AI 扩展或 MCP 服务器配置部分
- 选择 "添加新服务器" 或类似选项
-
配置服务器连接
- 连接类型: stdio
- 命令:
python -m gitcode_mcp - 服务器名称: GitCode
- 环境变量: 添加
GITCODE_TOKEN=your_token_here
-
保存并启用服务器
- 启用后,Windsurf 应该会显示连接状态
排查问题
如果连接失败,请检查:
- GitCode MCP 服务器是否正在运行
- 个人访问令牌是否正确设置
- IDE 中的路径配置是否正确(确保 Python 和模块可访问)
- 查看服务器日志以获取更多信息
开发
本项目使用官方的 MCP Python SDK 实现,遵循 Model Context Protocol 规范。
本地开发
-
克隆仓库
git clone https://atomgit.com/asuan_suan/gitcode_mcp_server.git cd gitcode-mcp-server -
创建虚拟环境
python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows -
安装开发依赖
pip install -e ".[dev]"
贡献代码
欢迎贡献代码!请按照以下步骤:
- Fork 本仓库
- 创建您的特性分支 (
git checkout -b feature/amazing-feature) - 提交您的更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 开启一个 Pull Request
许可证
本项目采用 MIT 许可证 - 详见 LICENSE 文件