Files
teahub/mcp
teahubxyzandClaude Opus 5.5 fbb115923a mcp 2.0.1: tea_issues also takes labels as a comma-separated string
Connectors that were open before 2.0 keep 1.0's tool list, where labels is
one comma-separated string, until they refresh it. That form now works too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CYHXFvWMCs1GUmRmpySqQ6
2026-10-14 18:18:02 -07:00
..
2026-10-14 05:12:31 +00:00
2026-10-14 05:28:40 +00:00
2026-10-14 05:28:46 +00:00

Teahub MCP

Teahub's MCP (Fly app green-tea-mcp, https://mcp.teahub.xyz/mcp) against the Gitea at GITEA_URL. Sign-in is Gitea's OAuth (Gitea signs people in with GitHub or nostr), and every tool acts with the caller's own Gitea token: no service token, no allowlist, nothing that outruns the caller's own permissions. Reads and writes are bounded, and no tool deletes a repository, branch, file, issue or comment.

Env: GITEA_URL, PUBLIC_URL, ALLOWED_HOSTS; secrets GITEA_OAUTH_CLIENT_ID, GITEA_OAUTH_CLIENT_SECRET (an OAuth2 application on the Gitea with redirect PUBLIC_URL/auth/callback), JWT_SIGNING_KEY. State: /data (FastMCP's OAuth store).

Tools (29), all acting as you. Their parameters are typed, so a bad argument is refused before Gitea is asked anything.

  • Issues and pull requests: tea_issues, tea_issue_get/create/edit, tea_issue_comments/comment, tea_labels, tea_label (add or remove by name), tea_pull_get (branches, mergeability, checks, diff), tea_pull_create, tea_pull_review, tea_pull_merge (keeps the head branch).
  • Repositories and organisations: tea_whoami, tea_repo, tea_repo_edit (description, website, visibility, default branch, archived), tea_repo_create, tea_org_create, tea_org_repo_create, tea_org_add_member (name the team), tea_hook_create (one hook per URL).
  • Files: tea_tree, tea_file_get, tea_file_change, tea_commit (up to 50 files, text or base64, 3 MB in all), tea_branch_create.
  • Actions: tea_actions (recent jobs, each linking its run), tea_workflow_dispatch, tea_secret_set (never echoed), tea_variable_set.

New repositories are private unless asked otherwise, and labels must already exist. Gitea 1.24 has no API that lists a run's jobs, so there is no log tool; tea_actions links each run's page, where the logs are.

Tests: from mcp/, python -m unittest discover -s tests (a fake Gitea; needs requirements.txt).