# Tally MCP — the workout app Claude can write to [Tally](https://tallyworkout.app) is a fast, offline-first workout tracker for iOS. This is its **first-party remote MCP server**: Claude reads your real training history and **writes planned workouts back into the app**. Talk through your program in conversation — exercises, sets, progressions — say *"put it in Tally,"* open the app, and your week is planned, synced, and ready to log. Most fitness MCPs are read-only. Tally's is a full round-trip: plan conversationally, log at the gym, and Claude respects your gym-floor edits — anything you change in the app is treated as truth and never overwritten. **Server URL:** `https://mcp.tallyworkout.app/api/mcp` **Transport:** Streamable HTTP · **Auth:** OAuth 2.1 (PKCE, dynamic client registration) **Cost:** free — bring your own Claude subscription ## Requirements - The free [Tally iOS app](https://apps.apple.com/us/app/tally-workout-app/id6758911546) + a Tally account - claude.ai custom connectors require a Claude **Pro or Max** plan - Full setup guide with screenshots: [tallyworkout.app/connect](https://tallyworkout.app/connect) ## Connect ### claude.ai (one-time, in a browser) 1. Copy the server URL: `https://mcp.tallyworkout.app/api/mcp` 2. In a browser, open [claude.ai](https://claude.ai) → **Settings → Connectors → Add custom connector**. Name it **Tally**, paste the URL. 3. Sign in with your Tally account when asked. Then try: *"Plan my next week of training and add it to Tally."* Connectors can't be added from Claude's phone app itself; once added in a browser they sync to Claude's mobile and desktop apps automatically. ### Claude Code ```bash claude mcp add --transport http tally https://mcp.tallyworkout.app/api/mcp ``` ### Any MCP client (Streamable HTTP + OAuth 2.1) ```json { "mcpServers": { "tally": { "type": "http", "url": "https://mcp.tallyworkout.app/api/mcp" } } } ``` ## Tools | Tool | Access | What it does | |---|---|---| | `get_training_context` | read | Training snapshot: recent sessions, streaks, patterns — grounds programming advice in what you actually did | | `get_workout_history` | read | Completed workout history (sets, reps, weights) over a date range | | `get_planned_workout` | read | Read a planned day (for read-modify-write edits) | | `search_exercises` | read | Search Tally's exercise library (800+ movements) | | `plan_workout_day` | write | Create or replace one planned day | | `plan_workout_range` | write | Plan a multi-day range — whole weeks or blocks in one call | All tools carry MCP annotations (`readOnlyHint` / `destructiveHint`). Writes never touch days you've edited in the app (`user_modified` protection), and every write is stamped with a batch id for auditability. ## Privacy & security - OAuth 2.1 with PKCE; access is scoped to **your** Tally account and revocable anytime from Claude's connector settings. - Server-side analytics record tool names and timing only — never workout content. - Privacy policy: [mcp.tallyworkout.app/privacy](https://mcp.tallyworkout.app/privacy) ## About this repo The server implementation lives in Tally's backend (closed source); this repo is the connector's public home — docs, config snippets, and the [issue tracker](../../issues) for bug reports and tool requests. Built by [Vegh Labs LLC](https://tallyworkout.app). Not affiliated with or endorsed by Anthropic; Claude is a trademark of Anthropic, PBC.