MCP Server
Ask ChatGPT, Claude or Cursor about today's racing and get live FormFav data back. The fastest way is to add FormFav as a connector and sign in once — no API key to copy, no config file, no code.
Quick start: connect ChatGPT or Claude
Add FormFav as a custom connector and sign in with your FormFav account. It works on the free plan, and you never handle an API key.
https://api.formfav.com/mcpPaste the whole address, including https://. Some apps reject a bare domain.
ChatGPT
- Open ChatGPT's connector settings and add a custom MCP connector. Menu names and which plans can add one vary, so see OpenAI's help if you can't find it.
- Paste the server URL above.
- Set authentication to OAuth.
- Sign in to FormFav when prompted and approve access.
Claude claude.ai and Claude Desktop
- Go to Settings > Connectors and choose Add custom connector.
- Name it FormFav and paste the server URL above.
- Under Authentication, choose Sign in now.
- Under OAuth client, choose Register automatically (the setting we've tested; see the note below).
- Leave Request headers empty and add the connector.
- Sign in to FormFav when prompted and approve access.
Claude's OAuth client and sign-in settings
Then just ask
What a connected app can do
Which setup do I need?
Apps with a connector or custom-connector screen sign in with OAuth. Editors, command-line tools and scripts that read a config file send your API key instead.
| If you use | You sign in with | Go to |
|---|---|---|
| ChatGPT | FormFav account (OAuth) | Quick start: ChatGPT |
| Claude (claude.ai or Claude Desktop connectors) | FormFav account (OAuth) | Quick start: Claude |
| Claude Code | API key | Claude Code |
| Cursor | API key | Cursor |
| Claude Desktop via its config file | API key | Claude Desktop config |
| Your own code or another MCP client | API key (X-API-Key or Bearer) | API key setup |
| A local process on your machine | API key in an env var | Standalone setup |
What is MCP?
MCP (Model Context Protocol) is an open standard that lets AI assistants use external data sources as native tools. With FormFav connected, you can ask your assistant about tomorrow's races and it pulls live data from FormFav automatically. There is nothing to install for the hosted server: it runs at https://api.formfav.com/mcp.
API key setup (editors, command line, scripts)
Tools that read an MCP config file can't do a browser sign-in, so they send your API key in the X-API-Key header, the same as the REST API (or as an Authorization: Bearer token if a client only has that field). Pro users automatically get Pro tools; Free users are rate-limited against their own quota. Replace your_api_key_here below with a free key from formfav.com/get-api-key.
Claude Desktop (config file)
Claude Desktop's config file is stdio-only, so we bridge to the hosted HTTP server through the mcp-remote proxy. It's pulled on first run by npx — no manual install — but you do need Node.js on your machine.
Open Claude Desktop. If you don't see a Developer tab in Settings, enable it first: Help > Troubleshooting > Enable Developer Mode (one-time step). Then go to Settings > Developer > Edit Config and add:
{
"mcpServers": {
"formfav": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.formfav.com/mcp/",
"--header",
"X-API-Key: your_api_key_here"
]
}
}
}Connectors or the config file?
Claude Code
Add to .mcp.json in your project root:
{
"mcpServers": {
"formfav": {
"type": "http",
"url": "https://api.formfav.com/mcp/",
"headers": {
"X-API-Key": "your_api_key_here"
}
}
}
}Cursor
Cursor reads MCP servers from ~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project). Add:
{
"mcpServers": {
"formfav": {
"url": "https://api.formfav.com/mcp/",
"headers": {
"X-API-Key": "your_api_key_here"
}
}
}
}Alternatively, manage MCP servers via the UI at Settings > Tools & MCP > New MCP Server.
Get your API key
your_api_key_here with a free key from formfav.com/get-api-key. Free keys work for get_meetings and get_race_card (full form history, basic career stats). Pro keys unlock all 9 tools and enrich Free-tier tools with form badges, speed maps and full statistical breakdowns. See Subscription Tiers for the full comparison.Standalone Setup
Run the MCP server as a local process using uv. All tool calls use the single API key set in the environment.
{
"mcpServers": {
"formfav": {
"command": "uv",
"args": ["run", "python", "-m", "mcp_server"],
"cwd": "/path/to/formfav-mcp/src",
"env": {
"FORMFAV_API_KEY": "your_api_key_here"
}
}
}
}Setup steps
- Install uv
- Clone the
formfav-mcprepository - In Claude Desktop, enable the Developer tab if it isn't already visible: Help > Troubleshooting > Enable Developer Mode, then open the config via Settings > Developer > Edit Config
- Update
cwdto point to the cloned repo'ssrcdirectory - Replace
your_api_key_herewith your API key - Restart Claude Desktop — FormFav tools appear automatically
Shared key, shared quota
Available Tools
The MCP server exposes the following tools to your AI assistant:
| Tool | What it does | Tier |
|---|---|---|
get_meetings | List race meetings for a date | Free |
get_race_card | Full race form for a specific race (runners, barriers, jockeys, form) | Free |
get_predictions | ML win/place probability predictions | Pro |
get_race_results | Result of a race, or of every race at a meeting in one call | Pro |
get_jockey_stats | Jockey performance stats by track | Pro |
get_trainer_stats | Trainer performance stats by track | Pro |
get_track_bias | Barrier/box bias for a venue, per distance band or scoped by distance | Pro |
search_runner | Find a horse or greyhound by name | Pro |
get_runner_profile | Full career statistics for a runner | Pro |
Example Prompts
Once connected, try asking your AI assistant:
- •"What meetings are on tomorrow?"
- •"Show me the race form for Flemington Race 5 today"
- •"What are the model's win and place chances for Randwick Race 3?" (Pro)
- •"How does James McDonald perform at Moonee Valley?" (Pro)
- •"Is there a barrier bias at Flemington on soft tracks?" (Pro)
- •"Look up the career stats for Via Sistina" (Pro)
Worked examples
Longer questions that combine several tools. Each shows what the assistant does behind the scenes and what to keep in mind. You don’t need to name the tools; the assistant picks them.
Rank a race with your own rules
Free plan“Look at Flemington race 7 today. Tell me the track condition, then rank the field with my rules: penalise any runner carrying more than 58kg that’s drawn wider than barrier 9, and favour runners with a strong first-up record.”
How it works: one get_race_card call. The assistant reads each runner’s weight, barrier and first-up record (wins from starts) plus the track condition, then applies your rules itself.
- •FormFav supplies the numbers; the ranking is the assistant’s reasoning from your rules, not a FormFav prediction.
- •Barrier is the runner’s position after scratchings.
- •For the model’s own win and place probabilities, ask for
get_predictions(Pro).
Scan a card for a profile
Pro plan“Scan Caulfield tomorrow. For races between 1200m and 1400m, show me runners that are dropping in class and have won on a Soft or Heavy track.”
How it works: get_meetings for the date lists every race with its distance and class, so the assistant picks the races in range and calls get_race_card for just those. On Pro it reads each runner’s class fit (a drop or rise against the runner’s class rating) and its record on Soft and Heavy tracks.
- •Scope the scan to one meeting or a few venues. Each race is a separate call that counts against your daily quota.
- •Cards are available up to 7 days ahead, and the going shown for a future day can change before race day.
- •Class fit is a rating comparison, not a named class change such as “Group 3 to Benchmark 84”.
Does this setup suit?
Pro plan“Thunderbolt runs in Race 5 at Randwick on Saturday. Does the setup suit? Check its record on Soft and Heavy tracks, its first-up record and running style, and whether the barrier is a problem at that distance.”
How it works: search_runner finds the horse and get_runner_profile returns its stats and running style. get_race_card gives the barrier, the current track condition and the field’s speed map, and get_track_bias shows how barriers have performed at that venue and distance.
- •Name the venue and race number. FormFav can’t yet look up a runner’s next start by itself.
- •You get the current track condition and weather, not a forecast.
- •FormFav doesn’t send alerts, so to re-check scratchings or the going later, ask again.
Troubleshooting
- •Claude says it can't connect or sign in — Open the connector's settings and set Authentication to Sign in now and OAuth client to Register automatically, which is the combination we've tested.
- •The connector is added but returns "Invalid or missing API key" — It was added without signing in (for example No sign-in). Remove it and add it again with a sign-in option so you're sent to formfav.com to approve.
- •The app rejects the URL — Paste the full address,
https://api.formfav.com/mcp, includinghttps://and with no trailing text. - •"Invalid or missing API key" — In hosted mode, check the
X-API-Keyheader value in your config. In standalone mode, checkFORMFAV_API_KEYis set correctly. - •A connector asks you to sign in again, or says authorization failed — The connection was disconnected, or went unused for about 30 days. Remove the connector in the app and add it again to re-approve.
- •"You already have 10 connected apps" — Disconnect one from the Connected apps list in your API keys dialog, then approve the new one.
- •"Pro subscription required" — The tool requires a Pro plan. Upgrade at formfav.com/pricing.
- •Tools not appearing — Restart your MCP client after editing config. Check the developer console for connection errors.
- •Claude Desktop: "spawn npx ENOENT" —
mcp-remoteneeds Node.js. Install from nodejs.org (LTS) and restart Claude Desktop. - •Standalone: cannot connect — Verify
cwdpoints to the correct directory anduvis installed and on your PATH.
Next Steps
- AI Agents guide — Python and JavaScript agent loop examples
- CLI Usage — terminal access to FormFav data
- Predictions endpoint — win/place probability model (Pro)
- Subscription Tiers — compare Free, Pro, and Enterprise features