v3.1.0 - MCP Apps: inline fitness charts
Three MCP Apps
tp-mcp now ships the official MCP Apps extension (io.modelcontextprotocol/ui): on Apps-capable clients, three tools render interactive UI inline in the conversation alongside their normal text output.
| Tool | App |
|---|---|
tp_get_fitness |
Interactive CTL/ATL/TSB performance-management chart |
tp_get_weekly_summary |
Week card: per-day load bars, planned vs completed, totals |
tp_get_workout |
Interval-profile viewer for structured workouts (summary fallback otherwise) |
Client support status (July 2026)
Claude clients currently connect to local stdio servers over the pre-2026 protocol (verified against Claude Code 2.1.220: legacy initialize, protocolVersion 2025-11-25), and the Apps extension is only visible via the 2026-07-28 server/discover path - so the apps will not render in Claude yet. They ship wired and ready; the moment your client adopts the 2026-07-28 spec for local servers they light up. Tool text output is complete and unchanged either way.
Security
App HTML is fully self-contained (no external requests) and renders every API-derived string - workout titles, coach/athlete comments, step names - via textContent. Each app is tested in headless Chromium against a hostile-string fixture (script/onerror payloads render as inert text). Guard tests enforce no-external-request and no-innerHTML on every registered app.
Also
- Every tool's text behaviour is identical to 3.0.0 (apps only add
_metaandui://resources) - README:
pip install -e ".[browser]"corrected (the old bare form could someday resolve against PyPI)
Full plan and verification trail: docs/mcp-2026-07-28-adoption-prd.md.
