StrideMoor MCP Access

Connect StrideMoor to any MCP-capable client and let its agent read your activity and health data
中文

What this is

MCP (Model Context Protocol) is the standard that lets an agent client discover and call external tools. StrideMoor runs an official MCP endpoint: once your client is connected you can simply ask "how did I sleep last night?" or "did I run more than last week?", and the client turns that into calls against your StrideMoor data.

It shares the same auth and scopes as the REST API — same key, same data, same rate limits. Only the calling convention differs: with REST you write the requests yourself, with MCP the client discovers the available tools for you.

Typical use: connect StrideMoor to the assistant client you already use and have it read your sleep and recovery every morning to draft that day's training advice.

1. Before you start: get a key

  1. Open the StrideMoor app → Me → Help menu → Agent Access.
  2. The feature is off by default and must be enabled by you, with the consent notice confirmed.
  3. Generate a key and copy it — the key is shown only once and cannot be viewed again.
  4. The key does not expire; you can reset it or turn access off at any time. Resetting invalidates the old key immediately.

2. Endpoint

Point your MCP client's remote / HTTP server URL at:

https://api.8keya.com/mcp
The service is stateless: the server stores nothing, caches nothing and holds no long-lived key — every request is authenticated by the key you send with it. Responses are plain JSON (not an SSE stream).

3. Authentication

The MCP client sends the key in a request header (there is no separate login flow):

X-API-Key: sk_sm_...xxxx
The key is equivalent to read access to your data. Never commit it to a repository, screenshot it, or share it. If you suspect a leak, reset it in the app right away.

4. Client configuration

Any MCP client that supports custom request headers can connect. With OpenClaw, for example (verified working):

openclaw mcp add stridemoor \
     --url https://api.8keya.com/mcp \
     --transport streamable-http \
     --header X-API-Key=sk_sm_...xxxx

Command-line clients such as Claude Code support custom request headers too — see their own help for the exact flags.

Claude Desktop / web / mobile cannot connect at present: those clients initiate the connection from Anthropic's cloud, and their configuration UI accepts only a URL plus OAuth credentials — there is no custom header field, so X-API-Key cannot be sent. They need OAuth, which StrideMoor does not offer yet.

5. Available tools

The client lists the available tools automatically. The read-only tools below (11 of them) are all available as soon as the key is valid:

ToolDescription
get_capabilitiesWhat this key can do: scopes, rate limits, available endpoints
get_overviewToday at a glance: steps, distance, calories, last run, recovery
get_todayAll body metrics for a given day (steps, sleep, VO2max …), with units
get_weekly_reportThis week vs last week: distance, duration, count, pace
get_recent_runsSummaries of your most recent runs
get_health_summaryHealth aggregates over the last N days: steps / distance / calories / sleep / VO2max / ECG count. Summaries only, no raw time series, and no heart rate / SpO2 / temperature (those raw points come from the REST /health/data-points endpoint)
list_runsPaginated list of your runs
get_run_detailOne run in detail by ID (pace, heart rate, cadence …)
list_bookmarksYour bookmarked runs
list_routesPaginated list of routes
list_favorite_routesYour favourite routes

Write tools (off by default)

The 8 tools below only appear when the key carries the matching write scope — so the capabilities the model sees match what the key can really do, and it will not call a tool that is bound to be rejected. Write scopes are not granted by default; tick "Also grant write access" in the app under Agent Access. Writes only ever affect your own data (bookmarks, follows) and cannot create, modify or delete your runs, health data, points or account settings.

ToolRequired scopeDescription
bookmark_runwrite:bookmarksBookmark a run
unbookmark_runwrite:bookmarksRemove a run bookmark
favorite_runwrite:favoritesAdd a run to favourites
unfavorite_runwrite:favoritesRemove a run from favourites
favorite_routewrite:favoritesFavourite a route
unfavorite_routewrite:favoritesUnfavourite a route
follow_userwrite:followFollow a user (you cannot follow yourself)
unfollow_userwrite:followUnfollow a user

6. Rate limits

Same as the REST API: by default 60 requests per minute and 5000 per day per key. Exceeding it returns 429.

7. Troubleshooting

Only the read-only tools show up — did my write scopes not take effect?
They did. The remote endpoint is stateless: on the first request it has not yet read your key's scopes, so it registers the read-only tools first (the write tools are added about 2-3 seconds later, and the client is notified to refresh its list). Reconnect a few seconds later, or refresh the tool list, and all tools appear. Whether write tools show up depends only on whether the key carries the matching write scope.

My own client (Python etc.) gets a 403?
Cloudflare sits in front of our endpoint and blocks the default Python client signature (HTTP 403, Error 1010). Send a normal User-Agent header (e.g. curl/8.0 or your own client name) and it works. Clients built on the official MCP SDKs are unaffected.

The client fails to connect or times out during initialisation?
Raise the connect / initialise timeout to 30 seconds or more: traffic goes through Cloudflare and carries a fixed 1-2 second added latency per request, so a default 5 second timeout can be too tight.

8. Privacy and disclaimer

Related

StrideMoor

粤ICP备19023441号-4