Setup
Step 1 — Generate an API key
Section titled “Step 1 — Generate an API key”Open FitRepo Settings and scroll to the MCP API Key card.
Click Generate Key. Your key is displayed once — copy it now and store it somewhere safe (e.g. a password manager). FitRepo only stores a hash; if you lose the key you’ll need to regenerate it.
Step 2 — Connect your client
Section titled “Step 2 — Connect your client”Choose the client you want to use:
-
Open Connectors settings
In claude.ai go to Settings → Connectors → Add custom connector.
-
Enter the connection details
Field Value Name FitRepo(or anything you like)Remote MCP server URL https://mydatafor.life/api/mcp-serverOAuth Client ID fitrepo(required by claude.ai — any non-empty value works)OAuth Client Secret Your API key from Step 1 The connector uses OAuth 2.0 Client Credentials. Your FitRepo API key goes in OAuth Client Secret — the OAuth Client ID field is required by claude.ai but its value doesn’t affect authentication.
-
Save and verify
Click Add. Claude will handshake with the server — you should see a green connected indicator and the FitRepo tools listed (see the Overview for the full list).
-
Test it
Start a new conversation and ask:
“How many activities do I have in FitRepo?”
Claude will call
get_activitiesand report back. If you see an error, check the troubleshooting section below.
No API key needed — you sign in to FitRepo instead. Requires a ChatGPT plan with developer mode (Plus, Pro, Business, Enterprise or Education).
-
Turn on developer mode
In ChatGPT open Settings → Security and login and turn on Developer mode.
-
Create the app
Go to Plugins, click Add (top right) → Create MCP App, and fill in:
Field Value Name FitRepoConnection Server URL → https://mydatafor.life/api/mcp-serverAuthentication OAuth -
Set the OAuth client
Open Advanced OAuth settings and set:
Field Value Registration method User-Defined OAuth Client OAuth client ID fitrepoOAuth client secret leave blank Token endpoint auth method noneLeave everything else as ChatGPT filled it in — it discovers FitRepo’s sign-in and token URLs automatically.
-
Create and sign in
Tick I understand and want to continue, click Create, and sign in to FitRepo when prompted. On the FitRepo screen click Authorize.
-
Test it
Start a new chat, add FitRepo from the tools menu, and ask:
“How many activities do I have in FitRepo?”
ChatGPT gets its own key, listed as ChatGPT under MCP API keys in Settings — revoke it there to disconnect. Connecting ChatGPT doesn’t affect a claude.ai connection. To reconnect later, delete the app in ChatGPT and repeat steps 2–4.
-
Check Node.js is installed
The local MCP server runs via
npx— Node.js 18+ is required.Terminal window node --version# v20.x.x or similar -
Edit the Claude Desktop config
Open (or create) the MCP configuration file:
Platform Path macOS ~/Library/Application Support/Claude/claude_desktop_config.jsonWindows %APPDATA%\Claude\claude_desktop_config.jsonAdd the FitRepo server to the
mcpServersobject:{"mcpServers": {"fitrepo": {"command": "npx","args": ["-y", "@fitrepo/mcp-server"],"env": {"FITREPO_API_KEY": "your-api-key-here"}}}}Replace
your-api-key-herewith the key you copied in Step 1. -
Restart Claude Desktop
Fully quit and relaunch Claude Desktop. The FitRepo server icon should appear in the toolbar (a plug icon).
-
Test it
Ask Claude:
“How many activities do I have in FitRepo?”
Claude will call
get_activitiesand report the count.
-
Add the server
Run this command once — Claude Code will store it in your global MCP config:
Terminal window claude mcp add fitrepo \-t http \https://mydatafor.life/api/mcp-server \--header "Authorization: Bearer your-api-key-here"Replace
your-api-key-herewith the key from Step 1. -
Verify
Terminal window claude mcp list# fitrepo https://mydatafor.life/api/mcp-server http -
Test it
Start a Claude Code session and ask:
“How many activities do I have in FitRepo?”
-
Store your API key in an environment variable
Add this to your shell profile (e.g.
~/.zshrcor~/.bashrc) so the key stays out of config files:Terminal window export FITREPO_API_KEY="your-api-key-here"Replace
your-api-key-herewith the key from Step 1, then open a new terminal. -
Add FitRepo to the Codex config
Open (or create)
~/.codex/config.tomland add:[mcp_servers.fitrepo]url = "https://mydatafor.life/api/mcp-server"bearer_token_env_var = "FITREPO_API_KEY"This connects to the remote server over HTTPS — no local install needed. Codex reads the key from
FITREPO_API_KEYand sends it as a Bearer token. -
Verify
Terminal window codex mcp listfitreposhould appear in the list. -
Test it
Start Codex and ask:
“How many activities do I have in FitRepo?”
Revoking access
Section titled “Revoking access”Go to Settings → MCP API Key and click Revoke Key. The key is immediately invalidated — any connected client will start receiving 401 errors on the next tool call.
Troubleshooting
Section titled “Troubleshooting”“Unauthorized” / 401 errors : Check that your API key matches exactly what was shown when you generated it. Keys are case-sensitive. Try regenerating a new key in Settings.
Server doesn’t appear in Claude Desktop : Make sure you fully quit Claude (not just closed the window) and relaunched. Check that your JSON config is valid — use a JSON validator if unsure.
npx not found (Claude Desktop)
: Claude Desktop may not inherit your shell PATH. Provide the full path to npx: "/usr/local/bin/npx" (find it with which npx).
Connector shows “failed” in claude.ai
: Confirm the URL is exactly https://mydatafor.life/api/mcp-server (no trailing slash) and your API key is in the OAuth Client Secret field (not Client ID). You can test the OAuth token endpoint directly:
curl -s -X POST https://mydatafor.life/api/oauth/token \ -d 'grant_type=client_credentials&client_secret=YOUR_API_KEY'# Should return: {"access_token":"...","token_type":"Bearer","expires_in":3600}Stale data : The MCP server fetches live from the database on every tool call — there’s no cache. If data looks stale, check that your Wahoo connection is healthy in Settings.