Gitee

oficial

Gitee API integration, repository, issue, and pull request management, and more.

Gitee MCP Server

Gitee MCP Server is a Model Context Protocol (MCP) server implementation for Gitee. It provides a set of tools for interacting with Gitee's API, allowing AI assistants to manage repositories, issues, pull requests, and more.

Install MCP Server

Features

  • Interact with Gitee repositories, issues, pull requests, and notifications
  • Configurable API base URL to support different Gitee instances
  • Command-line flags for easy configuration
  • Supports both personal, organization, and enterprise operations
  • Dynamic toolset enable/disable
Practical scenario: Obtain Issue from the repository, implement and create a Pull Request
  1. Get repository Issues get_repo_issues
  2. Implement coding & create Pull Request based on Issue details implement_issue
  3. Comment & Close Issue comment_and_close_issue

Installation(This step can be skipped directly when starting npx)

Prerequisites

  • Go 1.23.0 or higher
  • Gitee account with an access token, Go to get

Building from Source

  1. Clone the repository:

    git clone https://gitee.com/oschina/mcp-gitee.git
    cd mcp-gitee
    
  2. Build the project:

    make build
    

    Move ./bin/mcp-gitee PATH env

Use go install

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

Usage

Check mcp-gitee version:

mcp-gitee --version

MCP Hosts Configuration

config example: Click to view more application configuration

  • Connect to the official remote mcp-gitee server (no installation required)
{
  "mcpServers": {
    "gitee": {
      "url": "https://api.gitee.com/mcp",
      "headers": {
        "Authorization": "Bearer <your personal access token>"
      }
    }
  }
}
  • npx
{
  "mcpServers": {
    "gitee": {
      "command": "npx",
      "args": [
        "-y",
        "@gitee/mcp-gitee@latest"
      ],
      "env": {
        "GITEE_API_BASE": "https://gitee.com/api/v5",
        "GITEE_ACCESS_TOKEN": "<your personal access token>"
      }
    }
  }
}
  • executable
{
  "mcpServers": {
    "gitee": {
      "command": "mcp-gitee",
      "env": {
        "GITEE_API_BASE": "https://gitee.com/api/v5",
        "GITEE_ACCESS_TOKEN": "<your personal access token>"
      }
    }
  }
}

Command-line Options

  • --token: Gitee access token
  • --api-base: Gitee API base URL (default: https://gitee.com/api/v5)
  • --version: Show version information
  • --transport: Transport type (stdio、sse or http, default: stdio)
  • --address: The host and port to start the server on (default: localhost:8000)
  • --enabled-toolsets: Comma-separated list of tools to enable (if specified, only these tools will be enabled)
  • --disabled-toolsets: Comma-separated list of tools to disable

Environment Variables

You can also configure the server using environment variables:

  • GITEE_ACCESS_TOKEN: Gitee access token
  • GITEE_API_BASE: Gitee API base URL
  • ENABLED_TOOLSETS: Comma-separated list of tools to enable
  • DISABLED_TOOLSETS: Comma-separated list of tools to disable

Toolset Management

Toolset management supports two modes:

  1. Enable specified tools (whitelist mode):

    • Use --enabled-toolsets parameter or ENABLED_TOOLSETS environment variable
    • Specify after, only listed tools will be enabled, others will be disabled
    • Example: --enabled-toolsets="list_user_repos,get_file_content"
  2. Disable specified tools (blacklist mode):

    • Use --disabled-toolsets parameter or DISABLED_TOOLSETS environment variable
    • Specify after, listed tools will be disabled, others will be enabled
    • Example: --disabled-toolsets="list_user_repos,get_file_content"

Note:

  • If both enabled-toolsets and disabled-toolsets are specified, enabled-toolsets takes precedence
  • Tool names are case-sensitive

Per-Request Tool Filtering (HTTP Headers)

When using the remote MCP server (HTTP/SSE transport), you can dynamically filter available tools on a per-request basis via HTTP headers. This is useful for clients that need fine-grained control over tool exposure without restarting the server.

  1. Enable specified tools via header (whitelist):

    • Use the X-MCP-Enabled-Tools header
    • Only the listed tools will be enabled for that request
    • Example: X-MCP-Enabled-Tools: list_user_repos,get_file_content
  2. Disable specified tools via header (blacklist):

    • Use the X-MCP-Disabled-Tools header
    • The listed tools will be disabled for that request
    • Example: X-MCP-Disabled-Tools: create_repo,delete_repo

Priority rules:

  • If both X-MCP-Enabled-Tools and X-MCP-Disabled-Tools are present in the same request, the whitelist (X-MCP-Enabled-Tools) takes precedence
  • Tool names are case-sensitive

Example configuration for 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"
      }
    }
  }
}

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Available Tools

The server provides various tools for interacting with Gitee:

ToolCategoryDescription
list_user_reposRepositoryList user authorized repositories
get_file_contentRepositoryGet the content of a file in a repository
create_repoRepositoryCreate a repository (user, org, or enterprise)
fork_repositoryRepositoryFork a repository
create_releaseRepositoryCreate a release for a repository
list_releasesRepositoryList repository releases
search_open_source_repositoriesRepositorySearch open source repositories on Gitee
search_files_by_contentRepositorySearch files by content in a repository
compare_branches_tagsRepositoryCompare two branches, tags, or commits in a repository
list_repo_pullsPull RequestList pull requests in a repository
merge_pullPull RequestMerge a pull request
create_pullPull RequestCreate a pull request
update_pullPull RequestUpdate a pull request
get_pull_detailPull RequestGet details of a pull request
get_diff_filesPull RequestGet a pull request diff files
manage_pull_reviewPull RequestManage a pull request review (approve or cancel)
create_commentCommentCreate a comment on an issue or pull request
list_commentsCommentList all comments for an issue or pull request
create_issueIssueCreate an issue
update_issueIssueUpdate an issue
get_repo_issue_detailIssueGet details of a repository issue
list_repo_issuesIssueList repository issues
get_user_infoUserGet current authenticated user information
search_usersUserSearch for users
list_user_notificationsNotificationList user notifications

Contribution

We welcome contributions from the open-source community! If you'd like to contribute to this project, please follow these guidelines:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and ensure the code is well-documented.
  4. Submit a pull request with a clear description of your changes.

For more information, please refer to the CONTRIBUTING file.

Servidores relacionados

NotebookLM Web Importer

Importa páginas web y videos de YouTube a NotebookLM con un clic. Utilizado por más de 200,000 usuarios.

Instalar extensión de Chrome