Skip to content

Setup

import { Steps, Aside, Tabs, TabItem } from ‘@astrojs/starlight/components’;

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.


Choose the client you want to use:

  1. Open Connectors settings

    In claude.ai go to Settings → Connectors → Add custom connector.

  2. Enter the connection details

    FieldValue
    NameFitRepo (or anything you like)
    Remote MCP server URLhttps://mydatafor.life/api/mcp-server
    OAuth Client IDfitrepo (required by claude.ai — any non-empty value works)
    OAuth Client SecretYour 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.

  3. Save and verify

    Click Add. Claude will handshake with the server — you should see a green connected indicator and the 7 FitRepo tools listed.

  4. Test it

    Start a new conversation and ask:

    “How many activities do I have in FitRepo?”

    Claude will call get_activities and report back. If you see an error, check the troubleshooting section below.

  1. 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
  2. Edit the Claude Desktop config

    Open (or create) the MCP configuration file:

    PlatformPath
    macOS~/Library/Application Support/Claude/claude_desktop_config.json
    Windows%APPDATA%\Claude\claude_desktop_config.json

    Add the FitRepo server to the mcpServers object:

    {
    "mcpServers": {
    "fitrepo": {
    "command": "npx",
    "args": ["-y", "@fitrepo/mcp-server"],
    "env": {
    "FITREPO_API_KEY": "your-api-key-here"
    }
    }
    }
    }

    Replace your-api-key-here with the key you copied in Step 1.

  3. Restart Claude Desktop

    Fully quit and relaunch Claude Desktop. The FitRepo server icon should appear in the toolbar (a plug icon).

  4. Test it

    Ask Claude:

    “How many activities do I have in FitRepo?”

    Claude will call get_activities and report the count.

  1. 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-here with the key from Step 1.

  2. Verify

    Terminal window
    claude mcp list
    # fitrepo https://mydatafor.life/api/mcp-server http
  3. Test it

    Start a Claude Code session and ask:

    “How many activities do I have in FitRepo?”


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.


“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:

Terminal window
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.