mcp-gitee
Gitee MCP Server is a server implementation that allows for comprehensive interaction with Gitee's API, enabling seamless management of repositories, issues, and pull requests. It features customizable configurations and dynamic toolset management for both personal and enterprise operations.
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.
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
- Get repository Issues
- Implement coding & create Pull Request based on Issue details
- Comment & 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
-
Clone the repository:
git clone https://gitee.com/oschina/mcp-gitee.git cd mcp-gitee
-
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:
- 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 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_ACCESS_TOKEN
: Gitee access tokenGITEE_API_BASE
: Gitee API base URLENABLED_TOOLSETS
: Comma-separated list of tools to enableDISABLED_TOOLSETS
: Comma-separated list of tools to disable
Toolset Management
Toolset management supports two modes:
-
Enable specified tools (whitelist mode):
- Use
--enabled-toolsets
parameter orENABLED_TOOLSETS
environment variable - Specify after, only listed tools will be enabled, others will be disabled
- Example:
--enabled-toolsets="list_user_repos,get_file_content"
- Use
-
Disable specified tools (blacklist mode):
- Use
--disabled-toolsets
parameter orDISABLED_TOOLSETS
environment variable - Specify after, listed tools will be disabled, others will be enabled
- Example:
--disabled-toolsets="list_user_repos,get_file_content"
- Use
Note:
- If both
enabled-toolsets
anddisabled-toolsets
are specified,enabled-toolsets
takes precedence - Tool names are case-sensitive
License
This project is licensed under the MIT License. See the 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_user_repo | Repository | Create a user repository |
create_org_repo | Repository | Create an organization repository |
create_enter_repo | Repository | Create an enterprise repository |
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 |
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 |
comment_pull | Pull Request | Comment on a pull request |
list_pull_comments | Pull Request | List all comments for a 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 |
comment_issue | Issue | Comment on an issue |
list_issue_comments | Issue | List comments on an issue |
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:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and ensure the code is well-documented.
- Submit a pull request with a clear description of your changes.
For more information, please refer to the file.