The Cassis MCP server
A hosted MCP server that lets AI agents ask business questions against your data, grounded in the ontology. Works with any MCP client: Claude Code, Claude Desktop, Cursor, or a custom agent. Your data team curates the ontology in the web app, users and agents query through the MCP, and both see the same definitions, context, and answers.
Connecting
- In your MCP client, open the settings and add a new MCP server.
- Paste
https://app.getcassis.com/mcp/as the server URL. - The client opens a browser window for OAuth. Sign in with your Cassis credentials. Done.
The token is stored by the client and refreshed automatically. Expired tokens return 401 and the client re-runs OAuth without user action.
https://app.getcassis.com/mcp/Where to paste the URL
claude mcp add --transport http cassis https://app.getcassis.com/mcp/, or /mcp inside the CLI.Tools
Three tools today. Users type in natural language; the MCP client picks the right tool and calls it under the hood.
Health check. The client calls this to verify the MCP server is reachable and the token is valid. No user input.
Returns a pong response:
Lists the Cassis projects the authenticated user can access. The client calls this to discover which project to query. No user input.
Returns project names and IDs:
Ask a natural-language question about a project's data, or continue a chat. Cassis translates the question into SQL using the ontology, runs it, and returns the answer plus the SQL and results. For complex or expensive questions, Cassis surfaces a plan first and waits for explicit confirmation before executing.
Parameters
Passed by the client, not typed by the user.
now group by circuit). Ignored when execute_pending_plan=true. Defaults to empty string.true to execute the plan surfaced on the previous turn (when status="needs_execution"). Requires chat_id and the user's explicit approval. Defaults to false.Response shape
"answered", "needs_execution", or "error".status="answered". Result rows are capped at 100.status="needs_execution". The client shows it to the user and waits for approval.status="error".Examples
Below is what Cassis returns to the client. Each MCP client (Claude Desktop, Claude Code, Cursor, a custom agent) renders the response in its own chat UI. The user never sees the raw payload.
The user types:
Who won the most races in 2023?
Cassis returns:
execute_pending_plan=true.The user types:
Compare total points scored by all drivers in 2022 vs 2023, including sprint results.
Cassis returns a plan:
The user approves. The client re-calls the tool with execute_pending_plan=true. Cassis executes and returns:
chat_id from the previous turn, so users can ask follow-ups naturally.The user types:
Now break it down by constructor for 2023.
Cassis picks up the conversation and returns:
Limits and errors
Want to try Cassis?
Access is limited to selected design partners today. Leave your email to be notified when it opens up.
Stay tuned