Know when the APIs
under your agents move.
Tiltmeter learns the shape of every third-party API you depend on and tells you, your CI and your agents the moment it changes.
$
✕ billing_customers 200 · 13 ms breaking · 3 changes
| breaking | $.data[*].balance | integer → string |
| breaking | $.data[*].phone | removed · possibly renamed to phone_number |
| info | $.data[*].phone_number | new field |
Claude The vendor most likely renamed phone to phone_number. Code doing math on balance will break now that it is a string. Read phone_number and parse balance as a number.
No spec. It learns from real responses.
No noise. Only what breaks a consumer.
No guessing. Agents ask has_drifted over MCP.
For agents
Agents ask before they act.
An MCP server lets Claude Code, Cursor or any LangChain agent check an API before trusting its response.
claude mcp add tiltmeter -- tiltmeter serve
has_drifted("billing_customers")
drifted true max_severity breaking changed phone → phone_number checked 2 min ago
Install in your agent
One line. Or let your agent do it.
claude mcp add tiltmeter -- uvx tiltmeter serve --config tiltmeter.yaml
{
"mcpServers": {
"tiltmeter": {
"command": "uvx",
"args": [
"tiltmeter",
"serve",
"--config",
"tiltmeter.yaml"
]
}
}
}
codex mcp add tiltmeter -- uvx tiltmeter serve --config tiltmeter.yaml
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"tiltmeter": {
"type": "local",
"command": [
"uvx",
"tiltmeter",
"serve",
"--config",
"tiltmeter.yaml"
],
"enabled": true
}
}
}
Set up Tiltmeter (https://github.com/tiltmeter-dev/tiltmeter) in this project so you can check whether the third-party APIs we use have changed before relying on them.
1. Find the external HTTP APIs this codebase calls that return JSON.
2. Create tiltmeter.yaml in the project root with one endpoint per API. Use ${ENV_VAR} placeholders for keys, never literal secrets. Docs: https://github.com/tiltmeter-dev/tiltmeter/blob/main/docs/configuration.md
3. Add .tiltmeter/ to .gitignore and run `uvx tiltmeter check` once to record the baselines.
4. Register the MCP server for yourself, using the command: uvx tiltmeter serve --config tiltmeter.yaml
5. Add to CLAUDE.md or AGENTS.md: "Before relying on a third-party API, call the tiltmeter has_drifted tool for it."
Show me the endpoints you chose before writing the file.
How it works
- ObserveCall the API. Turn the JSON into a shape: types, required fields, enum values.
- CompareCheck it against a rolling baseline. Only real contradictions count.
- WarnFail CI, ping Slack, explain it with Claude, tell your agents. Once.
For CI
An exit code that knows what broke.
Nothing leaves your machine.
Secrets stay in your environment. Response bodies are never stored, only their shape. One SQLite file, no account.