Other MCP clients

Most MCP clients need the same three pieces of information:

  1. A command that starts the local icuvisor binary.
  2. Non-secret environment variables such as athlete ID, timezone, and transport.
  3. A restart or new conversation so the client reloads the MCP tool catalog.

Keep the intervals.icu API key out of client JSON. Store it with icuvisor setup or provide it through a process environment only for deliberate headless fallback.

Standard stdio JSON

Use this shape for clients that accept a Claude-style mcpServers map, including Cursor and many local-agent clients:

{
  "mcpServers": {
    "icuvisor": {
      "command": "/Applications/icuvisor.app/Contents/MacOS/icuvisor",
      "env": {
        "INTERVALS_ICU_ATHLETE_ID": "i12345",
        "ICUVISOR_TIMEZONE": "America/Sao_Paulo",
        "ICUVISOR_TRANSPORT": "stdio"
      }
    }
  }
}

For clients that ask for only one server entry, copy the inner icuvisor object.

Client notes

ClientWhat to configure
CursorAdd an MCP server named icuvisor with the command path and non-secret environment values above. Restart the relevant workspace or MCP session.
ContinueAdd the server to Continue’s MCP configuration using the same command/env shape. Restart Continue after editing config.
ZedAdd icuvisor as a local MCP server. Use an absolute binary path and non-secret environment variables.
Pi or another MCP-aware clientIf it supports local stdio servers, use the stdio JSON. If it requires an HTTP URL, use Streamable HTTP on loopback.

HTTP URL for clients that require it

Start icuvisor in HTTP mode:

ICUVISOR_TRANSPORT=http /Applications/icuvisor.app/Contents/MacOS/icuvisor

Use this MCP endpoint:

http://127.0.0.1:8765/mcp

Use loopback by default. A LAN bind exposes an unauthenticated MCP server to any host that can reach the address.

Verify

After saving the configuration, start a new client conversation and ask a simple profile question such as What's my FTP? A working setup should call get_athlete_profile.