mcp-gitee-ent

mcp-gitee-ent

1

Gitee Enterprise MCP Server is a Model Context Protocol server designed for Gitee Enterprise users to manage resource-intensive tasks such as repositories, issues, and pull requests. It provides configurable options with support for enterprise-level operations.

Gitee Enterprise MCP Server

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

Features

  • Interact with Gitee Enterprise repositories, issues, pull requests
  • Support for enterprise-level operations and management
  • Configurable API base URL to support different Gitee Enterprise instances
  • Support for SSE and Stdio transport
  • Dynamic toolset enable/disable
Scenario Example
  1. Get specific enterprise issues get_issues
  2. Improve the issue content update_issue
  3. Divide subtasks create_sup_issues
  4. Create PR/Review PR create_pr_and_review

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

Prerequisites

Building from Source

  1. Clone the repository:

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

    make build
    

    Move ./bin/mcp-gitee-ent PATH env

Use go install

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

Usage

Check mcp-gitee-ent version:

mcp-gitee-ent --version

MCP Hosts Configuration

Config example:

  • npx
{
  "mcpServers": {
    "gitee-ent": {
      "command": "npx",
      "args": [
        "-y",
        "@gitee/mcp-gitee-ent@latest"
      ],
      "env": {
         "GITEE_ENT_API_BASE": "https://api.gitee.com/enterprises",
         "GITEE_ENT_MCP_ACCESS_TOKEN": "<your mcp ent access token>"
      }
    }
  }
}
  • executable
{
  "mcpServers": {
    "gitee-ent": {
      "command": "mcp-gitee-ent",
      "env": {
        "GITEE_ENT_API_BASE": "https://api.gitee.com/enterprises",
        "GITEE_ENT_MCP_ACCESS_TOKEN": "<your mcp ent access token>",
      }
    }
  }
}

Command-line Options

  • --token: access token
  • --api-base: Gitee Ent API base URL (default: https://api.gitee.com/enterprises)
  • --version: Show version information
  • --transport: Transport type (stdio or sse, default: stdio)
  • --sse-address: The host and port to start the SSE 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_ENT_MCP_ACCESS_TOKEN: Gitee MCP ent access token
  • GITEE_ENT_API_BASE: Gitee ENT 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="update_enterprise_issue,list_enterprise_repositories"
  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="update_enterprise_issue,list_enterprise_repositories"

Note:

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

Available Tools

The server provides various tools for interacting with Gitee Enterprise:

ToolCategoryDescription
list_enterprisesEnterpriseList user's enterprises
list_enterprise_repositoriesRepositoryList repositories in an enterprise
create_enterprise_repositoryRepositoryCreate a repository in an enterprise
create_enterprise_repo_releaseRepositoryCreate a release for repository
list_enterprise_repo_releasesRepositoryList releases for repository
get_enterprise_repository_file_contentRepositoryGet the content of a specific file in the repository
get_enterprise_repo_treeRepositoryGet the tree structure of a repository
list_enterprise_pullsPull RequestList enterprise pull requests
create_enterprise_repo_pullPull RequestCreate a pull request for repository
merge_enterprise_pullPull RequestMerge a pull request
get_enterprise_pull_detailPull RequestGet pull request detail
update_enterprise_pullPull RequestUpdate a pull request
get_enterprise_pull_diffPull RequestGet pull request diff
comment_enterprise_pullPull RequestComment on a pull request
list_enterprise_pull_commentsPull RequestList pull request comments
create_enterprise_issueIssueCreate an issue
update_enterprise_issueIssueUpdate an issue
get_enterprise_issue_detailIssueGet issue detail
list_enterprise_issuesIssueList issues
comment_enterprise_issueIssueComment on an issue
list_enterprise_issue_commentsIssueList issue comments
get_user_infoUserGet user info
list_enterprise_membersMemberList members of an enterprise
list_enterprise_groupsGroupList groups in an enterprise
list_enterprise_labelsLabelList labels of an enterprise
list_programsProgramList programs of an enterprise
list_scrum_sprintsProgramList Scrum Sprints
create_scrum_sprintProgramCreate a Scrum Sprint
list_scrum_versionsProgramList Scrum Versions
list_issue_typesIssue TypeList issue types
list_issue_type_statesIssue StateList issue states

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 file.