Gitee

by oschina

61 stars
536 downloads
Not rated
GitHub

About

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

Details

Author
oschina
GitHub stars
61
Downloads
536
Categories
Developer Tools, Other, Project Management

- Manage Gitee repositories via AI assistants
- Create, update, and list issues
- Handle pull requests programmatically

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Gitee
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

You can use the server either as a remote MCP service (no installation required) or run it locally after building from source. For the remote server, configure your MCP host with the URL https://api.gitee.com/mcp and a Bearer token from your Gitee personal access tokens. For local use, clone the repository, build with make build, and run mcp-gitee with flags such as --token, --api-base, --transport, and --address. Tools can be enabled or disabled via command-line flags or per-request HTTP headers.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "gitee": {
            "gitee": {
                "command": "mcp-gitee",
                "env": {
                    "GITEE_API_BASE": "https://gitee.com/api/v5",
                    "GITEE_ACCESS_TOKEN": "<your personal access token>"
                }
            }
        }
    }
}

McpServers

{
    "gitee": {
        "command": "mcp-gitee",
        "env": {
            "GITEE_API_BASE": "https://gitee.com/api/v5",
            "GITEE_ACCESS_TOKEN": "<your personal access token>"
        }
    }
}

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

<details>
<summary><b>Practical scenario: Obtain Issue from the repository, implement and create a Pull Request</b></summary>

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
</details>

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

<div align="center"> <a href="docs/install/claude.md" title="Claude"></a> <a href="docs/install/codex.md" title="Codex"></a> <a href="docs/install/cursor.md" title="Cursor"></a> <a href="docs/install/trae.md" title="Trae"></a> <a href="docs/install/cline.md" title="Cline"></a> </div>

Config examples: Click to view more application configuration

- Claude Code
- Codex
- Cursor
- Trae
- Cline
- Continue
- opencode

Remote MCP Server

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>"
      }
    }
  }
}

Codex uses ~/.codex/config.toml:

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

opencode uses ~/.config/opencode/opencode.json:

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

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:

| Tool | Category | Description |
|-------------------------------------|----------|-------------|
| list_user_repos | Repository | List user authorized repositories |
| get_file_content | Repository | Get the content of a file in a repository |
| create_repo | Repository | Create a repository (user, org, or enterprise) |
| fork_repository | Repository | Fork a repository |
| create_release | Repository | Create a release for a repository |
| list_releases | Repository | List repository releases |
| search_open_source_repositories | Repository | Search open source repositories on Gitee |
| search_files_by_content | Repository | Search files by content in a repository |
| compare_branches_tags | Repository | Compare two branches, tags, or commits in a repository |
| list_repo_pulls | Pull Request | List pull requests in a repository |
| merge_pull | Pull Request | Merge a pull request |
| create_pull | Pull Request | Create a pull request |
| update_pull | Pull Request | Update a pull request |
| get_pull_detail | Pull Request | Get details of a pull request |
| get_diff_files | Pull Request | Get a pull request diff files |
| manage_pull_review | Pull Request | Manage a pull request review (approve or cancel) |
| create_comment | Comment | Create a comment on an issue or pull request |
| list_comments | Comment | List all comments for an issue or pull request |
| create_issue | Issue | Create an issue |
| update_issue | Issue | Update an issue |
| get_repo_issue_detail | Issue | Get details of a repository issue |
| list_repo_issues | Issue | List repository issues |
| get_user_info | User | Get current authenticated user information |
| search_users | User | Search for users |
| list_user_notifications | Notification | List 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.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.