agent-setup
The response contract for agent-driven setup over MCP.
An agent in your repo calls an app's setup_* MCP tool, writes the
env vars and code it gets back, then polls verify_setup until the
first event arrives. You never open the dashboard.
Today every vendor ships its own onboarding skill because the setup response is untyped. agent-setup types it. One generic skill drives every conforming server, and a vendor implements two tools instead of writing prose.
The two tools
| tool | returns | rule |
|---|---|---|
setup_<kind> | Setup |
idempotent: same input returns the existing resource with created: false |
verify_setup({ id, since? }) | Verification |
waiting with a hint until the first event after since, then receiving |
What setup_project returns
{
"resource": {
"kind": "project", "id": "p_8f3k2q", "name": "acme-api",
"dashboard_url": "https://thermite.example.com/projects/p_8f3k2q"
},
"created": true,
"env": [
{ "name": "SENTRY_DSN", "value": "https://4b1c@thermite.example.com/p_8f3k2q", "secret": false }
],
"install": [
{ "target": "nextjs", "file_hint": "instrumentation.ts",
"packages": ["@sentry/nextjs"], "code": "import * as Sentry from ..." }
],
"compatible_with": ["sentry"],
"human_steps": [
{ "why": "Add a payment method", "url": "https://thermite.example.com/billing", "blocking": false }
],
"verify_with": "verify_setup"
}
secret: trueenv vars go to the env file, never to chat or git.compatible_with: if the repo already runs that SDK, the agent configures it instead of adding a snippet.human_stepsare things only a human can do: billing, OAuth consent. The tool still succeeds. Ablockingstep is shown before verification.sincestops a reused project's old events from verifying a new install.
For app vendors
Implement setup_<kind> and verify_setup on your MCP server and return these types.
cargo add agent-setup # Rust: serde + schemars, no runtime
bun add agent-setup # TypeScript: types + JSON Schemas
Host the vendor template
at https://yourapp.com/SKILL.md with your server URL filled in. Your users then paste one sentence:
Read https://yourapp.com/SKILL.md and set up YourApp
For agents
The generic skill is at agent-setup.oxidt.com/SKILL.md. A vendor file points you there; nothing to install. It detects the stack, calls setup, writes env and code, hands human steps to the user, and polls verify with backoff.
Schemas
Use them as the tools' outputSchema. Each carries its URL as $id.