Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

gitea-mcp

by werebear73version 0.5.1i★ –iRuns on your computer
Registry nameio.github.werebear73/gitea-mcp

Install

Overview

Description from the maker (original English)

Model Context Protocol server for Gitea (and Forgejo, Codeberg).

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Other
  • You need to fill in: GITEA_URL, GITEA_TOKEN

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: GITEA_URL, GITEA_TOKEN, GITEA_TIMEOUT, GITEA_MAX_RETRIES, GITEA_RETRY_BASE_DELAY

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • PyPIPython’s uv installed (for the uvx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "gitea": {
      "command": "uvx",
      "args": [
        "gitea-mcp"
      ],
      "env": {
        "GITEA_URL": "your-value",
        "GITEA_TOKEN": "your-value",
        "GITEA_TIMEOUT": "your-value",
        "GITEA_MAX_RETRIES": "your-value",
        "GITEA_RETRY_BASE_DELAY": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add gitea --env GITEA_URL=your-value --env GITEA_TOKEN=your-value --env GITEA_TIMEOUT=your-value --env GITEA_MAX_RETRIES=your-value --env GITEA_RETRY_BASE_DELAY=your-value -- uvx gitea-mcp

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "gitea": {
      "command": "uvx",
      "args": [
        "gitea-mcp"
      ],
      "env": {
        "GITEA_URL": "your-value",
        "GITEA_TOKEN": "your-value",
        "GITEA_TIMEOUT": "your-value",
        "GITEA_MAX_RETRIES": "your-value",
        "GITEA_RETRY_BASE_DELAY": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "gitea": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "gitea-mcp"
      ],
      "env": {
        "GITEA_URL": "your-value",
        "GITEA_TOKEN": "your-value",
        "GITEA_TIMEOUT": "your-value",
        "GITEA_MAX_RETRIES": "your-value",
        "GITEA_RETRY_BASE_DELAY": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • GITEA_URL required env
    Base URL of your Gitea/Forgejo/Codeberg instance
  • GITEA_TOKEN secret required env
    Personal access token for the configured instance
  • GITEA_TIMEOUT env
    HTTP request timeout in seconds
  • GITEA_MAX_RETRIES env
    Retry count for transient failures
  • GITEA_RETRY_BASE_DELAY env
    Retry backoff base delay in seconds

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 9, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account werebear73, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Otheri

  • More stars than 0% of the other 18639 servers in this category
  • Published to the registry more recently than 9% of the other 18639 servers in this category
  • Basic checks equal to or better than 100% of the other 18639 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is gitea-mcp safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: GITEA_URL, GITEA_TOKEN

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.5.1) reached the registry 5 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.

What can I use instead?

In the same category: Spec Driven Development, Remote Desktop Commander, Statuser

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Spec Driven Development

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

by formulahendryEarly↓ 66/wk★ 440Updated 14 months ago

Runs on your computer

Remote Desktop Commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

by desktop-commanderGrowing★ 211Updated 3 days ago

Runs in the cloud✓ desktopcommander.app

Statuser

Monitor services, manage incidents and status pages in Statuser.cloud from your AI assistant.

by statuser-cloudEarly↓ 1K/wkUpdated today

Computer or cloud

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

gitea-mcp

A Model Context Protocol server for Gitea — lets AI assistants (Claude, ChatGPT, Copilot, and anything else that speaks MCP) read, create, and manage issues, repositories, and releases on any Gitea instance you can reach.

Also works against [Forgejo](https://forgejo.org) and [Codeberg](https://codeberg.org) (API-compatible).

Why

Self-hosted Gitea is a popular GitHub alternative for solo developers, small teams, and privacy-conscious organizations. With this MCP server installed, your AI assistant can:

  • File audit findings or refactor notes as Gitea issues without you leaving the chat
  • Triage a repo's open issues in natural language
  • Cut a release at the end of a coding session
  • Comment on issues across multiple repos in one pass

Features

ResourceTools
Issuescreate_issue, list_issues, get_issue, update_issue, add_comment
Reposlist_repos, list_labels, list_milestones, list_branches
Pullslist_pull_requests, get_pull_request, add_comment_on_pr, create_pr, merge_pr
Filesread_file, commit_changes, create_branch
Releaseslist_releases, create_release
Metaget_server_info, get_server_version
  • Bearer authentication via Personal Access Token (PAT)
  • Async HTTP via httpx and FastMCP
  • Works with self-hosted Gitea, Forgejo, and Codeberg

Quick Start

1. Install
pip install gitea-mcp

Or with uv:

uv pip install gitea-mcp
2. Generate a Personal Access Token

In your Gitea instance, go to Settings → Applications → Generate New Token and grant at least:

  • read:repository
  • write:issue
  • read:user

Add write:repository if you also want to create releases.

3. Configure your MCP client

Claude Desktop (interactive): run

gitea-mcp init

It prompts for the Gitea URL and Personal Access Token, verifies the connection, and writes (or merges into) the right claude_desktop_config.json for your OS. Restart Claude Desktop and you're done.

To check that the server can reach your Gitea instance at any time:

gitea-mcp doctor

doctor reads GITEA_URL and GITEA_TOKEN from the environment, runs a GET /api/v1/user, and reports the authenticated username plus the state of the MCP tool surface. Exit 0 = ready; exit 1 = connection/load failure; exit 2 = missing config.

Any MCP client (manual): add gitea-mcp to the client's MCP config. The recommended form uses uvx so the client launches the latest published wheel in an isolated env without needing gitea-mcp on its own PATH (this is what gitea-mcp init writes):

{

"mcpServers": { "gitea": { "command": "uvx", "args": ["gitea-mcp"], "env": { "GITEA_URL": "https://your-gitea-instance.example.com", "GITEA_TOKEN": "your-personal-access-token" } } } }

If you'd rather use a globally pip-installed gitea-mcp binary, drop args and set command to "gitea-mcp" directly — works as long as the binary is on the MCP client's PATH at launch time.

See mcp.json for a complete example. The same shape works for Claude Desktop, VS Code, Cowork, Claude Code, and any other MCP-compatible client.

Configuration

Configuration is read from environment variables.

VariableRequiredDefaultDescription
GITEA_URLYes—Base URL of your Gitea instance (e.g., https://gitea.example.com)
GITEA_TOKENYes—Personal Access Token from your Gitea user settings
GITEA_TIMEOUTNo30HTTP request timeout in seconds
GITEA_MAX_RETRIESNo3Max retries for transient failures on idempotent methods (GET/PUT/DELETE). Set to 0 to disable retries. POST and PATCH are never auto-retried — they could create duplicate issues, comments, or releases. 429 Too Many Requests is retried for any method, honoring Retry-After when present.
GITEA_RETRY_BASE_DELAYNo0.5Base delay (seconds) for exponential backoff between retries. Effective delay grows as base * 2^attempt with jitter, capped at 4 seconds.

Self-hosting / HTTP transport

By default gitea-mcp runs in stdio mode — each MCP client (Claude Desktop, Cowork, etc.) launches its own subprocess on demand. For self-hosting one instance that multiple clients connect to over the network, use the streamable-HTTP transport:

gitea-mcp serve --transport http --host 0.0.0.0 --port 8000 --path /mcp

All four flags can also be provided via environment variables (handy for Docker / systemd units):

VariableDefaultFlag
GITEA_MCP_TRANSPORTstdio--transport
GITEA_MCP_HOST127.0.0.1--host
GITEA_MCP_PORT8000--port
GITEA_MCP_PATH/mcp--path

MCP clients connect to the resulting URL (e.g. https://gitea-mcp.example.com/mcp) just like they would to a local stdio server, except they share the one running instance.

Auth model (this release). The server reads GITEA_TOKEN from its own environment, so any client that reaches the URL acts as that one Gitea user. Run it for yourself behind your own access controls (firewall, reverse-proxy auth, VPN, Tailscale). Multi-tenant bring-your-own-token is on the roadmap.

The no-args invocation (gitea-mcp with no subcommand) still runs in stdio mode, so existing Claude Desktop / Cowork / Claude Code integrations are unaffected by this addition.

Compatibility

ServerStatus
Gitea (self-hosted)✅ Primary target
Forgejo✅ Expected to work (API-compatible)
Codeberg✅ Expected to work (Codeberg runs Forgejo)

Development

git clone https://github.com/werebear73/gitea-mcp.git

cd gitea-mcp pip install -e ".[dev]" pre-commit install # commit-stage hooks (ruff + mypy) pre-commit install --hook-type pre-push # push-stage hooks (pytest + build check) pytest

The two-stage pre-commit policy keeps the commit loop snappy (lint + type only) while making git push block on the slow stuff that's actually caught CI/release bugs in the past — the full test suite and python -m build && twine check dist/*, which surfaces setuptools_scm version surprises before they reach a tag push.

Roadmap

See docs/ROADMAP.md for what's shipped, what's next, and what's out of scope.

Publishing

  • MCP Registry metadata is tracked in server.json.
  • Smithery + MCP Registry publication steps are documented in docs/PUBLISHING.md.

Versioning

Semantic versioning, derived from git tags via setuptools_scm. See VERSIONING.md for the release process.

Contributing

Issues and pull requests welcome. For substantial changes, please open an issue first to discuss the approach.

License

MIT — use it however you like, including commercial products.


Built by Waretech Services.

Ask PopNx