Connect your steps

steps-mcp is a Model Context Protocol server that gives an AI assistant read-only access to your step history. It runs locally on your own machine and talks to the StepsMCP API using a personal key you generate.

Prerequisites

  • Node.js 20 or newer
  • A StepsMCP Pro subscription (purchased in the iOS app)
  • An API key from your dashboard

There's no install step — npx fetches the package on demand.

Set up your client

Claude Desktop

Settings → Developer → Edit Config (claude_desktop_config.json)

{
  "mcpServers": {
    "steps": {
      "command": "npx",
      "args": [
        "-y",
        "steps-mcp"
      ],
      "env": {
        "STEPS_MCP_API_KEY": "sk_live_your_key_here"
      }
    }
  }
}

Restart Claude Desktop after saving.

Claude Code

Run this in your terminal

claude mcp add steps --env STEPS_MCP_API_KEY=sk_live_your_key_here -- npx -y steps-mcp

Cursor

~/.cursor/mcp.json for all projects, or .cursor/mcp.json in one project

{
  "mcpServers": {
    "steps": {
      "command": "npx",
      "args": [
        "-y",
        "steps-mcp"
      ],
      "env": {
        "STEPS_MCP_API_KEY": "sk_live_your_key_here"
      }
    }
  }
}

VS Code (GitHub Copilot)

.vscode/mcp.json in your workspace

{
  "servers": {
    "steps": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "steps-mcp"
      ],
      "env": {
        "STEPS_MCP_API_KEY": "sk_live_your_key_here"
      }
    }
  }
}

Note the key is `servers`, not `mcpServers`.

Other clients

Any tool that can launch a local stdio MCP server works, even if it isn't listed above. Use this same shape — most clients read it directly, or expect the equivalent in their own config file.

{
  "mcpServers": {
    "steps": {
      "command": "npx",
      "args": [
        "-y",
        "steps-mcp"
      ],
      "env": {
        "STEPS_MCP_API_KEY": "sk_live_your_key_here"
      }
    }
  }
}

Building your own client, or running the server somewhere unusual (a container, a different host)? Set STEPS_MCP_API_URL alongside STEPS_MCP_API_KEY to point it at a different base URL — this defaults to https://www.stepsmcp.com and normally doesn't need to be set. If you do set it, use the www. host: the bare domain redirects to it, and that redirect strips the Authorization header, which fails with a confusing “missing API key” error even though your key is correct.

Remote clients (Claude.ai, ChatGPT)

ChatGPT and Claude.ai's web connector don't run a local command — they connect to a URL and sign in over OAuth in the browser. Use the remote URL below instead of the snippets above.

https://www.stepsmcp.com/api/mcp

Paste that into the client's “Add custom connector” / “Custom MCP Server URL” field. It'll redirect you to sign in with your StepsMCP account and approve the connection — no key to copy or paste.

Available tools

All three tools are read-only. Nothing in this server can modify or delete your data.

ToolArgumentsReturns
get_daily_stepsdateStep count for a single day.
get_steps_rangestart_date, end_dateStep counts for each day across a date range, with totals.
get_steps_summaryperiodTotal, average and best day for the last week or month, plus the trend against the previous period.

Try asking

  • “How many steps did I take on August 3rd?”
  • “Chart my daily steps for the first two weeks of August.”
  • “Am I walking more this month than last month?”
  • “What day of the week do I walk the least? Look at the last month.”

About your key

  • The key is tied to your StepsMCP account. It is shown once, at creation, and stored only as a hash — we cannot recover it for you.
  • Revoke or rotate it any time from your dashboard. Revocation takes effect on the very next request.
  • Keys are read-only and rate-limited to 60 requests per minute.
  • If your Pro subscription lapses, the key stops working until you resubscribe.

Troubleshooting

MessageFix
STEPS_MCP_API_KEY is not setThe env block is missing from your config. Compare against the snippet for your client above.
Your API key was rejectedThe key was revoked or mistyped. Generate a new one on your dashboard.
Pro subscription requiredYour subscription lapsed. Resubscribe in the iOS app; the same key starts working again.
Rate limit exceededMore than 60 requests in a minute. Wait a minute and retry.