Skip to content
Raw Markdown
5 min

Connect and ask from an MCP client

Cassis works with any client that supports remote MCP servers over Streamable HTTP. Add one server URL, authenticate, and the agent answers from your ontology with the SQL attached.

Prerequisites: a Cassis account (a demo account counts) and an MCP-compatible client.

Add the server

The endpoint is the same in every client: https://app.getcassis.com/mcp/, using Streamable HTTP. Add it as a remote MCP server. If the client supports MCP OAuth, it opens a browser for sign-in. A non-interactive client can use an API key as a bearer token instead.

Here are the exact steps for three common clients:

bash
claude mcp add --transport http cassis https://app.getcassis.com/mcp/

Or commit a project-scoped config, which carries no secret and works for everyone on the repo:

.mcp.json
{
"mcpServers": {
  "cassis": {
    "type": "http",
    "url": "https://app.getcassis.com/mcp/"
  }
}
}

Settings, then Connectors, then Add custom connector. Paste https://app.getcassis.com/mcp/.

Settings, then MCP, then Add new MCP server. Paste https://app.getcassis.com/mcp/, transport HTTP.

With OAuth, the client stores and refreshes the token after you sign in. An expired session simply starts the flow again.

Terminal · your repository
$ claude mcp add --transport http cassis https://app.getcassis.com/mcp/
Added HTTP MCP server cassis to local config
$ claude
cassis · authentication required, opening browser…
app.getcassis.com
Authorize Claude Code
Signed in as you. Claude Code will be able to ask questions, read project status and the source schema, and triage issues on your projects.
Authorize Cancel
cassis · connected

Check the connection

Ask your client something that makes it call Cassis:

Which Cassis projects can you see?

The agent calls list_projects and returns the projects your Cassis account can reach.

Ask a real question

Type it as you would to a colleague:

Claude Desktop · Cassis (MCP)
Which product categories had the highest delivered GMV last year?
Plan awaiting approval
Rank product categories by delivered GMV in the most recent full calendar year in the data, returning the top categories with their GMV in EUR.
Assumptions
· “Last year” means the most recent full calendar year in the data
· Category means PRODUCTS.CATEGORY, not department
· Return the top 10
Uses STALLORA.ORDER_ITEMS, STALLORA.ORDERS, STALLORA.PRODUCTS · business_volume
Approve the plan to run it, or tell me which assumption to change.
Yes, run it.
The top delivered-GMV categories are led by bed_bath_table (€6.96M), followed by watches_gifts (€6.76M) and health_beauty (€6.57M).
sql: SELECT category, SUM(delivered_gmv_eur) ... ORDER BY delivered_gmv_eur DESC LIMIT 10
objects_used: STALLORA.ORDER_ITEMS, STALLORA.ORDERS, STALLORA.PRODUCTS
rows: 10 · ontology_version: 3

MCP client example

User: Which product categories had the highest delivered GMV last year?

Plan awaiting approval: Rank product categories by delivered GMV in the most recent full calendar year in the data, returning the top categories with their GMV in EUR.

  • “Last year” means the most recent full calendar year in the data.
  • Category means PRODUCTS.CATEGORY, not department.
  • Return the top 10.

User: Yes, run it.

Answer: The top delivered-GMV categories are led by bed_bath_table (€6.96M), followed by watches_gifts (€6.76M) and health_beauty (€6.57M). The response also contains SQL, ten rows, objects used, and the pinned ontology version.

The client renders the plan in the conversation. When Cassis needs your decision, correct or approve the assumptions before it runs. The answer includes SQL, results when the project has a live warehouse, provenance, and the published ontology version. Presentation differs by client; the response contract is in ask_question.

How it behaves

Ask normally
The client chooses ask_question; you do not need to write tool calls.
Decisions wait
A question with a genuine fork returns a plan and waits for your approval. Reply with a correction when an assumption is wrong.
Follow-ups keep context
Same chat, new question. The chat stays pinned to the ontology version it started on.
Answers come from the published ontology
Not from a colleague’s branch, and not from an unmerged pull request. get_project_status says which version you are on.

What the agent cannot reach

An MCP agent can ask questions, inspect project status and the warehouse schema, and triage detected issues. It cannot read or edit the ontology; that work happens in a repository checkout.

An agent that changes definitions uses a checkout and opens a pull request: Curate a git-managed project. The full list is the capability matrix.

Non-interactive agents and CI use an API key instead. A scheduled job or a custom agent that cannot open a browser sends a long-lived key as a bearer token to the same endpoint. See API keys.