CTRL
FreeNot checkedThe on-chain automation layer. Live on Base. Automate your workflows with the CTRL MCP. Sign once. Execute forever.
About
The on-chain automation layer. Live on Base. Automate your workflows with the CTRL MCP. Sign once. Execute forever.
README
ctrl-mcp
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.
prompt your agent. that's it.
what your agent gets
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 |
24 blocks under the hood
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.
example prompts
drop these into your agent and watch:
- "dca $50 eth into usdc every monday at 14:00 utc"
- "snipe new flaunch launches with
miladyin the name, 0.005 eth each, auto-sell at 2x" - "watch wallet 0x6cc5...c01b. when they buy anything over $10k, copy with 0.01 eth"
- "sell 50% of my pepe if price drops 20% in an hour"
- "every monday noon, check moonwell usdc apy. if lower than morpho by 1%, move 80%"
security
vault-direct model. agent never holds keys.
- on-chain caps: every rule signs immutable
maxPerSwap+maxPerDay. enforced by the vault contract. - kill switches:
pauseVault()halts everything;revokeRule(id)kills one workflow. both 1-tx, user-callable. - safety primitives:
pool.createdruns goplus honeypot + tax + score checks before any swap. - keeper bounded: the keeper fleet can only call methods the vault permits. compromised keeper costs at most one tick's per-swap cap.
verified contracts on base:
- v13 vault factory — 0x5Df25e79efd7f9dc86841b404b3EA6F4b7951DBB
- vault implementation — 0xc98137a6df7fb91ab91b568bf923490a278aa702
- timelock beacon — 0x5760A6D62743860F27843fA314E22166dBEF7d73
ecosystem
works with any mcp client. tested with:
- claude code ·
~/.claude.json - claude desktop ·
~/Library/Application Support/Claude/claude_desktop_config.json - cursor ·
~/.cursor/mcp.json - hermes (nousresearch/hermes-agent)
- aeon (aaronjmars/aeon)
- app · ctrl.build
- docs · ctrl.build/docs
- mcp hub · ctrl.build/mcp
- sibling repo · ctrl-skill
mit
Installing CTRL
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/CTRLabs/ctrl-mcpFAQ
Is CTRL MCP free?
Yes, CTRL MCP is free — one-click install via Unyly at no cost.
Does CTRL need an API key?
No, CTRL runs without API keys or environment variables.
Is CTRL hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install CTRL in Claude Desktop, Claude Code or Cursor?
Open CTRL on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare CTRL with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
