fitlog-mcp
Enables Alexa+ to act as a voice interface for FitLog, allowing users to log workouts, query workout history and personal records, get daily workout plans, and track protein intake through the MCP server.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
fitlog-mcp
An Alexa+ add-on backed by a self-hosted MCP server that gives Alexa a memory for your training: log sets by voice, ask for personal records, get today's plan and protein targets.
Built for the Alexa+ track of the Amazon "Build, Ship, Shape" Developer
Hackathon 2026: a working self-hosted MCP server implementing MCP spec
2025-11-25 over Streamable HTTP with the Alexa+ authentication
checklist (OAuth 2.1 + PKCE account linking, 401s with no
WWW-Authenticate header, RFC 9728 Protected Resource Metadata) — zero
dependencies, MIT licensed.
Run it (3 steps, no pip install)
Requires Python 3.9+.
git clone https://github.com/hahahahahahahahah6/fitlog-mcp.git
cd fitlog-mcp
python3 server.pyThe server listens on http://127.0.0.1:8765 (/mcp endpoint).
Environment variables:
Variable | Default | Purpose |
|
| listen port |
|
| listen address |
|
| sqlite database path |
| (empty) | static bearer token for local dev / Inspector |
| (empty) | public HTTPS URL (e.g. cloudflared tunnel); used for OAuth metadata |
| (empty) | owner password for the |
| (empty) | extra trusted |
Related MCP server: super-hevy-mcp
Connect an MCP client
The endpoint is http://127.0.0.1:8765/mcp (Streamable HTTP). Every /mcp
request needs a bearer token — either from the OAuth flow or the static
FITLOG_API_TOKEN you set for local dev. Example client config
(Claude Code / MCP Inspector style):
{
"mcpServers": {
"fitlog": {
"type": "http",
"url": "http://127.0.0.1:8765/mcp",
"headers": { "Authorization": "Bearer <FITLOG_API_TOKEN>" }
}
}
}Or verify with the MCP Inspector CLI:
FITLOG_API_TOKEN=devtoken python3 server.py &
npx -y @modelcontextprotocol/inspector --cli \
--transport http --server-url http://127.0.0.1:8765/mcp \
--header "Authorization: Bearer devtoken" \
--method tools/listConnect Alexa+ (official path)
Expose the server over HTTPS, e.g. with a cloudflared quick tunnel:
cloudflared tunnel --url http://127.0.0.1:8765, and setFITLOG_PUBLIC_URL=https://<your-tunnel>.trycloudflare.com. Also setFITLOG_OWNER_PASSWORDto a strong password — public exposure without it is refused at startup, and the/authorizepage will ask for the password before showing the Approve button.Install the Alexa AI CLI (
npm install -g @alexa/alexa-aior per the MCP toolkit quickstart).Put your tunnel URL into
addon-package/addon.json(integrations[0].config.endpoints.default.uri, plus/mcp).cd addon-package && alexa-ai deploy— deploys to the development stage.Enable the add-on in the Alexa+ web simulator, link the account (OAuth 2.1 + PKCE flow against your server), then talk to it: "Ask FitLog to log my bench press: 5 reps at 185 pounds."
The demo video script (demo/demo_script.md) follows exactly this path.
No Alexa developer account? Use the bundled web simulator instead
(simulator/): an Echo-style page that runs the same OAuth
account-linking flow and calls the same 6 tools over Streamable HTTP, with
a live JSON-RPC inspector. ./simulator/start.sh, then open
http://127.0.0.1:8799/.
Tools
Tool | What it does |
| Record a session; announces new PRs. |
| Past sessions, newest first |
| Heaviest set + best estimated 1RM per lift |
| Today's plan from the built-in 5-day split |
| Log protein toward the 160–190 g target |
| Targets vs. what's logged today |
Resources: program://current (the training split), pr://all (PR table).
Spec compliance notes
Streamable HTTP:
POST /mcpfor JSON-RPC, optionalGET /mcpSSE stream,DELETE /mcpterminates the session (Mcp-Session-Id).Alexa+ auth checklist: OAuth 2.1 authorization-code + PKCE (S256);
/.well-known/oauth-protected-resource(RFC 9728) and/.well-known/oauth-authorization-servermetadata; authorize and token requests must carry the canonical MCPresourceparameter. Unauthenticated requests to/mcpget HTTP 401 with noWWW-Authenticateheader, as required.Originheader is MUST-validated: a present-but-untrusted origin gets HTTP 403 (DNS-rebinding mitigation). Loopback origins are trusted by default.MCP-Protocol-Versionis checked on every post-initialize request: unsupported versions get HTTP 400.JSON-RPC batches are rejected (removed in spec 2025-11-25) with
-32600over HTTP 400.Tool annotations (
readOnlyHint/destructiveHint/idempotentHint/openWorldHint) are set per the 2025-11-25 spec.
Tests
python3 -m unittest discover -s tests # 51 tests, incl. the full OAuth PKCE round-tripLicense
MIT — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Fitness MCP for coaches and gyms: build workouts and read clients' training from live Superset data.
Talk to your own gym log. Reps is a free workout tracker for iPhone and Android; connect it to Claude, ChatGPT or any MCP client and ask about your workout history, personal records, exercise progression, weekly summaries, routines and training plan. The assistant can also save a new routine, edit one, save a whole plan, add custom exercises and exercise notes, always after you confirm in the chat. It cannot log a workout or delete your history. Requires a free Reps account created in the app; you sign in with a one-time email code.
Adaptive running coach MCP server — training data, plans, and recovery for AI assistants.
Agent-first strength-training platform across iOS, Web & MCP: read & write workouts, PRs & plans.
Related MCP Servers
- FlicenseAqualityDmaintenancePersonal workout coach MCP server that logs exercises in natural language, tracks progress with SQLite, and provides coaching signals like estimated 1RM and volume trends.6-
- AlicenseNot gradedqualityDmaintenanceMCP server for the Hevy workout tracker that enables users to query training history, log workouts, and manage routines via natural language.MIT
- AlicenseNot gradedqualityBmaintenanceSelf-hosted fitness tracking MCP server that gives AI assistants access to your nutrition, training, weight, sleep, and accomplishment data via 77 tools and 5 resources. Enables natural-language logging and querying of personal health metrics through Claude or ChatGPT.72 npm1BSD 2-Clause "Simplified"
- AlicenseNot gradedqualityBmaintenanceEnables logging workouts, sets, routines, food, water, and macros through natural-language chat in any MCP client, with OAuth-based secure access and timezone-aware daily tracking.ISC