Review: Add hello-world MCP endpoint with get_schedule tool
Verdict: READY
Re-review of board item #992. Previous review returned false-negative NEEDS_REFINEMENT because it searched inline project page content instead of querying notes directly. This review verifies all artifacts exist as first-class pal-e-docs entities.
Template Completeness
- [x] Type
- [x] Lineage
- [x] Repo
- [x] User Story
- [x] Context
- [x] File Targets
- [x] Acceptance Criteria
- [x] Test Expectations
- [x] Constraints
- [x] Checklist
- [x] Related
Traceability
- [x] story:ai-assistant label — AI Business Assistant
- [x] story note verified —
story-westside-basketball-ai-assistantexists in pal-e-docs (id 1518, note_type: user-story, status: active) - [x] arch:dataflow label — Data Flow: Westside Basketball
- [x] arch note verified —
arch-dataflow-westside-basketballexists in pal-e-docs (id 394, note_type: architecture) - [x] Forgejo issue — forgejo_admin/basketball-api#454, state: open
File Targets
- [x]
src/basketball_api/mcp_server.py— new file, does not exist yet (correct) - [x]
src/basketball_api/routes/mcp.py— new file, does not exist yet (correct) - [x]
src/basketball_api/main.py— exists, usesinclude_routerpattern (18 routers registered) - [x]
pyproject.toml— exists, nomcpdependency yet (correct for adding) - [x]
src/basketball_api/routes/schedule.py— exists, hasget_schedulefunction at line 206, usesget_dbdependency pattern. Correctly marked as DO NOT TOUCH.
Repo Placement
OK. Issue filed on forgejo_admin/basketball-api, all file targets are in basketball-api. Single-repo scope.
Dependencies
No blockers. Schedule infrastructure is fully shipped: data model (#629), CRUD API (#630), public endpoint (#653) are all in done column. The MCP tool wraps existing query patterns — no upstream dependencies pending.
Acceptance Criteria
6 criteria, all verifiable by an agent. Test expectations include unit, integration, and manual test instructions. Run command provided:
pytest tests/ -k test_mcp. Solid.Blast Radius
Low. No existing MCP code in basketball-api. New
/mcp route is additive — does not modify any existing routes. Issue explicitly states existing REST endpoints must be unaffected. No auth on hello-world scope (noted as intentional, follow-up ticket for auth).Note: The no-auth MCP endpoint will be internet-accessible via Tailscale funnel. Per
feedback_funnel_requires_auth.md, the follow-up auth ticket should be tracked. The issue's Lineage section correctly identifies this as "Stage 1 of 4" with auth coming in a subsequent stage.Decomposition Assessment
4 file targets (2 new, 2 modified), 1 repo, 6 AC. Estimated agent time: 3-4 minutes (single dependency add, single route registration, one new module with one tool). No decomposition needed.
Recommendation
No action needed. Ticket is ready for dispatch.