Gitee MCP Server

官方

Gitee API集成,仓库、议题和拉取请求管理等功能。

文档

Gitee MCP Server

Gitee MCP Server 是一个针对 Gitee 的模型上下文协议(MCP)服务端实现。它提供了一套与 Gitee API 交互的工具,使 AI 助手能够管理仓库、Issue、Pull Request 等。

Install MCP Server

功能特性

  • 与 Gitee 仓库、Issue、Pull Request 和通知进行交互
  • 可配置的 API 基础 URL,支持不同的 Gitee 实例
  • 命令行标志,便于配置
  • 支持个人、组织和企业操作
  • 动态工具集启用/禁用
实践场景:从仓库获取 Issue,实现并创建 Pull Request
  1. 获取仓库 Issue get_repo_issues
  2. 根据 Issue 详情实现编码并创建 Pull Request implement_issue
  3. 评论并关闭 Issue comment_and_close_issue

安装(使用 npx 启动时可直接跳过此步骤)

前置条件

  • Go 1.23.0 或更高版本
  • 拥有访问令牌的 Gitee 账户,前往获取

从源码构建

  1. 克隆仓库:

    git clone https://gitee.com/oschina/mcp-gitee.git
    cd mcp-gitee
    
  2. 构建项目:

    make build
    

    将 ./bin/mcp-gitee 移动到 PATH 环境变量中

使用 go install

go install gitee.com/oschina/mcp-gitee@latest

使用方法

检查 mcp-gitee 版本:

mcp-gitee --version

MCP 主机配置

配置示例:点击查看更多应用配置

远程 MCP 服务器

连接到官方的远程 mcp-gitee 服务器(无需安装):

{
  "mcpServers": {
    "gitee": {
      "url": "https://api.gitee.com/mcp",
      "headers": {
        "Authorization": "Bearer <your personal access token>"
      }
    }
  }
}

Codex 使用 ~/.codex/config.toml

[mcp_servers.gitee]
url = "https://api.gitee.com/mcp"
bearer_token_env_var = "GITEE_ACCESS_TOKEN"

opencode 使用 ~/.config/opencode/opencode.json

{
  "mcp": {
    "gitee": {
      "type": "remote",
      "url": "https://api.gitee.com/mcp",
      "headers": {
        "Authorization": "Bearer <your personal access token>"
      },
      "enabled": true
    }
  }
}

命令行选项

  • --token:Gitee 访问令牌
  • --api-base:Gitee API 基础 URL(默认:https://gitee.com/api/v5)
  • --version:显示版本信息
  • --transport:传输类型(stdio、sse 或 http,默认:stdio)
  • --address:启动服务器的主机和端口(默认:localhost:8000)
  • --enabled-toolsets:要启用的工具列表,以逗号分隔(如果指定,则仅启用这些工具)
  • --disabled-toolsets:要禁用的工具列表,以逗号分隔

环境变量

你也可以使用环境变量配置服务器:

  • GITEE_ACCESS_TOKEN:Gitee 访问令牌
  • GITEE_API_BASE:Gitee API 基础 URL
  • ENABLED_TOOLSETS:要启用的工具列表,以逗号分隔
  • DISABLED_TOOLSETS:要禁用的工具列表,以逗号分隔

工具集管理

工具集管理支持两种模式:

  1. 启用指定工具(白名单模式):

    • 使用 --enabled-toolsets 参数或 ENABLED_TOOLSETS 环境变量
    • 指定后,仅列出的工具会被启用,其他工具将被禁用
    • 示例:--enabled-toolsets="list_user_repos,get_file_content"
  2. 禁用指定工具(黑名单模式):

    • 使用 --disabled-toolsets 参数或 DISABLED_TOOLSETS 环境变量
    • 指定后,列出的工具将被禁用,其他工具保持启用
    • 示例:--disabled-toolsets="list_user_repos,get_file_content"

注意:

  • 如果同时指定了 enabled-toolsetsdisabled-toolsets,则 enabled-toolsets 优先
  • 工具名称区分大小写

按请求过滤工具(HTTP 头)

使用远程 MCP 服务器(HTTP/SSE 传输)时,你可以通过 HTTP 头按请求动态过滤可用工具。这对于需要精细控制工具暴露而无需重启服务器的客户端非常有用。

  1. 通过请求头启用指定工具(白名单):

    • 使用 X-MCP-Enabled-Tools 请求头
    • 仅列出的工具会在该请求中启用
    • 示例:X-MCP-Enabled-Tools: list_user_repos,get_file_content
  2. 通过请求头禁用指定工具(黑名单):

    • 使用 X-MCP-Disabled-Tools 请求头
    • 列出的工具会在该请求中被禁用
    • 示例:X-MCP-Disabled-Tools: create_repo,delete_repo

优先级规则:

  • 如果同一请求中同时存在 X-MCP-Enabled-ToolsX-MCP-Disabled-Tools,则白名单(X-MCP-Enabled-Tools)优先
  • 工具名称区分大小写

Cursor/Claude 的配置示例:

{
  "mcpServers": {
    "gitee": {
      "url": "https://api.gitee.com/mcp",
      "headers": {
        "Authorization": "Bearer <your personal access token>",
        "X-MCP-Enabled-Tools": "list_user_repos,get_file_content,list_repo_issues"
      }
    }
  }
}

许可证

本项目基于 MIT 许可证授权。有关更多详细信息,请参阅 LICENSE 文件。

可用工具

服务器提供了多种与 Gitee 交互的工具:

工具类别描述
list_user_repos仓库列出用户授权的仓库
get_file_content仓库获取仓库中文件的内容
create_repo仓库创建仓库(用户、组织或企业)
fork_repository仓库Fork 一个仓库
create_release仓库为仓库创建发行版
list_releases仓库列出仓库发行版
search_open_source_repositories仓库在 Gitee 上搜索开源仓库
search_files_by_content仓库在仓库中按内容搜索文件
compare_branches_tags仓库比较仓库中的两个分支、标签或提交
list_repo_pullsPull Request列出仓库中的 Pull Request
merge_pullPull Request合并一个 Pull Request
create_pullPull Request创建一个 Pull Request
update_pullPull Request更新一个 Pull Request
get_pull_detailPull Request获取 Pull Request 的详细信息
get_diff_filesPull Request获取 Pull Request 的差异文件
manage_pull_reviewPull Request管理 Pull Request 的审查(批准或取消)
create_comment评论在 Issue 或 Pull Request 上创建评论
list_comments评论列出 Issue 或 Pull Request 的所有评论
create_issueIssue创建一个 Issue
update_issueIssue更新一个 Issue
get_repo_issue_detailIssue获取仓库 Issue 的详细信息
list_repo_issuesIssue列出仓库 Issue
get_user_info用户获取当前已认证用户的信息
search_users用户搜索用户
list_user_notifications通知列出用户通知

贡献

我们欢迎来自开源社区的贡献!如果你想为本项目做出贡献,请遵循以下指南:

  1. Fork 本仓库。
  2. 为你的功能或错误修复创建一个新分支。
  3. 进行更改并确保代码有良好的文档说明。
  4. 提交一个 Pull Request,并清晰描述你的更改。

有关更多信息,请参阅 CONTRIBUTING 文件。