gitea-mcp
gitea-mcp is an MCP server providing full Gitea API coverage, enabling AI agents to manage all aspects of a Gitea instance. It exposes ~300 API functionalities, accessible via 6 compact meta-tools (compact mode) or individually.
Meta-tools (compact mode):
gitea_read— Any GET request: retrieve repositories, issues, pull requests, branches, tags, commits, files, users, organizations, notifications, packages, wikis, webhooks, CI/Actions artifacts, and more.gitea_create— Any POST request: create repositories, issues, pull requests, releases, labels, milestones, comments, branches, deploy keys, webhooks, teams, organizations, wiki pages, and trigger CI workflows.gitea_update— Any PUT/PATCH request: edit repositories, issues, pull requests, releases, file contents, user settings, team membership, milestones, labels, etc.gitea_delete— Any DELETE request: remove repositories, issues, comments, branches, tags, releases, webhooks, deploy keys, team members, and more.gitea_admin_read— Privileged GET requests on/admin/*endpoints: list users, view instance settings, inspect cron tasks (requires admin privileges).gitea_admin_write— Privileged POST/PUT/PATCH/DELETE on/admin/*endpoints: create/delete users, manage instance settings, run cron jobs (requires admin privileges).gitea_version— Retrieve the MCP server version and connected Gitea service version.
All tools support operation="help" to list available endpoints for that category. Files are auto-base64 encoded, and self-rotating user access tokens are supported (requires write:user scope).
Provides comprehensive access to the Gitea API, allowing AI agents to manage repositories, issues, pull requests, releases, branches, file contents, organizations, teams, and CI/CD workflows.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gitea-mcplist all open pull requests in the web-app repository"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
gitea-mcp
MCP server for Gitea -- full API coverage for autonomous AI agents.
Features
300 tools covering the entire Gitea API surface
Repositories, issues, pull requests, releases, labels, milestones
File content management (create, read, update, delete)
Branches, tags, commits, and status checks
Actions / CI workflows and artifacts
Organizations, teams, and user management
Webhooks, deploy keys, notifications, wiki, packages
Admin endpoints for instance-level operations
Compact mode -- collapse all tools into 6 meta-tools via
GITEA_COMPACT=trueZero-config install via
uvx
Quick Start
Add the following to your MCP client configuration (Claude Desktop, Cursor, Claude Code, etc.).
For Claude Code global config on macOS: ~/.claude.json → "mcpServers".
{
"mcpServers": {
"gitea": {
"command": "uvx",
"args": ["--refresh", "--extra-index-url", "https://nikitatsym.github.io/gitea-mcp/simple", "gitea-mcp"],
"env": {
"GITEA_URL": "https://gitea.example.com",
"GITEA_TOKEN": "your-api-token"
}
}
}
}Or use the interactive Setup Page to generate the config.
Configuration
Variable | Required | Description |
| Yes | Base URL of your Gitea instance (e.g. |
| Yes | Personal access token with appropriate permissions. For |
| No | Set to |
| No | Require |
| No | Max character length for brief summary (default: |
By default, creating public repos and orgs is blocked — agents must pass private=true explicitly. To allow public repos, add --allow-public to the command args:
"args": ["--refresh", "--extra-index-url", "https://nikitatsym.github.io/gitea-mcp/simple", "gitea-mcp", "--allow-public"]Compact Mode
By default, gitea-mcp exposes 300 individual tools. Some MCP clients handle large tool counts poorly (slow startup, context bloat, or hard limits).
Compact mode collapses all 300 tools into 6 meta-tools for granular permission control. Set GITEA_COMPACT=true to enable it:
{
"mcpServers": {
"gitea": {
"command": "uvx",
"args": ["--refresh", "--extra-index-url", "https://nikitatsym.github.io/gitea-mcp/simple", "gitea-mcp"],
"env": {
"GITEA_URL": "https://gitea.example.com",
"GITEA_TOKEN": "your-api-token",
"GITEA_COMPACT": "true"
}
}
}
}Tool | HTTP | Admin? | Signature |
| GET | no |
|
| POST | no |
|
| PUT/PATCH | no |
|
| DELETE | no |
|
| GET | yes |
|
| POST/PUT/PATCH/DELETE | yes |
|
Usage examples:
gitea_read("help") → list GET endpoints
gitea_read("/version") → get server version
gitea_read("/repos/owner/repo") → get a repository
gitea_create("/user/repos", '{"name":"my-repo","auto_init":true}')
gitea_update("PATCH", "/repos/owner/repo", '{"description":"updated"}')
gitea_delete("/repos/owner/repo") → delete a repository
gitea_admin_read("/admin/users") → list all users (admin)
gitea_admin_write("POST", "/admin/users", '{"username":"new","email":"a@b.c","password":"..."}')All tools accept path="help" to list their relevant endpoints. File and wiki content is auto-base64 encoded -- pass plain text in the "content" field.
Creating a Gitea API Token
Log in to your Gitea instance.
Go to Settings > Applications.
Under Manage Access Tokens, enter a token name (e.g.
mcp-server).Select the permissions your agent needs (read/write on repos, issues, etc.).
Click Generate Token and copy the value immediately -- it is shown only once.
Running Tests
The test suite runs against a real Gitea instance managed by Docker Compose.
# Start Gitea
docker compose -f tests/docker-compose.yml up -d
# Wait for Gitea to be ready, then run tests
uv run pytest tests/ -v
# Tear down
docker compose -f tests/docker-compose.yml down -vLicense
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nikitatsym/gitea-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server