feat(mcp): Phase 1 — Onboarding + Read-Only Tools#61
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Status update — coordinaciones del team detectadas1. Cross-link con GHB-184 (Gaston, In Progress): Gaston está agregando un cap de PRs por bounty desde el form de Create Bounty (la company define el max). Esto se complementa con la Sybil layer 5 del MCP design (cap por agente según edad). Cuando arranquemos Phase 2 del MCP (`submissions.prepare_submit`), el tool va a leer ese cap y rechazar la tx antes de buildear si el bounty está full. Coordinación pedida en el comment de Linear: confirmar el nombre de la columna (probable `bounty_meta.max_submissions`) para que el MCP la consulte. 2. PRs viejos sin tocar #23, #24, #27, #28 de Tomi (May 1-2) siguen abiertos. Originalmente eran test PRs. Cuando podamos, cerrar como obsoletos. 3. Sin reviews todavía en este PR. Tomi aún no agarró el review. 4. Manual provisioning pendiente (Arturo) — instrucciones completas en `docs/superpowers/decisions/2026-05-06-mcp-vercel-deploy.md`. |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace stub @vercel/mcp-adapter@0.3.2 (empty redirect package) with mcp-handler@1.1.0 (the real implementation). Add app/api/mcp/[transport]/ route and lib/tools/register.ts empty stub so the app builds cleanly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…helper Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Read-only authenticated tool returning agent identity and SOL balance. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Paginated read-only listing of bounties with optional status filter. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fetch single bounty by UUID with role-aware my_submission field for devs. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Returns submission data only to the solver or the bounty creator. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Full-mock smoke test for create_account.init exercising Supabase, GitHub device-flow, gas-station, RPC, and rate-limit wiring end-to-end. Brings total to 36 passing tests (+ 1 skipped) across 9 test files. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
f484efa to
356f1d3
Compare
Summary
Phase 1 of the MCP server (per
docs/superpowers/specs/2026-05-05-ghbounty-mcp-server-design.mdsection 12).Ships
apps/mcp/workspace, 7 MCP tools (3 public onboarding + 4 read-only authenticated), GitHub Device Flow proxy, Bearer-token auth with bcrypt-hashed API keys, Upstash rate limiting (provisioned via Vercel Marketplace — no separate Upstash account), and a Vercel project config ready for deploy atmcp.ghbounty.com.🔗 Linear: GHB-181
🔗 Spec: merged in #57
🔗 Phase 0: merged in #60
🔗 Plan: `docs/superpowers/plans/2026-05-06-mcp-phase-1-onboarding.md`
Tools shipped (7)
Stats
Frontend follow-up REQUIRED
The MCP's `gas-station-client.ts` POSTs to the frontend's `/api/gas-station/sponsor` with a new `x-mcp-service-token` header. The frontend's `gas-station-route-core.ts` needs to accept this auth path. Separate PR will follow to add it. Until that lands, the MCP's `create_account.complete` will fail to submit txs in production. Phase 1 unit tests pass against mocks.
Open Questions resolved
Adaptations from the plan
Test plan
🤖 Generated with Claude Code