摘要
让你的 AI 读取你的 Gitea:查找仓库,分诊 issue 和拉取请求(含评论、文件、diff 与评审),查看发布版本和组织,并读取分支、提交和文件。支持 gitea.com 或你自己的 Gitea 服务器,使用访问令牌。只读。
引导式设置
2 分钟将 Gitea 连接到 Claude、ChatGPT 或 Copilot
开始 AnythingMCP Cloud 免费试用,在引导式设置中连接 Gitea,再把你的 MCP URL 添加到你的 AI 助手。无需代码,也无需自行运行服务器。
无需信用卡 · 7 天试用 · 提供自托管方案
试试这样问
Gitea 的示例提示
点击任意提示即可复制,然后粘贴到 Claude、ChatGPT、Cursor、Gemini、Copilot 或 OpenClaw 中,在该连接器上运行。
Claude 是 AI,可能会出错。请核对回答。
💡 无需安装?直接使用 cloud.anythingmcp.com。 登录后点击 Connectors → Gitea,粘贴你的凭据,生成 MCP API 密钥即可。无需 Docker,无需
git clone,无需本地服务器。
Gitea
让你的 AI 读取你的 Gitea:查找仓库,分诊 issue 和拉取请求(含评论、文件、diff 与评审),查看发布版本和组织,并读取分支、提交和文件。支持 gitea.com 或你自己的 Gitea 服务器,使用访问令牌。只读。
设置
设置大约需要 2 分钟。你需要一个 gitea.com 或你自己的 Gitea 服务器上的账号,以及一个对 Repository、Issue、Organization 和 User 具有 Read 权限的访问令牌。
- 在 Gitea 中,点击你的头像,然后依次点击 Settings、Applications。在 Manage Access Tokens 下输入名称(例如 "AnythingMCP"),并将 Repository、Issue、Organization 和 User 设为 Read(即权限范围
read:repository、read:issue、read:organization和read:user)。如果你的 Gitea 版本不支持令牌权限范围,该令牌将拥有其所属用户的全部权限。 - 点击 Generate Token 并立即复制令牌:Gitea 只会显示一次。只需将令牌本身粘贴到
GITEA_TOKEN,前面不要加token或Bearer。连接器会自行添加token。 - 将
GITEA_URL设置为你访问 Gitea 的地址,例如https://gitea.com或https://git.example.com,不要带/api/v1,也不要带末尾斜杠。如果 Gitea 部署在子路径下,请保留该子路径(https://example.com/gitea)。 - 安装连接器并运行
gitea_get_current_user:它会显示令牌所属的用户,并确认地址和令牌可用。
只读:全部 30 个工具都只读取数据。连接器无法在 Gitea 中创建、修改或删除任何内容,AI 看到的内容与令牌所属用户能看到的完全一致。
可读取的内容:仓库(在整个实例中搜索,或列出你的用户、某个组织或其他用户的仓库)、含评论、标签和里程碑的 issue、含变更文件、diff、提交和评审的拉取请求、含说明和附件的发布版本、含成员和团队的组织、分支、提交、文件树以及文件内容。gitea_search_issues 可以在所有仓库中查找分配给你、由你创建或等待你评审的 issue 和拉取请求。
仓库与编号:每个仓库都需要 owner(用户或组织)和 repo,即 https://host/owner/repo 中的两部分。每个仓库中,issue 和拉取请求共用同一个编号序列。Gitea 也将拉取请求视为 issue,因此 gitea_get_issue 和 gitea_list_issue_comments 也可以使用拉取请求编号来获取其标题、标签和讨论内容,而 gitea_get_pull_request、gitea_get_pull_request_files 和 gitea_get_pull_request_diff 则提供代码层面的信息。
你自己的服务器:位于内网主机(私有 IP 或内部域名)的 Gitea,需要与其处于同一网络的自托管 AnythingMCP,并将主机名加入 SSRF_ALLOWED_HOSTS,否则出站防护会拦截调用。Forgejo 以及基于它运行的 Codeberg 提供相同的 API v1 路由,因此 https://codeberg.org 这样的地址应该也能使用。该连接器是针对 Gitea API 编写的。
限制:Gitea 服务器默认每页返回 30 条,最多 50 条(由其 MAX_RESPONSE_ITEMS 设置决定),因此 AI 会请求下一页,而不是请求更大的 limit。超过 200 KB 的拉取请求 diff 和文件内容会被截断:其余部分请打开该拉取请求的 html_url 查看。
常见错误:401 表示令牌错误、已过期或已被删除,或者 GITEA_URL 指向了另一台服务器。403 表示令牌缺少调用所需的权限范围(Gitea 会在消息中指明),例如读取 issue 需要 read:issue,读取组织需要 read:organization。404 表示仓库、issue 或文件不存在,或用户无权查看:对于被隐藏的私有资源,Gitea 会返回 404。422 会指出缺失或无效的字段。
该连接器不会创建或编辑 issue、评论、拉取请求、发布版本、分支或文件,不会合并或批准,也不涵盖 Actions 运行和工作流、软件包、wiki、通知、webhook、部署密钥或管理功能。
前提条件:GITEA_URL、GITEA_TOKEN
在本地安装连接器
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
打开 http://localhost:3000/connectors/store,选择 Gitea,并粘贴“前提条件”中列出的环境变量。
可用工具
| 工具 | 功能 |
|---|---|
gitea_get_current_user | 获取令牌所属的 Gitea 用户:id、login、full_name、email、is_admin 和 html_url |
gitea_search_repositories | 按关键词、主题、类型或归档状态,在整个实例中搜索令牌可见的仓库:full_name、description…… |
gitea_list_my_repositories | 列出令牌所属用户拥有的仓库,包含 full_name、description、default_branch、private、archived、stars_count…… |
gitea_list_organization_repositories | 列出某个组织中令牌所属用户可见的仓库:full_name、description、default_branch、private、archived…… |
gitea_list_user_repositories | 列出指定用户拥有且令牌所属用户可见的仓库:full_name、description、default_branch、private、archived…… |
gitea_get_repository | 获取单个仓库:description、default_branch、private、archived、fork、empty、size、stars_count、forks_count、open_issues_count…… |
gitea_list_issues | 按过滤条件列出仓库的 issue:number、title、state、labels、assignees、milestone、评论数、created_at、updated_at 等…… |
gitea_search_issues | 在令牌所属用户可见的所有仓库中搜索 issue 和拉取请求,或缩小到分配给你、由你创建、提及你的……内容 |
gitea_get_issue | 按编号获取单个 issue:title、body(Markdown)、state、labels、assignees、milestone、due_date、评论数、created_at、closed_at…… |
gitea_list_issue_comments | 按时间从旧到新列出 issue 的评论:id、body(Markdown)、user、created_at、updated_at 和 html_url |
gitea_list_labels | 列出仓库的标签:id、name、color 和 description |
gitea_list_milestones | 列出仓库的里程碑:id、title、state、description、due_on、open_issues 和 closed_issues |
gitea_list_pull_requests | 列出仓库的拉取请求:number、title、state、merged、mergeable、head 和 base 分支、user、labels、created_at、updated_at…… |
gitea_get_pull_request | 按编号获取单个拉取请求:title、body(Markdown)、state、merged、mergeable、head 和 base(分支、sha、仓库)、additions…… |
gitea_get_pull_request_files | 列出拉取请求变更的文件:filename、previous_filename、status(added、modified、deleted、renamed)、additions、deletions 等…… |
gitea_get_pull_request_diff | 以纯文本形式读取拉取请求的 unified diff,用于评审实际变更 |
gitea_list_pull_request_commits | 列出拉取请求的提交:sha、message、author、date 和 html_url |
gitea_list_pull_request_reviews | 列出拉取请求的评审:id、reviewer、state(APPROVED、REQUEST_CHANGES、COMMENT、PENDING)、body、comments_count 和 submitted_at |
gitea_list_releases | 按时间从新到旧列出仓库的发布版本:tag_name、name、body(Markdown 格式的发布说明)、draft、prerelease、published_at、附件…… |
gitea_get_latest_release | 获取最新的既非草稿也非预发布的发布版本:tag_name、name、body(发布说明)、published_at、assets 等…… |
gitea_get_release_by_tag | 按标签名获取单个发布版本:name、body(发布说明)、draft、prerelease、published_at、assets 和 html_url |
gitea_list_my_organizations | 列出令牌所属用户所在的组织:name、full_name、description、visibility 和 website |
gitea_get_organization | 获取单个组织:name、full_name、description、website、location、visibility 和 avatar_url |
gitea_list_organization_members | 列出令牌所属用户可见的组织成员:login、full_name 和 html_url |
gitea_list_organization_teams | 列出组织的团队:id、name、description、permission,以及该团队是否涵盖所有仓库 |
gitea_list_branches | 列出仓库的分支:name、最新提交(id、message、timestamp)、protected 以及谁可以推送 |
gitea_list_commits | 按时间从新到旧列出仓库的提交:sha、message、author、date 和 html_url |
gitea_get_commit | 按分支、标签或 sha 获取单个提交:message、author、committer、date、parents、html_url,以及(启用 files 时)变更的文件和统计信息 |
gitea_get_tree | 列出仓库在某个分支、标签或提交下的文件和文件夹:path、type(blob 表示文件,tree 表示文件夹)、mode 和 size |
gitea_get_file_content | 以文本形式读取仓库在某个分支、标签或提交下的文件(省略 ref 时使用默认分支) |
后续步骤
这份指南对你有帮助吗?