Get Help

CAT and AI agents

Everything you do with CAT, a coding agent can do too: Claude Code, Cursor, Codex, Copilot CLI and others. This page says why that works, which CAT commands an agent reaches for inside its work, and why CAT has no MCP server.

A coding agent writes code, runs a command, reads what came back and corrects itself. CAT fits that way of working without anything added to it, for three reasons.

Why CAT suits an agent

The project is plain text in your repository. A CAT project is a .cat.yaml file: the data sources, the tests, the outputs. A test is a few lines of YAML with a query and an expectation. That is exactly the kind of file an agent writes well, and it goes through the same review and version control as the rest of your code.

The CAT CLI answers with exit codes and messages. Every catcli verb prints its result to standard output and ends with an exit code. catcli run exits 0 when every test passed and 10 when any test did not. An agent does not have to parse a screen to know what happened.

This documentation is the source of truth. Every documentation page of this site has a markdown twin and the whole site is indexed in llms.txt. The CAT skills are short procedures that send the agent to the page that owns each fact, so the agent reads the reference instead of remembering it. How to install the skills is on Use CAT from a coding agent. CAT Pilot, the assistant inside CAT Studio, comes with its own copy of the skills; there is nothing to install for it.

What the agent runs

An agent rarely works on tests alone. It is redesigning an incremental load, moving a table, changing a pipeline, and the CAT tests are how it proves that work right, in the same session and next to the code change. Nothing about that changes. With the CAT CLI and the skills installed, the agent gains a few commands it reaches for when the work touches CAT, the same ones a person would type at a terminal. These are those commands, in the order they usually come up.

The commands below are the CAT CLI’s. An agent uses CAT CLI as its command-line tool unless there is a reason to choose the PowerShell or Python module instead. The usual reason is your own work: you live in PowerShell or write your scripts in Python, so the module is what you have installed, and a script the agent writes for you, one that acts on the results, belongs next to your other scripts. Every step below in all three tools is on CLI, PowerShell and Python side by side.

Look at the project. catcli show --summary prints what CAT sees: the data sources, where the tests come from, the suites. catcli show --tests lists every test that would run. This is also the first check after any edit of the project file: a project that does not open fails here, with the message, before anything runs.

Look at the data. catcli exec -d <data source> -c "<query>" runs one query through the project’s own connection and prints the rows. Through a pipe it prints plain CSV. An agent uses it to see the columns and a sample of the values before it writes a test, and to try the query of a failing test.

Write or change the test. The agent edits the .cat.yaml file, or the file, sheet or table the project loads tests from. The skills tell it which of the five expectations answers which question.

Run. catcli run runs everything. catcli run -f "<pattern>" runs the tests whose name matches, so a new test can be tried alone. With -l Error the message of every test that did not pass is printed as the test finishes: what was expected, what came back, a sample of the offending rows.

Read the message and the exit code. Exit code 0 means every selected test passed. 10 means at least one test ended Failed, Error or Inconclusive, or that the filter selected no test at all. 1 means the project could not be opened or the run aborted, and 2 to 8 mean the sign-in and plan check refused the run before any test ran. The message says which of the three the agent is looking at: the data broke the rule, the test or the connection is broken, or the plan left the test unrun. Then back to the work: fix the test, fix the load or the table the test was about, or report the data problem, and run again.

catcli show --summary
catcli exec -d AERO_PROD -c "SELECT TOP 20 * FROM DIM.AIRLINES"
# ... the agent writes the test into the project file ...
catcli show --tests -f "*AIRLINES*"
catcli run -f "*AIRLINES*" -l Error

The exit codes and every option are on the CAT CLI reference; the four results a test can end with are on Results.

Which plan the agent needs

CAT CLI and the two modules are in the Team and Enterprise plans. An agent running on your machine is interactive use, so the Team plan covers it: the agent signs in with your personal access token in CAT_PORTAL_TOKEN. CAT recognises the agent it was started by (Claude Code, Copilot CLI, Cursor, Codex, Gemini CLI and others) and shows it in catcli instance; that is informational only and never changes what the agent may do. An agent that runs CAT in a pipeline or a scheduler is unattended use, and that needs the Enterprise plan and a license key.

Put the token or the key into the agent’s environment or secret settings, never into the prompt: a key the agent handles as text ends up in the conversation, the transcript and the command log. See Apply a license key.

Why there is no CAT MCP server

CAT has no MCP server, and we do not plan one: it would not give an agent anything it needs. A coding agent already runs commands and reads what they print. It runs git, dotnet test or pytest directly, with no server in between, and the result is as good as it gets. CAT is a test runner of the same kind, and CAT CLI is its command.

A well-documented command is the better way for an agent to work with CAT. The agent runs exactly what you would type, so you can read its commands in the transcript and run any of them yourself. The same command works in your terminal, in a script and in a pipeline, so what the agent tried in the session is what the pipeline runs later. And there is nothing to set up in the agent beyond CAT CLI itself.

What an MCP server adds is a catalogue of the tools and their parameters. The CAT skills give the agent that catalogue, each command linked to the page that documents it, in the form every agent already loads.

What to use instead: install the CAT CLI and the CAT skills next to each other, in the project if you work in a team, and let the agent run catcli, or the PowerShell or Python module if that is what you work with. The page Use CAT from a coding agent has the three ways to get the skills and what to do when the agent and the CLI are on different versions.