Connecting Njord to Claude, ChatGPT, and other AI assistants
Njord exposes its API as a Model Context Protocol (MCP) server, so AI assistants that support MCP can read your Njord Analytics data on your behalf. You sign in once via your existing Njord account; from then on you can ask the assistant questions in plain language and it pulls the data, runs the analysis, and writes the answer.
This page covers what to connect, how to do it for each supported assistant, and what to expect.
What you can ask
Once connected, the assistant has access to the same data you see in the Analytics web app — events, races, log data segments, instrument time-series, race reports, and the full GraphQL API surface. Questions that work well:
- "What was my average boat speed during race 3 yesterday?"
- "How did my starts compare across the weekend? Which one was the worst, and why?"
- "Plot wind direction across the windward leg of the last race."
- "What was the biggest tack loss I had at the regatta last month?"
- "Compare my upwind VMG to the rest of the fleet across all races on Saturday."
The assistant decides which data to fetch and how to analyse it. Big datasets are downloaded to its sandbox and analysed with Python where possible.
Read-only by default; scoped to your account
The MCP connection is read-only by default. The assistant cannot upload data, edit races, delete anything, or change account settings. It only sees boats you already have permission to access in Analytics — granting MCP access does not extend your visibility.
Write access (on request). Customers who want their assistant to be able to modify data (e.g. add comments, update race times) can request to be added to the write allowlist by emailing support@sailnjord.com. Once enabled, your assistant gains a mutate_graphql tool that lets it modify your data. Most assistants will ask for explicit confirmation before each modification — review carefully and don't auto-approve.
Connection details
Claude, ChatGPT, and most other MCP assistants can register the Njord automatically using the following settings:
| Setting | Value |
|---|---|
| Server URL | https://api.prod.sailnjord.com/mcp |
| OAuth mode (if prompted) | Dynamic Client Registration |
| OAuth scopes (if prompted) | Select all scopes the assistant offers (typically "Read Njord data" and "Modify Njord data"). Deselect the write/modify scope if you want to ensure that your AI assistant never modifies or deletes data in your Njord account. |
When you add the connector, the assistant registers itself with Njord, then redirects you to the Njord sign-in page. Sign in with the email and password you use for app.sailnjord.com, grant access, and you're done.
If your assistant asks for a Client ID (manual fallback)
A few MCP hosts don't support automatic registration and ask you to enter an OAuth Client ID by hand. In that case use:
| Setting | Value |
|---|---|
| OAuth Client ID | njord-mcp |
Everything else — server URL, scopes, and the sign-in step — is identical.
Choosing an assistant
Several MCP-compatible assistants work with Njord. They differ in how they handle large datasets, which affects what kinds of analytical questions land cleanly.
- Claude.ai (web) — works well for analytical work via a Custom Connector.
- Claude Code — works well for analytical work.
- ChatGPT (Plus / Pro / Enterprise) — works well for analytical work.
- Claude Desktop — fine for conversational queries and small analyses. Not currently recommended for data pulls larger than ~250 KB.
If you mostly ask conversational questions ("when was race 3?", "show me the leaderboard"), any of the above works. If you want serious analytical work on a full day or regatta of data, prefer Claude.ai, Claude Code, or ChatGPT. These tools are able to execute custom analysis scripts (written by the AI, e.g. in Python) for much more advanced analytics.
Setup by assistant
The exact UI labels in each app change over time. The pattern is always the same: find the "custom MCP server" or "custom connector" setting, paste the server URL, sign in to Njord when prompted.
Claude (Claude.ai, Claude Desktop, Claude Code)
In Claude.ai or Claude Desktop, open Connectors under the Customize sidebar item, then Add custom connector.
- Server URL:
https://api.prod.sailnjord.com/mcp
That's the only field you need — Claude registers itself automatically, so there's no client ID to enter. Sign in to your Njord account when prompted; the OAuth flow runs the first time the assistant uses the Njord tools.
ChatGPT
In ChatGPT (Plus, Pro, or Enterprise), go to Settings → Apps & Connectors → Advanced settings → Developer mode → ON, then Create app.
- Name: Njord Analytics
- Connection:
https://api.prod.sailnjord.com/mcp - Scopes: select all
- Save, then click Connect to start the sign-in flow
ChatGPT registers itself automatically — there's no Client ID or callback URL to configure. It shows an "unverified" or developer-mode warning during connect — that's normal for any MCP server not yet listed in the OpenAI app directory. We're working on getting Njord into the directory; until then the developer-mode flow is the only path.
Tips for getting better answers
- Give the assistant a date or event reference. "Race 3 yesterday" / "Saturday's racing" / "the J/70 Worlds last month" — the assistant has discovery queries built in for all of these.
- Mention which boat if you have several. "On [boat name], what was..."
- Be specific about what to compare. "Compare my starts across the regatta on below line at gun" works better than "how were my starts?"
- For nuanced analysis ask for the underlying data first. "Pull the CSV for race 3 and show me the wind shift pattern" lets the assistant do real numerical analysis instead of summarising.
- When you don't know the answer to a question yourself, ask the assistant to show you the data it used. Most assistants will surface the GraphQL query they ran, and you can ask follow-up questions in plain language.
Troubleshooting
"My assistant says the file URL is expired but I just got it." The signed file links Njord returns expire after 10 minutes. If the assistant takes a long time between fetching the URL and downloading it, it can hit this. Tell the assistant to "request the data again" — it will call the tool fresh.
"My assistant says it can't reach the URL." This is most common in Claude Desktop. For large data analysis, switch to Claude.ai, Claude Code, or ChatGPT. For small conversational queries, Claude Desktop is fine.
"My assistant returned an answer but the times look wrong." Times in the raw data are in UTC. The assistant should convert to the event's local timezone before showing them, but occasionally it forgets. Ask it: "convert the times to the event's local timezone" and re-run.
For anything else, contact support@sailnjord.com — say which assistant you're using and what you asked.