gitea-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITEA_URL | Yes | Base URL of your Gitea instance (e.g., https://gitea.example.com) | |
| GITEA_TOKEN | Yes | Personal Access Token from your Gitea user settings | |
| GITEA_TIMEOUT | No | HTTP request timeout in seconds | 30 |
| GITEA_MAX_RETRIES | No | Max retries for transient failures on idempotent methods | 3 |
| GITEA_RETRY_BASE_DELAY | No | Base delay (seconds) for exponential backoff between retries | 0.5 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| read_fileA | Read a file's content from a Gitea repository. Returns Gitea's The |
| create_branchA | Create a new branch in a repository. Returns the created Gitea Branch object. Fails cleanly via
:class: |
| commit_changesA | Create or update a single file on a branch in one commit. Auto-detects whether the file exists:
Returns Gitea's Single-file only. Multi-file commits would require Gitea's Git Trees API and are deliberately out of scope for this tool. |
| create_prA | Open a new pull request from Returns the created Gitea PullRequest object (including the assigned
number, URL, and merge status). Raises :class: |
| create_issueA | Create a new issue in a Gitea repository. Returns the full Gitea Issue object including the assigned number, URL, and metadata. Label names are resolved to IDs against the repository's label set; an unknown label name fails the call cleanly with the list of valid names. |
| list_issuesA | List issues in a Gitea repository. Pull requests are excluded; only true issues are returned. Filters compose (state AND labels AND assignee). |
| get_issueA | Get a single issue by number, including all of its comments. The returned object is the standard Gitea Issue payload, with an additional
|
| update_issueA | Update an existing issue's title, body, state, assignees, milestone, or labels. Each argument is independent — pass only the fields you want to change.
Labels are replaced atomically against the new set (passing |
| add_commentB | Add a comment to an existing issue. Returns the created Comment object. |
| list_branchesA | List branches in a repository. Returns the standard Gitea Branch object array: |
| list_pull_requestsA | List pull requests in a repository, optionally filtered by state. Returns Gitea PullRequest objects (not Issue-style — the PR endpoint
returns richer head/base/mergeable info than the issues endpoint does
even when issues are filtered to |
| get_pull_requestA | Get a single pull request by number, including its discussion comments. Mirrors :func: |
| add_comment_on_prA | Add a comment to a pull request's discussion thread. Posts to |
| merge_prA | Merge a pull request. Calls |
| list_releasesA | List releases for a repository. Returns the standard Gitea Release object array, including drafts and pre-releases. Sort order is newest first. |
| create_releaseA | Create a new release in a repository. .. warning:: Side effects: if |
| list_reposA | List repositories. Three modes:
|
| list_labelsA | List labels defined in a repository. Returns the standard Gitea Label object: |
| list_milestonesA | List milestones in a repository, optionally filtered by state. |
| get_server_versionA | Return the running gitea-mcp server's version. No network call — just reports the package version. |
| get_server_infoA | Return information about the running gitea-mcp server and its Gitea connection. Performs two Gitea API calls — Returns a dict with:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 21 tools
Each tool targets a distinct resource or action, with clear documentation differentiating similar tools like add_comment and add_comment_on_pr. No overlapping purposes that would cause agent misselection.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_branch, list_issues, merge_pr). The pattern is predictable and uniform across the entire set.
With 21 tools, the count is slightly above the ideal 3-15 range but justified by the broad domain of Gitea repository management. The tools cover a comprehensive set of operations without being excessive.
The tool surface covers core CRUD for issues and PRs but has notable gaps: no update for PRs, no delete operations for any resource, and no management tools for labels or milestones. Some gaps are acknowledged as out of scope, but the set is not fully comprehensive.