Gitea MCP server
Gitea in any MCP client, through Memtro: Gitea does not publish this server. Memtro's Gitea connector reads Gitea through its API with the credentials you connect, and one endpoint hands those tools, every other system you connect and Memtro's memory tools to Claude Code, Cursor, Claude Desktop or anything else that speaks Streamable HTTP, as you.
What the model can do
Gitea (self-hosted or gitea.com): search repositories, issues and pull requests, read an issue with its comments, list commits and Actions runs. Can open, edit, close, lock or delete issues, assign people, comment, edit or delete comments, create and change labels and milestones, open, edit, update, merge or review pull requests and request reviewers, create branches, create and edit releases, and run, re-run or cancel Actions workflows.
Reads
gitea_search_reposSearch Gitea repositories the token's user can see, by words in the name (and description if asked).gitea_search_issuesIssues and pull requests in Gitea: in one repository (give repo) or across every repository the token can see (leave it out).gitea_get_issueOne Gitea issue or pull request by number, with its body and its most recent comments.gitea_list_pull_requestsPull requests in one Gitea repository, with branches, draft and merge state, size and requested reviewers.gitea_list_commitsCommits in a Gitea repository, newest first, optionally on a branch, touching a path, or in a date window.gitea_list_workflow_runsGitea Actions runs (CI) of a repository, newest first: run number, title, status, conclusion, event, branch, actor and times.
Acts, when you ask
These change something in Gitea. The model is told to use them only when you ask for exactly that, and each one is granted by name: per team on a shared connection, by the owner on a personal one.
gitea_create_issueOpen a new issue in a Gitea repository with a title and a body.gitea_comment_issueAdd a comment to a Gitea issue or pull request (pull requests are numbered with issues).gitea_add_labelsAdd labels that already exist in the repository to a Gitea issue or pull request.gitea_update_issueOverwrites, change a Gitea issue or pull request's title, replace its body, or close or reopen it.gitea_remove_labelRemoves, take one label off a Gitea issue or pull request.gitea_delete_commentDeletes permanently, delete one comment from a Gitea issue or pull request by its id (gitea_get_issue shows comment ids).gitea_replace_labelsReplaces, set the complete list of labels on a Gitea issue or pull request.gitea_delete_issueDeletes permanently, delete a Gitea issue with its comments.gitea_merge_pull_requestMerges into the base branch, merge a Gitea pull request with the method given (merge commit, rebase, rebase-merge, squash or fast-forward-only).gitea_create_reviewRecords a decision, submit a review on a Gitea pull request as the token's user: approve, request changes, or comment, with a body.gitea_create_releaseCreates a release and a tag, create a Gitea release for a tag (the tag is created on target if it does not exist).gitea_create_pull_requestOpen a pull request in a Gitea repository from a head branch into a base branch, only when the user asked.gitea_edit_pull_requestOverwrites, change a Gitea pull request's title, replace its body, change its base branch or due date, or close or reopen it.gitea_update_pull_request_branchChanges the head branch, bring a Gitea pull request's branch up to date with its base: "merge" adds a merge commit to the head branch…gitea_request_reviewersRequest reviews on a Gitea pull request from named users or teams, only when the user asked.gitea_add_assigneesAssign people to a Gitea issue or pull request, only when the user asked.gitea_edit_commentOverwrites, replace the text of a comment on a Gitea issue or pull request by its id.gitea_lock_issueLock the conversation on a Gitea issue or pull request, so only collaborators can comment, only when the user asked.gitea_create_labelCreate a new label in a Gitea repository, only when the user asked.gitea_create_milestoneCreate a milestone in a Gitea repository, only when the user asked.gitea_create_branchCreate a branch in a Gitea repository from an existing branch, tag or commit, only when the user asked.gitea_edit_releaseEdit a Gitea release's title, notes or prerelease flag, or publish a draft.gitea_dispatch_workflowRuns code, start a Gitea Actions workflow (one with a workflow_dispatch trigger) on a branch or tag, with its inputs.gitea_rerun_workflow_runRuns code, re-run every job of a Gitea Actions workflow run (its id from gitea_list_workflow_runs) on the repository's runners…gitea_rerun_failed_jobsRuns code, re-run only the failed jobs of a Gitea Actions workflow run (its id from gitea_list_workflow_runs).gitea_cancel_workflow_runStops work, cancel a running or queued Gitea Actions workflow run and its jobs (its id from gitea_list_workflow_runs).
Connect it
First connect Gitea on Dashboard → Connections, then add Memtro to your client once. The Gitea tools appear alongside the tools of everything else you have connected; nothing is configured per connector.
Claude Code
The Memtro plugin registers the server and a skill for when to use it; the tools are then available in every session.
claude plugin marketplace add memtro-org/claude-memtro
claude plugin install memtro@memtro --config api_key=sk-memtro-...Cursor
Add the server to .cursor/mcp.json in the project, or to the global file under ~/.cursor/.
{
"mcpServers": {
"memtro": {
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Claude Desktop
Create a personal API key on Dashboard → Profile → API keys. In Claude Desktop add an MCP server of type HTTP with URL https://platform.memtro.com/api/mcp and the header Authorization: Bearer sk-memtro-…
OpenCode
A remote server in opencode.json.
{
"mcp": {
"memtro": {
"type": "remote",
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Pi
One command: pi mcp add memtro --url https://platform.memtro.com/api/mcp --bearer-token-env-var MEMTRO_API_KEY. Tools arrive as mcp__memtro__*. The pi-memtro extension registers it for you, alongside Memtro as the model.
Any other client
Add an MCP server of type HTTP (Streamable HTTP, stateless) at https://platform.memtro.com/api/mcp with the header Authorization: Bearer sk-memtro-.... Codex, Zed, Windsurf, Cline and the SDKs all take a remote server this way.
Who may use it
The key identifies the person, and the server offers that person the tools they may use everywhere else in Memtro. A shared Gitea connection is used by the teams an administrator granted it to, tool by tool, on the Permissions page; a personal connection is used by its owner alone, and its tools that act stay off until the owner allows them. See Teams and permissions and Connectors.
Ask it like this
- › Which pull requests are waiting for review?
- › What was merged into main this week?
- › Did the last Actions run on the api repository pass?
- › Open an issue about the broken Acme login page
- › Re-run the failed jobs on the last api build
Questions
- Is this an official Gitea MCP server?
- No. It is Memtro's MCP server with Memtro's Gitea connector behind it: the connector reads Gitea through its API with the credentials you connect on Dashboard → Connections, and Gitea publishes nothing here. The same endpoint carries every other system you connect and Memtro's memory tools.
- What does it cost?
- Nothing on top of Memtro. One price per organisation by its number of users, from $50 a month for up to 10 users after a 7-day free trial, with every connector, the MCP server, jobs and memory included. You bring your own model keys.
- Can it change anything in Gitea?
- Only when you ask, and only what it has been granted: open an issue in a repository; comment on an issue or pull request; add existing labels to an issue or pull request; change an issue's title, replace its body, or close or reopen it; remove a label from an issue or pull request; delete a comment permanently; replace the full set of labels on an issue or pull request; delete an issue permanently; merge a pull request into its base branch; submit a pull request review (approve, request changes or comment); create a release and its tag (a draft unless asked to publish); open a pull request from one branch into another; change a pull request's title, body, base branch or due date, or close or reopen it; bring a pull request's branch up to date with its base (merge or rebase); request reviews on a pull request; assign people to an issue or pull request; replace the text of a comment; lock an issue or pull request conversation; create a label in a repository; create a milestone in a repository; create a branch; edit a release or publish a draft release; run an Actions workflow on a branch or tag; re-run an Actions workflow run; re-run the failed jobs of an Actions workflow run; cancel an Actions workflow run. Every other tool reads, searches or lists. An administrator grants each acting tool by name per team, and a personal connection acts only after its owner allows it.
- Which clients work?
- Any MCP client that speaks Streamable HTTP: Claude Code, Cursor, Claude Desktop, OpenCode, Codex, Zed, Windsurf, Cline and the Anthropic and OpenAI SDKs. There is no local process to run; the server is remote and authenticated with your key.