gitea-mcp

io.github.werebear73由 GitHub 账号 werebear73 发布v0.5.1更新于 Oct 25, 2026

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

已验证STDIO仅桌面效率与工作流开发者工具

概览

AI 生成的概览

本地 MCP 服务器,让 AI 助手在 Gitea、Forgejo 或 Codeberg 实例上读取、创建和管理议题、拉取请求、文件与发布。

可以做什么
创建、列出、读取、更新议题并添加评论,列出标签、里程碑和分支,用于分类整理和记录。列出并查看拉取请求,添加评论、创建和合并拉取请求。读取仓库文件、提交更改并创建分支。列出和创建发布。查询服务器信息与版本。
适用场景
当团队或项目在自托管的 Gitea、Forgejo 或 Codeberg 上跟踪工作时适用,可让助手在不离开对话的情况下提交议题、分类整理、跨仓库评论或发布版本。
运行要求
以 Python 包(pip 或 uvx)通过 stdio 在本地运行,也可自托管为 streamable HTTP 服务。需要以环境变量提供 GITEA_URL(实例基础地址)和 GITEA_TOKEN(个人访问令牌),并能访问该实例网络。可选 GITEA_TIMEOUT、GITEA_MAX_RETRIES 和 GITEA_RETRY_BASE_DELAY 调整 HTTP 行为。
安装前请注意
GITEA_TOKEN 是个人访问令牌,拥有你所授予的权限范围(read:repository、write:issue、read:user,创建发布还需 write:repository),请勿放入共享配置。助手可执行写入操作:创建和更新议题、评论、分支、提交、拉取请求、合并及发布。HTTP 模式下服务器使用自身的 GITEA_TOKEN,任何能访问该地址的客户端都以同一用户身份操作,需限制访问。

安装

在 SourceWeft 中

  1. 打开 控制台中的 gitea-mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

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 and Codeberg (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

bash
pip install gitea-mcp

Or with uv:

bash
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

bash
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:

bash
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):

json
{  "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:

bash
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

bash
git clone https://github.com/werebear73/gitea-mcp.gitcd gitea-mcppip 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

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.

来源:README.md,提交 5adde5e

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.5.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分