Gitea MCP server
Gitea's official MCP server for repos, branches, issues, pull request reviews, releases, Actions, and wikis on any Gitea instance.
Gitea MCP is the official Model Context Protocol server for Gitea, the self-hosted, lightweight Git service written in Go. It connects an agent to your Gitea instance over an access token so it can act on real data: create and fork repositories, manage branches and tags, read and write files, open and review pull requests, file and edit issues, cut releases, manage organization labels and secrets, and drive Gitea Actions CI/CD workflows. It even covers the wiki, so an assistant can read and update project documentation in place.
The surface is broad and grouped by area: user and org lookup, repository and branch management, commits and files, full issue and pull-request review flows (create, submit, dismiss, and merge reviews), releases and tags, an extensive Actions toolset for secrets, variables, workflows, runs, jobs, and logs, and wiki page CRUD. It runs locally over stdio or as an HTTP server, configured with GITEA_HOST and GITEA_ACCESS_TOKEN (or the --host and --token flags). The canonical install is the official Docker image docker.gitea.com/gitea-mcp-server, with prebuilt binaries and a Go module also published. For teams running their own Gitea, it is the verifiable, first-party way to put a coding agent to work on the platform.
Quick install
Copy-paste configs are provided for all 8 supported clients. Pick your client below.
Available tools
| Tool | Description |
|---|---|
| get_my_user_info | Gets the authenticated user's information. |
| get_user_orgs | Gets the organizations the authenticated user belongs to. |
| search_users | Searches for user accounts. |
| create_repo | Creates a new repository. |
| fork_repo | Forks an existing repository. |
| list_my_repos | Lists the authenticated user's repositories. |
| search_repos | Searches for repositories. |
| create_branch | Creates a new branch in a repository. |
| delete_branch | Deletes a branch from a repository. |
| list_branches | Lists the branches of a repository. |
| create_release | Creates a release. |
| delete_release | Deletes a release. |
| get_release | Gets a release. |
| get_latest_release | Gets the latest release for a repository. |
| list_releases | Lists releases for a repository. |
| create_tag | Creates a git tag. |
| delete_tag | Deletes a git tag. |
| get_tag | Gets a specific git tag. |
| list_tags | Lists the tags of a repository. |
| list_repo_commits | Lists commits in a repository. |
| get_file_content | Gets the content and metadata of a file. |
| get_dir_content | Gets the entries of a directory. |
| create_file | Creates a new file in a repository. |
| update_file | Updates an existing file in a repository. |
| delete_file | Deletes a file from a repository. |
| get_issue_by_index | Gets an issue by its index. |
| list_repo_issues | Lists the issues of a repository. |
| create_issue | Creates a new issue. |
| create_issue_comment | Adds a comment to an issue. |
| edit_issue | Edits an existing issue. |
| edit_issue_comment | Edits an existing issue comment. |
| get_issue_comments_by_index | Gets the comments on an issue by its index. |
| get_pull_request_by_index | Gets a pull request by its index. |
| get_pull_request_diff | Gets the diff for a pull request. |
| list_repo_pull_requests | Lists the pull requests of a repository. |
| create_pull_request | Creates a new pull request. |
| create_pull_request_reviewer | Adds reviewers to a pull request. |
| delete_pull_request_reviewer | Removes reviewers from a pull request. |
| list_pull_request_reviews | Lists the reviews on a pull request. |
| get_pull_request_review | Gets a specific pull request review. |
| list_pull_request_review_comments | Lists the comments on a pull request review. |
| create_pull_request_review | Creates a pull request review. |
| submit_pull_request_review | Submits a pending pull request review. |
| delete_pull_request_review | Deletes a pull request review. |
| dismiss_pull_request_review | Dismisses a pull request review. |
| merge_pull_request | Merges a pull request. |
| search_org_teams | Searches for teams within an organization. |
| list_org_labels | Lists the labels of an organization. |
| create_org_label | Creates an organization label. |
| edit_org_label | Edits an organization label. |
| delete_org_label | Deletes an organization label. |
| list_repo_action_secrets | Lists a repository's Actions secrets. |
| upsert_repo_action_secret | Creates or updates a repository Actions secret. |
| delete_repo_action_secret | Deletes a repository Actions secret. |
| list_org_action_secrets | Lists an organization's Actions secrets. |
| upsert_org_action_secret | Creates or updates an organization Actions secret. |
| delete_org_action_secret | Deletes an organization Actions secret. |
| list_repo_action_variables | Lists a repository's Actions variables. |
| get_repo_action_variable | Gets a repository Actions variable. |
| create_repo_action_variable | Creates a repository Actions variable. |
| update_repo_action_variable | Updates a repository Actions variable. |
| delete_repo_action_variable | Deletes a repository Actions variable. |
| list_org_action_variables | Lists an organization's Actions variables. |
| get_org_action_variable | Gets an organization Actions variable. |
| create_org_action_variable | Creates an organization Actions variable. |
| update_org_action_variable | Updates an organization Actions variable. |
| list_repo_action_workflows | Lists a repository's Actions workflows. |
| get_repo_action_workflow | Gets a repository Actions workflow. |
| dispatch_repo_action_workflow | Triggers a repository Actions workflow. |
| list_repo_action_runs | Lists a repository's Actions workflow runs. |
| get_repo_action_run | Gets a repository Actions workflow run. |
| cancel_repo_action_run | Cancels a repository Actions workflow run. |
| rerun_repo_action_run | Reruns a repository Actions workflow run. |
| list_repo_action_jobs | Lists a repository's Actions jobs. |
| list_repo_action_run_jobs | Lists the jobs of an Actions workflow run. |
| get_repo_action_job_log_preview | Gets a preview of an Actions job log. |
| download_repo_action_job_log | Downloads the full log for an Actions job. |
| list_wiki_pages | Lists the wiki pages of a repository. |
| get_wiki_page | Gets a specific wiki page. |
| get_wiki_revisions | Gets the revision history of a wiki page. |
| create_wiki_page | Creates a new wiki page. |
| update_wiki_page | Updates an existing wiki page. |
| delete_wiki_page | Deletes a wiki page. |
| get_gitea_mcp_server_version | Returns the version of the Gitea MCP server. |
Required configuration
- GITEA_HOSTRequired
Base URL of your Gitea instance, e.g. https://gitea.com or your self-hosted host. Equivalent to the --host flag.
- GITEA_ACCESS_TOKENRequired
A Gitea personal access token. Equivalent to the --token flag.
- GITEA_INSECUREOptional
Set to allow insecure HTTPS connections to a Gitea instance with a self-signed certificate.
What you can do with it
Review and merge a pull request on self-hosted Gitea
An agent reads a PR diff, creates and submits a review with comments, requests reviewers, and merges once approved, all against your own Gitea instance.
Drive a Gitea Actions workflow
Using dispatch_repo_action_workflow and the run and job tools, the agent triggers a CI workflow, watches the runs, and downloads a failed job's log to diagnose the break.
FAQ
- Is it free?
- Yes. Gitea MCP is open source under the MIT license, and Gitea itself is free and self-hostable; you only need an instance and an access token.
- Does it support remote/OAuth?
- It runs locally over stdio (via the Docker image or a prebuilt binary) and also supports an HTTP transport mode for distributed deployments. Authentication is by Gitea access token via GITEA_ACCESS_TOKEN or the --token flag.
- Does it work with my self-hosted Gitea?
- Yes. Point GITEA_HOST (or --host) at your instance URL. It works against gitea.com or any self-managed Gitea server reachable from where the MCP server runs.