Content
# GitCode MCP Server
> **LLM Install Prompt** — paste this into Claude Code, Gemini CLI, Codex, or OpenCode:
>
> ```
> Clone https://github.com/ZoroPoskai/gitcode-mcp-server.git, create a Python venv inside it, pip install -r requirements.txt, then add it to my MCP config with command pointing to .venv/bin/python and args pointing to server.py. Set env GITCODE_TOKEN to <my-token> and GITCODE_TOOLSETS to core.
> ```
MCP server for the [GitCode](https://gitcode.com) API, enabling Claude and other AI assistants to interact with GitCode repositories, issues, pull requests, and more.
## Features
- **152 tools** covering GitCode API v5 & v8
- **3 toolset levels** to control context usage:
- `core` (22 tools, ~2K tokens) — essential dev workflow
- `extended` (106 tools, ~10K tokens) — full CRUD operations
- `all` (152 tools, ~15K tokens) — every available endpoint
- Bearer token authentication
- Async HTTP with connection pooling
## Quick Start
### Prerequisites
- Python 3.10+
- GitCode personal access token ([get one here](https://gitcode.com/setting/token-classic))
### Install
```bash
git clone https://github.com/ZoroPoskai/gitcode-mcp-server.git
cd gitcode-mcp-server
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
### Configure Claude Code
Add to your `~/.claude.json`:
```json
{
"mcpServers": {
"gitcode": {
"type": "stdio",
"command": "/path/to/gitcode-mcp-server/.venv/bin/python",
"args": ["/path/to/gitcode-mcp-server/server.py"],
"env": {
"GITCODE_TOKEN": "your-token-here",
"GITCODE_TOOLSETS": "core"
}
}
}
}
```
### Configure Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"gitcode": {
"command": "/path/to/gitcode-mcp-server/.venv/bin/python",
"args": ["/path/to/gitcode-mcp-server/server.py"],
"env": {
"GITCODE_TOKEN": "your-token-here",
"GITCODE_TOOLSETS": "core"
}
}
}
}
```
## Toolsets
| Level | Tools | ~Tokens | Description |
|-------|-------|---------|-------------|
| `core` | 22 | ~2K | Repos, files, branches, commits, issues, PRs, search |
| `extended` | 106 | ~10K | + labels, milestones, tags, releases, webhooks, orgs, members |
| `all` | 152 | ~15K | + enterprise, protected branches/tags, PR reviewers/testers |
Set via the `GITCODE_TOOLSETS` environment variable. Default: `core`.
You can also mix toolsets and individual tools by comma-separating them:
```
GITCODE_TOOLSETS=core,gitcode_list_releases,gitcode_list_tags
```
## Core Tools (default)
| Tool | Description |
|------|-------------|
| `gitcode_get_user` | Get authenticated user profile |
| `gitcode_get_repo` | Get repository details |
| `gitcode_search_repos` | Search repositories |
| `gitcode_get_contents` | Get file or directory contents |
| `gitcode_get_raw_file` | Get raw file content |
| `gitcode_create_file` | Create a new file |
| `gitcode_update_file` | Update an existing file |
| `gitcode_list_branches` | List repository branches |
| `gitcode_get_branch` | Get branch details |
| `gitcode_list_commits` | List repository commits |
| `gitcode_get_commit` | Get a specific commit |
| `gitcode_list_issues` | List repository issues |
| `gitcode_get_issue` | Get a specific issue |
| `gitcode_create_issue` | Create a new issue |
| `gitcode_create_issue_comment` | Comment on an issue |
| `gitcode_list_pulls` | List pull requests |
| `gitcode_get_pull` | Get a specific pull request |
| `gitcode_create_pull` | Create a pull request |
| `gitcode_merge_pull` | Merge a pull request |
| `gitcode_create_pull_comment` | Comment on a pull request |
| `gitcode_list_pull_files` | List files changed in a PR |
| `gitcode_search_issues` | Search issues |
## All Available Tools
Full reference of all 152 tools organized by category.
### Repositories (11 tools)
| Tool | Description |
|------|-------------|
| `gitcode_get_repo` | Get a repository |
| `gitcode_delete_repo` | Delete a repository |
| `gitcode_update_repo` | Update repository settings |
| `gitcode_get_readme` | Get the README of a repository |
| `gitcode_list_languages` | List programming languages used |
| `gitcode_list_contributors` | List contributors |
| `gitcode_list_stargazers` | List users who starred a repo |
| `gitcode_list_subscribers` | List users watching a repo |
| `gitcode_list_forks` | List forks |
| `gitcode_create_fork` | Fork a repository |
| `gitcode_search_repos` | Search repositories |
### Events & Notifications (3 tools)
| Tool | Description |
|------|-------------|
| `gitcode_list_events` | List events for a repository |
| `gitcode_list_repo_notifications` | List notifications for a repository |
| `gitcode_mark_repo_notifications_read` | Mark all notifications as read |
### Files & Contents (8 tools)
| Tool | Description |
|------|-------------|
| `gitcode_get_contents` | Get file or directory contents |
| `gitcode_get_file_list` | Get a flat file list |
| `gitcode_get_raw_file` | Get raw file content |
| `gitcode_get_blob` | Get a git blob by SHA |
| `gitcode_get_tree` | Get a git tree by SHA |
| `gitcode_create_file` | Create a new file |
| `gitcode_update_file` | Update an existing file |
| `gitcode_delete_file` | Delete a file |
### Branches (8 tools)
| Tool | Description |
|------|-------------|
| `gitcode_list_branches` | List all branches |
| `gitcode_get_branch` | Get a single branch |
| `gitcode_create_branch` | Create a new branch |
| `gitcode_delete_branch` | Delete a branch |
| `gitcode_list_protected_branches` | List protected branches |
| `gitcode_create_branch_protection` | Create branch protection rule |
| `gitcode_update_branch_protection` | Update branch protection rule |
| `gitcode_delete_branch_protection` | Delete branch protection rule |
### Commits (11 tools)
| Tool | Description |
|------|-------------|
| `gitcode_list_commits` | List commits |
| `gitcode_get_commit` | Get a single commit |
| `gitcode_compare_commits` | Compare two commits or branches |
| `gitcode_get_commit_diff` | Get the diff for a commit |
| `gitcode_get_commit_patch` | Get the patch for a commit |
| `gitcode_list_commit_comments` | List comments on a commit |
| `gitcode_create_commit_comment` | Comment on a commit |
| `gitcode_list_repo_comments` | List all commit comments |
| `gitcode_get_comment` | Get a single commit comment |
| `gitcode_update_comment` | Update a commit comment |
| `gitcode_delete_comment` | Delete a commit comment |
### Issues (18 tools)
| Tool | Description |
|------|-------------|
| `gitcode_list_issues` | List issues |
| `gitcode_get_issue` | Get a single issue |
| `gitcode_create_issue` | Create a new issue |
| `gitcode_update_issue` | Update an issue |
| `gitcode_list_issue_comments` | List comments on an issue |
| `gitcode_create_issue_comment` | Comment on an issue |
| `gitcode_update_issue_comment` | Update an issue comment |
| `gitcode_delete_issue_comment` | Delete an issue comment |
| `gitcode_list_all_issue_comments` | List all issue comments for a repo |
| `gitcode_get_issue_comment` | Get a single issue comment |
| `gitcode_add_issue_labels` | Add labels to an issue |
| `gitcode_remove_issue_label` | Remove a label from an issue |
| `gitcode_remove_all_issue_labels` | Remove all labels from an issue |
| `gitcode_replace_issue_labels` | Replace all labels on an issue |
| `gitcode_get_issue_related_branches` | Get branches related to an issue |
| `gitcode_list_user_issues` | List issues assigned to you |
| `gitcode_list_org_issues` | List issues for an organization |
| `gitcode_search_issues` | Search issues |
### Pull Requests (31 tools)
| Tool | Description |
|------|-------------|
| `gitcode_list_pulls` | List pull requests |
| `gitcode_get_pull` | Get a single pull request |
| `gitcode_create_pull` | Create a pull request |
| `gitcode_update_pull` | Update a pull request |
| `gitcode_list_pull_files` | List files changed in a PR |
| `gitcode_list_pull_commits` | List commits on a PR |
| `gitcode_list_pull_comments` | List review comments on a PR |
| `gitcode_create_pull_comment` | Comment on a pull request |
| `gitcode_get_pull_comment` | Get a single review comment |
| `gitcode_update_pull_comment` | Update a review comment |
| `gitcode_delete_pull_comment` | Delete a review comment |
| `gitcode_check_pull_merged` | Check if a PR has been merged |
| `gitcode_merge_pull` | Merge a pull request |
| `gitcode_list_pull_labels` | List labels on a PR |
| `gitcode_add_pull_labels` | Add labels to a PR |
| `gitcode_replace_pull_labels` | Replace all labels on a PR |
| `gitcode_remove_pull_label` | Remove a label from a PR |
| `gitcode_assign_pull_reviewers` | Assign reviewers to a PR |
| `gitcode_reset_pull_review` | Reset review status |
| `gitcode_remove_pull_reviewers` | Remove reviewers from a PR |
| `gitcode_assign_pull_testers` | Assign testers to a PR |
| `gitcode_reset_pull_test` | Reset test status |
| `gitcode_remove_pull_testers` | Remove testers from a PR |
| `gitcode_submit_pull_review` | Submit a review |
| `gitcode_submit_pull_test` | Submit a test result |
| `gitcode_link_pull_issues` | Link issues to a PR |
| `gitcode_unlink_pull_issues` | Unlink issues from a PR |
| `gitcode_list_pull_issues` | List issues linked to a PR |
| `gitcode_get_pull_settings` | Get PR settings for a repo |
| `gitcode_list_user_pulls` | List your pull requests |
| `gitcode_list_org_pulls` | List PRs for an organization |
### Labels (4 tools)
| Tool | Description |
|------|-------------|
| `gitcode_list_labels` | List labels |
| `gitcode_create_label` | Create a label |
| `gitcode_update_label` | Update a label |
| `gitcode_delete_label` | Delete a label |
### Milestones (5 tools)
| Tool | Description |
|------|-------------|
| `gitcode_list_milestones` | List milestones |
| `gitcode_get_milestone` | Get a single milestone |
| `gitcode_create_milestone` | Create a milestone |
| `gitcode_update_milestone` | Update a milestone |
| `gitcode_delete_milestone` | Delete a milestone |
### Tags (8 tools)
| Tool | Description |
|------|-------------|
| `gitcode_list_tags` | List tags |
| `gitcode_create_tag` | Create a tag |
| `gitcode_delete_tag` | Delete a tag |
| `gitcode_list_protected_tags` | List protected tags |
| `gitcode_get_protected_tag` | Get a protected tag |
| `gitcode_create_protected_tag` | Create a protected tag |
| `gitcode_update_protected_tag` | Update a protected tag |
| `gitcode_delete_protected_tag` | Delete a protected tag |
### Releases (6 tools)
| Tool | Description |
|------|-------------|
| `gitcode_list_releases` | List releases |
| `gitcode_get_latest_release` | Get the latest release |
| `gitcode_get_release` | Get a release by tag name |
| `gitcode_get_release_by_tag` | Get a release by tag (explicit lookup) |
| `gitcode_create_release` | Create a release |
| `gitcode_update_release` | Update a release |
### Webhooks (6 tools)
| Tool | Description |
|------|-------------|
| `gitcode_list_webhooks` | List webhooks |
| `gitcode_get_webhook` | Get a single webhook |
| `gitcode_create_webhook` | Create a webhook |
| `gitcode_update_webhook` | Update a webhook |
| `gitcode_delete_webhook` | Delete a webhook |
| `gitcode_test_webhook` | Trigger a test delivery |
### Collaborators & Members (9 tools)
| Tool | Description |
|------|-------------|
| `gitcode_list_collaborators` | List collaborators |
| `gitcode_check_collaborator` | Check if a user is a collaborator |
| `gitcode_get_collaborator_permission` | Get collaborator's permission level |
| `gitcode_add_collaborator` | Add a collaborator |
| `gitcode_remove_collaborator` | Remove a collaborator |
| `gitcode_list_org_members` | List organization members |
| `gitcode_get_org_member` | Get an organization member |
| `gitcode_invite_org_member` | Invite a user to an organization |
| `gitcode_remove_org_member` | Remove an organization member |
### Organizations (6 tools)
| Tool | Description |
|------|-------------|
| `gitcode_get_org` | Get an organization |
| `gitcode_update_org` | Update an organization |
| `gitcode_list_org_repos` | List organization repositories |
| `gitcode_create_org_repo` | Create an organization repository |
| `gitcode_list_user_orgs` | List your organizations |
| `gitcode_list_user_orgs_by_name` | List organizations for a user |
### Users (13 tools)
| Tool | Description |
|------|-------------|
| `gitcode_get_user` | Get authenticated user |
| `gitcode_update_user` | Update your profile |
| `gitcode_get_user_by_name` | Get a user by username |
| `gitcode_list_user_repos_by_name` | List repos for a user |
| `gitcode_list_user_events` | List events performed by a user |
| `gitcode_list_my_repos` | List your repositories |
| `gitcode_list_my_starred` | List your starred repos |
| `gitcode_list_my_subscriptions` | List your watched repos |
| `gitcode_list_ssh_keys` | List your SSH keys |
| `gitcode_get_ssh_key` | Get a single SSH key |
| `gitcode_add_ssh_key` | Add an SSH key |
| `gitcode_delete_ssh_key` | Delete an SSH key |
| `gitcode_list_emails` | List your email addresses |
### Search (1 tool)
| Tool | Description |
|------|-------------|
| `gitcode_search_users` | Search users |
### Enterprise (4 tools)
| Tool | Description |
|------|-------------|
| `gitcode_list_enterprise_members` | List enterprise members |
| `gitcode_list_enterprise_issues` | List enterprise issues |
| `gitcode_get_enterprise_issue` | Get a single enterprise issue |
| `gitcode_list_enterprise_pulls` | List enterprise pull requests |
## Environment Variables
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `GITCODE_TOKEN` | Yes | — | GitCode personal access token |
| `GITCODE_TOOLSETS` | No | `core` | Toolset level: `core`, `extended`, `all`, or comma-separated mix |
You can also place these in a `.env` file in the project directory.
## License
[MIT](LICENSE)
MCP Config
Below is the configuration for this MCP Server. You can copy it directly to Cursor or other MCP clients.
mcp.json
Connection Info
You Might Also Like
everything-claude-code
Complete Claude Code configuration collection - agents, skills, hooks,...
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
cc-switch
All-in-One Assistant for Claude Code, Codex & Gemini CLI across platforms.
servers
Model Context Protocol Servers
servers
Model Context Protocol Servers
Time
A Model Context Protocol server for time and timezone conversions.