Files
teahub/mcp
teahubxyzandClaude Opus 5.5 40706b8af4 mcp 2.1: Actions runs and job logs, now that prod runs Gitea 28
tea_actions lists runs from /actions/runs (ids, numbers, workflows, conclusions) and tea_action_logs reads one run's jobs, their steps and the last lines of each job's log. Gitea 1.24 had neither endpoint; 28 has both. Tried against a copy of prod's data on 28 before this commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CYHXFvWMCs1GUmRmpySqQ6
2026-10-14 19:46:49 -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 (30), 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 runs), tea_action_logs (a run's jobs, steps and log tails), tea_workflow_dispatch, tea_secret_set (never echoed), tea_variable_set.

New repositories are private unless asked otherwise, and labels must already exist. The Actions tools need Gitea 1.25 or later (prod runs 28).

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