From a7ec38c212c0683ef7936befcc73b5a782ea4658 Mon Sep 17 00:00:00 2001 From: gitee-bot Date: Tue, 27 May 2025 09:59:22 +0000 Subject: [PATCH] Update README.md --- README.md | 232 +++++++++++++++++++----------------------------------- 1 file changed, 80 insertions(+), 152 deletions(-) diff --git a/README.md b/README.md index 02e71a9..bf28284 100644 --- a/README.md +++ b/README.md @@ -1,187 +1,115 @@ +```markdown # 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. +The Gitee Enterprise MCP Server is a powerful tool designed to interact with Gitee Enterprise's API to manage various aspects of your 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 +- **Enterprise Management**: List enterprises, groups, and members +- **Issue Tracking**: Create, update, comment on, and list issues with detailed states and types +- **Pull Request Management**: Handle pull requests including merging, commenting, and reviewing +- **Repository Operations**: Manage repositories, files, releases, and repository trees +- **Scrum Management**: Work with Scrum sprints and versions +- **User Info**: Retrieve user information +- **Comprehensive API Client**: Built-in Gitee API client with error handling and authentication support -
-Scenario Example - -1. Get specific enterprise issues - ![get_issues](./docs/images/get_issues.png) -2. Improve the issue content - ![update_issue](./docs/images/update_issue.png) -3. Divide subtasks - ![create_sup_issues](./docs/images/create_sub_issues.png) -4. Create PR/Review PR - ![create_pr_and_review](./docs/images/pr_review.png) -
- -## Installation(This step can be skipped directly when starting npx) +## Installation ### Prerequisites +- Go 1.23 or later (for building from source) +- Docker (for containerized deployment) -- Go 1.23.0 or higher -- MCP token, [Go to get](https://gitee.com/profile/mcp_gitee_ent_access_tokens) - -### Building from Source - +### From Source 1. Clone the repository: ```bash - git clone https://gitee.com/oschina/mcp-gitee-ent.git + git clone https://github.com/gitee/mcp-gitee-ent.git cd mcp-gitee-ent ``` - -2. Build the project: +2. Build and install: ```bash - make build + go install ``` - Move ./bin/mcp-gitee-ent PATH env -### Use go install - ```bash - go install gitee.com/oschina/mcp-gitee-ent@latest - ``` +### Using Docker +```bash +docker build -t mcp-gitee-ent . +docker run -p 8000:8000 mcp-gitee-ent +``` -## Usage +### NPM Package (Quick Start) +```bash +npx mcp-gitee-ent +``` -Check mcp-gitee-ent version: +## Usage -```bash -mcp-gitee-ent --version +### Command-line Options +``` +- --disabled-toolsets Comma-separated list of toolsets to disable +- --enabled-toolsets Comma-separated list of toolsets to enable ``` -## MCP Hosts Configuration -
- - - - - -
- -Config example: -- npx -```json -{ - "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": "" - } - } - } -} +### Environment Variables ``` -- executable -```json -{ - "mcpServers": { - "gitee-ent": { - "command": "mcp-gitee-ent", - "env": { - "GITEE_ENT_API_BASE": "https://api.gitee.com/enterprises", - "GITEE_ENT_MCP_ACCESS_TOKEN": "", - } - } - } -} +- GITEE_ACCESS_TOKEN Your Gitee access token for authentication +- GITEE_API_BASE Base URL for Gitee API (default: https://gitee.com/api/v5) ``` -### Command-line Options +### MCP Hosts Configuration +Configure your MCP host endpoints in your project configuration to point to your running server instance. -- `--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 +## Available Tools -### Environment Variables +The server provides a comprehensive set of tools for interacting with Gitee Enterprise: -You can also configure the server using environment variables: +### Issue Operations +- Create, update, get details, and list issues +- Manage issue comments and states +- Work with issue types and labels -- `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 +### Pull Request Operations +- Create, update, merge, and list pull requests +- Manage PR comments and diffs +- Get detailed PR information -### Toolset Management +### Repository Operations +- Create and list repositories +- Manage releases and file contents +- Work with repository trees -Toolset management supports two modes: +### Enterprise Management +- List enterprises, groups, and members +- Manage programs and labels -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"` +### Scrum Management +- Create and list Scrum sprints +- List Scrum versions -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"` +## Examples -Note: -- If both `enabled-toolsets` and `disabled-toolsets` are specified, `enabled-toolsets` takes precedence -- Tool names are case-sensitive +### List Issues +```bash +curl -X POST http://localhost:8000/api/v1/tool/ListIssues \ + -H "Content-Type: application/json" \ + -d '{"enterprise": "my-enterprise", "repository": "my-repo"}' +``` -## Available Tools +### Create Pull Request +```bash +curl -X POST http://localhost:8000/api/v1/tool/CreateEntPull \ + -H "Content-Type: application/json" \ + -d '{"enterprise": "my-enterprise", "repository": "my-repo", "title": "New feature", "head": "feature-branch", "base": "main"}' +``` + +## Contributing + +We welcome contributions! Please see our [CONTRIBUTING.md](CONTRIBUTING.md) file for guidelines on how to contribute to this project. + +## License + +This project is licensed under the terms of the MIT license. See the [LICENSE](LICENSE) file for details. + +## Support -The server provides various tools for interacting with Gitee Enterprise: - -| Tool | Category | Description | -|----------------------------------------|---------------|-------------| -| **list_enterprises** | Enterprise | List user's enterprises | -| **list_enterprise_repositories** | Repository | List repositories in an enterprise | -| **create_enterprise_repository** | Repository | Create a repository in an enterprise | -| **create_enterprise_repo_release** | Repository | Create a release for repository | -| **list_enterprise_repo_releases** | Repository | List releases for repository | -| **get_enterprise_repository_file_content** | Repository | Get the content of a specific file in the repository | -| **get_enterprise_repo_tree** | Repository | Get the tree structure of a repository | -| **list_enterprise_pulls** | Pull Request | List enterprise pull requests | -| **create_enterprise_repo_pull** | Pull Request | Create a pull request for repository | -| **merge_enterprise_pull** | Pull Request | Merge a pull request | -| **get_enterprise_pull_detail** | Pull Request | Get pull request detail | -| **update_enterprise_pull** | Pull Request | Update a pull request | -| **get_enterprise_pull_diff** | Pull Request | Get pull request diff | -| **comment_enterprise_pull** | Pull Request | Comment on a pull request | -| **list_enterprise_pull_comments** | Pull Request | List pull request comments | -| **create_enterprise_issue** | Issue | Create an issue | -| **update_enterprise_issue** | Issue | Update an issue | -| **get_enterprise_issue_detail** | Issue | Get issue detail | -| **list_enterprise_issues** | Issue | List issues | -| **comment_enterprise_issue** | Issue | Comment on an issue | -| **list_enterprise_issue_comments** | Issue | List issue comments | -| **get_user_info** | User | Get user info | -| **list_enterprise_members** | Member | List members of an enterprise | -| **list_enterprise_groups** | Group | List groups in an enterprise | -| **list_enterprise_labels** | Label | List labels of an enterprise | -| **list_programs** | Program | List programs of an enterprise | -| **list_scrum_sprints** | Program | List Scrum Sprints | -| **create_scrum_sprint** | Program | Create a Scrum Sprint | -| **list_scrum_versions** | Program | List Scrum Versions | -| **list_issue_types** | Issue Type | List issue types | -| **list_issue_type_states** | Issue State | List 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 [CONTRIBUTING](CONTRIBUTING.md) file. +For support or questions, please open an issue in our repository or contact the maintainers directly. +``` \ No newline at end of file -- Gitee