diff --git a/README.md b/README.md index 8f19aadd22780e375f1aebd16905f0bc0cfc3865..3237ac462ef43eb5ad132eb1975ccd2fb407caf2 100644 --- a/README.md +++ b/README.md @@ -1,200 +1,101 @@ -# 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](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=gitee&config=eyJjb21tYW5kIjoibnB4IC15IEBnaXRlZS9tY3AtZ2l0ZWVAbGF0ZXN0IiwiZW52Ijp7IkdJVEVFX0FDQ0VTU19UT0tFTiI6Ijx5b3VyIHBlcnNvbmFsIGFjY2VzcyB0b2tlbj4ifX0%3D) +# Gitee MCP 服务器 -## Features +Gitee MCP 服务器是为集成开发环境(IDE)插件提供支持的工具,旨在提升开发者在Gitee平台上的协作效率。它通过提供多种工具集,简化了代码审查、问题跟踪和项目管理流程。 -- 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 +- 支持评论和关闭问题 +- 创建、更新和合并 Pull Request +- 获取文件内容和 Diff 文件信息 +- 管理通知和用户信息 +- 实现仓库管理(创建、分叉等) -1. Get repository Issues -![get_repo_issues](./docs/images/get_repo_issues.jpg) -2. Implement coding & create Pull Request based on Issue details -![implement_issue](./docs/images/implement_issue.jpg) -3. Comment & Close Issue -![comment_and_close_issue](./docs/images/comment_and_close_issue.jpg) -
+## 安装(npx 启动可直接跳过该步骤) -## Installation(This step can be skipped directly when starting npx) +### 前提条件 -### Prerequisites +- Go 1.23 或更高版本 +- Gitee 平台访问权限 +- 可访问的 MCP 客户端插件 -- Go 1.23.0 or higher -- Gitee account with an access token, [Go to get](https://gitee.com/profile/personal_access_tokens) +### 从源代码构建 -### Building from Source - -1. Clone the repository: +1. 克隆仓库到本地: ```bash git clone https://gitee.com/oschina/mcp-gitee.git - cd mcp-gitee ``` -2. Build the project: +2. 进入项目目录: ```bash - make build + cd mcp-gitee ``` - Move ./bin/mcp-gitee PATH env -### Use go install +3. 构建项目: ```bash - go install gitee.com/oschina/mcp-gitee@latest + make build ``` -## Usage +### 使用 `go install` 安装 -Check mcp-gitee version: +直接使用以下命令安装: ```bash -mcp-gitee --version +go install gitee.com/oschina/mcp-gitee ``` -## MCP Hosts Configuration -
- - - - - -
- -config example: [Click to view more application configuration](./docs/install/) -- Connect to the official remote mcp-gitee server (no installation required) -```json -{ - "mcpServers": { - "gitee": { - "url": "https://api.gitee.com/mcp", - "headers": { - "Authorization": "Bearer " - } - } - } -} -``` +## 使用方法 -- npx -```json -{ - "mcpServers": { - "gitee": { - "command": "npx", - "args": [ - "-y", - "@gitee/mcp-gitee@latest" - ], - "env": { - "GITEE_API_BASE": "https://gitee.com/api/v5", - "GITEE_ACCESS_TOKEN": "" - } - } - } -} -``` -- executable -```json -{ - "mcpServers": { - "gitee": { - "command": "mcp-gitee", - "env": { - "GITEE_API_BASE": "https://gitee.com/api/v5", - "GITEE_ACCESS_TOKEN": "" - } - } - } -} -``` +### MCP Hosts 配置 + +在使用 MCP 服务器之前,需要配置 Gitee 的访问权限: +1. 生成访问令牌,并配置到环境变量 `GITEE_ACCESS_TOKEN`。 +2. (可选)设置 Gitee API 地址,通过环境变量 `API_BASE`。 + +### 命令行选项 + +- `--transport`: 指定传输方式(例如 `stdio`, `sse`, `http`) +- `--addr`: 指定服务监听地址(例如 `:8000`) + +### 环境变量 + +- `GITEE_ACCESS_TOKEN`: Gitee 平台访问令牌 +- `API_BASE`: Gitee API 基础地址(默认为官方地址) + +### 工具集管理 + +服务器支持启用或禁用特定工具集: +- 通过 `ENABLE_TOOLSETS` 和 `DISABLE_TOOLSETS` 环境变量指定工具集名称列表。 + +## 许可证 + +此项目基于 MIT 许可证。请参考 [LICENSE](LICENSE) 文件以获取更多详细信息。 + +## 可用工具 + +- **问题操作** + - 列出问题 + - 获取问题详情 + - 创建、更新和关闭问题 + - 评论问题 + +- **Pull Request 操作** + - 列出 Pull Request + - 创建、更新和合并 Pull Request + - 获取 Pull Request 详情 + - 评论 Pull Request 和获取 Diff 文件 + +- **仓库管理** + - 创建和分叉仓库 + - 搜索开源项目 + - 创建和列出版本发布 + +- **用户与通知** + - 获取用户信息 + - 搜索用户 + - 列出用户通知 + +## 贡献 -### 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 - -## License - -This project is licensed under the MIT License. See the [LICENSE](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_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 | -| **get_diff_files** | Pull Request | Get a pull request diff files | -| **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: - -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](CONTRIBUTING.md) file. +我们欢迎社区贡献!请参考 [CONTRIBUTING_CN.md](CONTRIBUTING_CN.md) 文件以了解如何参与项目开发。 \ No newline at end of file