Skip to main content
On this page

Developers

MCP server and tools

Connect Claude, ChatGPT, Claude Code, Codex or Cursor to Kater, and see every tool, prompt and rule your agent gets.

Audience
Business teams, data teams and platform admins
Prerequisites
  • A Kater account
  • Claude, ChatGPT, Claude Code, Codex or Cursor

The Kater MCP server gives your own AI agent governed access to your company’s data. Your agent answers questions from saved queries and shared models, builds apps and workspaces, and asks before it changes anything. Kater runs no chat of its own: you keep working in the agent you already use.

Find your address

Open Profile › AI app, or go to /profile#ai. Connect your agent there asks for your AI provider, when your organisation allows more than one, and the app to Open prompts in. Then it shows your organisation’s MCP address, with that app’s own button or command. The address ends in /mcp. Until an agent is connected, Ask covers its box with Connect your agent, and Connect in Profile opens this section.

In a Claude organisation or a ChatGPT workspace, an admin adds Kater for everyone first, and each person then only connects. Admins find the addresses, the AI providers your organisation allows and the steps for each provider on Set up the Kater MCP.

Connect your agent

  1. Open Claude’s connectors.

    Select Add to Claude. Claude’s connectors open, in Customize › Connectors, with the address copied.

  2. Connect Kater.

    Select Connect on Kater. If your admin has not added Kater, and you use a plan of your own, add a custom connector and paste the address.

  3. Sign in.

    Claude asks you to sign in to Kater. This works for claude.ai and the Claude desktop app.

  1. Open ChatGPT’s plugins.

    Select Add to ChatGPT. ChatGPT’s Plugins open, with the address copied.

  2. Connect Kater.

    Select Kater and connect. If your admin has not added Kater, and you use a plan of your own, add a custom MCP server and paste the address. You do not need to turn on Developer mode first. ChatGPT allows custom MCP servers on its Business, Enterprise and Edu plans, on the web only. On a Pro plan, ChatGPT uses only the tools that read.

  3. Sign in.

    Sign in to Kater with your own account when ChatGPT asks.

  1. Add the server.

    Run this in a terminal:

    Terminal window
    claude mcp add --transport http kater <address>
  2. Sign in.

    Run /mcp in Claude Code to sign in. Claude Code in VS Code reads the same setting.

With a Claude Team or Enterprise account, Claude Code also gets your organisation’s Kater connector, with tools named mcp__claude_ai_Kater__<tool>. The Kater that you add with claude mcp add names them mcp__kater__<tool>.

  1. Add the server.

    Run this in a terminal:

    Terminal window
    codex mcp add kater --url <address>
  2. Sign in.

    If Codex does not ask you to sign in, run codex mcp login kater. The Codex CLI, the Codex IDE extension and Codex in the ChatGPT desktop app share ~/.codex/config.toml, so one command adds Kater to all three.

  1. Add the server.

    Select Add to Cursor. Cursor opens to add the Kater MCP.

  2. Sign in.

    Sign in when Cursor asks.

  1. Open your local copy.

    Go to the root of your local copy.

  2. Start the agent.

    Run kater agent claude or kater agent codex. It writes the MCP settings for that folder and starts the agent with Kater’s tools.

The status in Profile › AI app follows along: Waiting for Claude, then Claude connected. Ask opens its box as soon as an agent is connected.

The Ask panel with its composer, Generate prompt, the starters and the Open in row of agent icons
Ask writes prompts for the agent you connected.

Manage connected agents

Open Profile › Agents to see every agent that works with you.

Profile, Agents section with the Share my open pages with my agents switch and connected agents
Profile › Agents.
  • Share my open pages with my agents. When on, your agent can see your Kater tabs, open a page in one and read the rows on screen.
  • Disconnect. Kater then refuses that agent’s calls. Reconnect lets it back in.

Profile › AI app holds your AI provider, the app Kater opens your prompts in, and Connect your agent. See Change your AI app.

Hosted and local servers

HostedLocal
Runs askater serve --mode remote, behind PropelAuth sign-inkater serve, over stdio by default
ReadsThe content store, through your accessYour local copy
Sign-inYour agent signs in with OAuth. The token works only for /mcp and is never passed on.Your kater login session
Warehouse queriesRun on the Kater serverAlso run on the Kater server

The hosted server checks access exactly as the portal does. For several local clients at once, kater serve --transport http serves on 127.0.0.1 behind the token in KATER_MCP_TOKEN.

Tools

ToolTitleWhat it does
kater_startStartThe first call of every conversation. The agent gives the person’s request word for word as question, and a summary of the request with its topic, its intent and the metrics it is about. The admin Dashboard counts them in What people ask, and admins read them in Conversations. Returns the audit thread id, Kater’s rules, the object index, the context files to read and the person’s front tab.
update_audit_threadUpdate Audit ThreadReplace the thread’s goal and context. For each new question the person asks in the same conversation, the agent gives its words as question.
katerRun a CommandRun one kater CLI command as the person. It writes only in their brainstorm folder.
kater_applyRun a Command That Changes ContentThe same, for real changes after the person says yes. Every write returns its change and how to undo it.
globDiscover FilesFind files by path pattern.
grepSearch File ContentsSearch content and Kater’s guides in guides/.
search_catalogSearch Model MetadataSearch labels, descriptions, tags and business questions.
explain_fieldExplain a FieldHow a field is computed.
read_fileRead a FileRead a known file or guide.
read_rowsRead More RowsPage through a run’s rows, held for 30 minutes.
write_fileWrite a FileCreate or replace a file. Kater SQL is compiled first and refused on error.
edit_fileEdit a FileOne replacement, refused if the file changed since it was read.
delete_fileDelete a FileDelete a file the person owns in their own folder.
list_accessible_workspacesList Accessible WorkspacesThe person’s private workspaces and the connection workspaces they can read.
create_workspaceCreate Private WorkspaceA new private workspace, optionally from a model.
update_workspace_modelUpdate Workspace ModelSave a hand-written workspace.sql.
validate_query_contract_draftValidate Query Contract DraftCompile an unsaved query.
publish_query_contractPublish Query ContractSave a validated query.
run_query_templateRun a Query TemplateRun a legacy query template.
run_insight_templateRun an Insight TemplateRun a query, then an insight template over its rows.
query_operational_logsQuery Operational LogsRead Kater Logs.
run_audit_query_templateRun an Audit Query TemplateRun an allowlisted audit report over recorded MCP calls.

The guide vfs://guides/content-layout.md explains the content layout and the safe way to change it. The agent reads it with read_file.

How your agent changes things

  • Try first, then ask. With kater, the agent writes only in your private brainstorm folder. Real changes go through kater_apply, which your agent runs only after you say yes.
  • Every write can be undone. Each change returns an undo, and History shows it in the portal.
  • Some commands stay in your terminal. The agent cannot run login, logout, auth, debug, serve, worker, git, job, init, agent, vscode, scope, parse, retry or execution, and of admin it runs only admin conversations. From new, it makes workspaces, queries, charts, apps, fields, tests and scratch files, and not semantic models, DB datasets or Kater datasets. It can file a promotion request for you.
  • Every conversation is audited. Each one is an audit thread. People with audit:read read them on the Conversations page or with kater admin conversations, and query the calls with kater logs audit.

Prompts are your starters

Every starter in your library is also an MCP prompt, so you can start it by name in your agent. In Claude Code, type /mcp__kater__ and the starter’s name.

StarterClaude Code prompt
Brief me/mcp__kater__brief-me
Tour my data/mcp__kater__tour
Build an app/mcp__kater__build-app-ui
Why did it change?/mcp__kater__deep-analysis

Each starter is a skill or workflow under a connection’s ai_tools/, or under your own. Read and edit them in AI Tools › Skills and AI Tools › Workflows. See Starters for the full list.

The Agents Skills page with the build-app-ui skill open in the Markdown editor
The build-app-ui skill, the build contract your agent follows for apps.

The rules your agent reads first

Your agent calls kater_start first in every conversation. Most clients do not give an MCP server’s instructions to the model, so Kater puts nothing important there. The result of kater_start holds all that the agent needs:

FieldWhat it holds
audit_thread_idThe ID that every other tool needs.
rulesKater’s operating rules. They are the same for every organisation.
objectsThe object index: what a person asks for, the object that answers it, where it lives, and its guide.
contextThe paths of the context files that have content. The agent reads each one with read_file.
warehousesEach connection and its warehouse.

Kater’s rules tell the agent to ground each figure, read the context first, read the guide before it makes an object, use one workspace, try things in brainstorm/ and ask before it changes anything else, search for a measure before it makes one, and compile before it says it is done.

Your own rules

rules.md at the content root holds your organisation’s own rules. When the file has content, context lists it and the agent reads it with read_file. Kater’s rules win on grounding figures and on asking before a change. Your rules win on everything else.

rules.md
# Our rules
- Call yourself "your data assistant".
- Revenue is net of refunds and tax.
- Use finance's definition when two sources disagree, and say so.

context also lists these files when they have content:

  • about.md at the content root, about the company.
  • connection_context.md and ai_tools/skills/query-authoring.md of each connection the person can read.
  • The person’s own about.md in each of those connections.

Keep rules.md short

rules.md has no size limit, but your agent follows a short file better. Move detail into connection_context.md or a skill.

Guides and paths

The agent reads a Kater guide with read_file and its vfs://guides/NAME.md path, such as vfs://guides/dashboard.md. The object index names the guide for each object. A path that starts with vfs:// is a file in your content. The guides are in guides/. They are Kater’s, the same for every organisation, and nobody can change them.

Each tool description is at most 2,048 characters, because clients cut it there. The server does not start when a description is longer.

The name your agent shows

The server calls itself Kater, with Kater’s mark, for every organisation. Your agent lists one Kater entry, whichever organisation you sign in to. When two Kater entries are on in one agent, such as two organisations or two stacks, a prompt that Kater writes names the portal it came from, and the agent uses the entry whose kater_start answers that portal. Tool titles name only the action, such as “Run a Command”.

If something looks wrong

  • “This Kater has no MCP address set up yet.” Your Kater server has no MCP address. Ask your platform admin.
  • The agent’s calls are refused. The agent was disconnected. Select Reconnect in Profile › Agents.
  • “Your organisation does not allow Codex with Kater.” Your organisation does not allow that app’s AI provider. Ask an admin to allow it on Admin › MCP. See Set up the Kater MCP.
  • The agent cannot see your page. In Profile › Agents, make sure Share my open pages with my agents is on.
  • The agent ignores a rule. Check that the rule is in rules.md at the content root, and that the agent called kater_start. Kater’s rules win on grounding figures and on asking before a change.

Next steps