OCR Races MCP documentation

OCR Races has a remote MCP server so an AI assistant such as Claude or ChatGPT can find races, keep your race list and plan your training on your behalf. For a walkthrough with screenshots, see Connect to Claude or ChatGPT.

Overview

  • Endpoint: https://mcp.ocrraces.com/mcp
  • Transport: Streamable HTTP, JSON-RPC 2.0 over POST.
  • State: stateless. Every request carries its own credentials; the server keeps no session between calls.

Authentication

The server uses OAuth 2.1 with PKCE. The authorization server is Supabase Auth, and clients register themselves with dynamic client registration, so there is no client ID or secret to paste.

  • Scope: email.
  • Tokens: access tokens last 1 hour and are renewed with a refresh token by the client.
  • Discovery: protected-resource metadata is served at https://www.ocrraces.com/.well-known/oauth-protected-resource/mcp.
  • Revoking access: in OCR Racesunder Settings → AI Integration, or in the assistant's connector list.

On first connect you are sent to a OCR Races page where you sign in and approve what the assistant may do. That page is on goalrace.com: OCR Races is a Goal Race site, and your account works on both.

Tools

Write tools only change your own data. Read tools never modify anything.

ToolAccessWhat it does
get_todayReadYour local date and time, today's sessions and your next race with days to go. The anchor for relative dates.
get_scheduleReadSessions in a date range; defaults to the current week.
get_activityReadOne session by ID, with notes and actuals.
get_weekly_summaryReadPlanned and completed sessions and minutes for a week, by type.
get_upcoming_tripsReadYour future races with days to go and start weekday.
add_activityWriteCreate a training session.
move_activityWriteReschedule a session to another date or time.
update_activityWriteChange the plan of a session: title, type, time, duration, distance, notes.
log_completedWriteMark a session done (or undo), with actuals, feeling and notes.
remove_activityWriteDelete a session.
search_racesReadFind upcoming races by text, country, series, nearby city, distance, tags and month.
list_race_filtersReadThe exact filter values (countries, series, tags, months) the search accepts.
save_raceWriteAdd races found by search to your list; duplicates are reported, not repeated.
add_custom_raceWriteAdd a race the search does not list, with a name, date and optional place and link.

Data handling

  • What we store: your account email, the races on your list and your training sessions.
  • What we log per tool call: the tool name, the parameters the assistant sent, how long the call took and any error, for product analytics.
  • What we do not log: what a tool returns, such as your calendar, is not sent to analytics.
  • Where: data is stored in the EU.
  • Deletion: delete your account in Settings, or email support@ocrraces.com.

The full policy is in the Privacy Policy.

Rate limits and errors

Failures are returned as JSON-RPC 2.0 error objects with a numeric code and a message: -32700 parse error, -32600 invalid request, -32601 method not found, -32602 invalid parameters and -32603 internal error. A tool that cannot do what was asked, for example an unknown activity ID, returns a message the assistant can read and act on.

When the access token is missing, invalid or expired, the server answers 401 with a WWW-Authenticate header that points to the protected-resource metadata above, so a compliant client starts the sign-in flow or refreshes its token on its own. There is no published per-user quota; normal assistant use is well within what the server handles.

Support

Questions or problems: support@ocrraces.com. See also the Privacy Policy and the Terms of Service.