Gives Claude seven tools to orchestrate on-chain automation workflows on Base and Ethereum mainnet without holding user keys. You compose trigger-action-condition graphs in natural language (price alerts, whale watching, DCA schedules, snipe-and-flip strategies), the agent calls ctrl_create_workflow to build it, then ctrl_activate generates an EIP-5792 batch that deploys a personal vault contract with immutable spending caps. A keeper fleet executes your rules forever under those caps. The block catalog exposes 24 primitives including Clanker/Bankr pool sniping, Cypher swaps, balance checks, and Telegram notifications. Useful when you want persistent DeFi automation that survives beyond a single agent session, with on-chain guardrails and one-click kill switches.
the mcp for on-chain automation. sign once, agent does the rest, forever.
ctrl is workflow automation for on-chain actions on base. you compose trigger → action → condition graphs in plain english, sign one batch to deploy a vault + spending caps, and a keeper runs your workflow under those caps forever.
this is the mcp surface. agents talk to it. users sign in their wallet.
$ claude mcp add ctrl https://ctrl.build/api/mcp
or paste into your client's mcp config:
{
"mcpServers": {
"ctrl": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://ctrl.build/api/mcp",
"--header", "Authorization:Bearer ${CTRL_API_KEY}"],
"env": { "CTRL_API_KEY": "sk_ctrl_..." }
}
}
}
mint a key at ctrl.build/settings/api-keys.
seven tools. that's it.
| tool | what it does |
|---|---|
ctrl_get_vault_status | read user's vault address, balance, active rules |
ctrl_get_block_catalog | live list of every block + field schema |
ctrl_create_workflow | assemble + save a workflow draft from a prompt |
ctrl_activate | encode the eip-5792 batch the user signs to deploy |
ctrl_withdraw | encode the batch to pull funds out of the vault back to the user's wallet (eth, weth, or any erc-20) |
ctrl_fire_manual | fire a workflow once for testing — no waiting |
ctrl_get_execution_logs | basescan tx hashes, gas, status — keeper history |
triggers — time.interval, trigger.manual, price.above/below/change, pool.created (clanker / flaunch / zora / bankr), watch.whale, event.transfer, event.balance, trending.token
actions — cypher.swap, read.balance, notify.telegram, notify.discord, util.webhook
conditions — cond.price, cond.balance, cond.allowed_weekdays, cond.time_window
utilities — util.delay, util.note, util.log, util.stop, util.snapshot
the agent calls ctrl_get_block_catalog first to see the live shape. every block id maps 1:1 to keeper execution.
drop these into your agent and watch:
milady in the name, 0.005 eth each, auto-sell at 2x"vault-direct model. agent never holds keys.
maxPerSwap + maxPerDay. enforced by the vault contract.pauseVault() halts everything; revokeRule(id) kills one workflow. both 1-tx, user-callable.pool.created runs goplus honeypot + tax + score checks before any swap.verified contracts on base:
works with any mcp client. tested with:
~/.claude.json~/Library/Application Support/Claude/claude_desktop_config.json~/.cursor/mcp.jsonmit
makafeli/n8n-workflow-builder
danishashko/make-mcp
io.github.us-all/airflow
io.github.infoinlet-marketplace/mcp-workflow
io.github.evozim/automation-weaver