Connection check
verified live · 27h ago
ctrl-mcp
Visual DeFi workflow automation on Base + Ethereum mainnet.
Tools
7
GitHub stars
—
Installs / wk
—
Licence
—
Transport
streamable-http
Last checked
27h ago
Tools & capabilities
7 toolsRead from the running server on 27h ago.
ctrl_activate
depositEthexpiryDaysworkflowId*maxPerDayEthmaxPerSwapEth
Return an EIP-5792 transactions[] batch the user signs ONCE to deploy their vault + register spending rules. After signing, the keeper runs the workflow autonomously per the on-cha… Return an EIP-5792 transactions[] batch the user signs ONCE to deploy their vault + register spending rules. After signing, the keeper runs the workflow autonomously per the on-chain caps.
ctrl_create_workflow
name*chain*trigger*descriptiontargetChain
Create a CTRL workflow draft. ONE trigger + an ordered chain of up to 20 actions/conditions/utilities. Returns { workflowId, activateUrl }. Pass `targetChain` to pick which chain t… Create a CTRL workflow draft. ONE trigger + an ordered chain of up to 20 actions/conditions/utilities. Returns { workflowId, activateUrl }. Pass `targetChain` to pick which chain the workflow runs on — "base" (default, launchpads + Aerodrome + UniV4) or "ethereum" (UniV3 only, no launchpads, no clanker/zora). CRITICAL: call ctrl_get_block_catalog FIRST (with the same `chain` value) to discover field names — every key in trigger.config and chain[].config must exactly match catalog fields[].key. Populate EVERY field the user expressed intent for. For pool.created (Token Launch, Base-only) set launchpad (e.g. ["bankr"]), keywordIncludes ("ai,agent,claw"), keywordMatchMode "any", keywordCategories (["ai_agents"]), safetyEnabled true, safetyRejectHoneypot true, safetyMinScore 50. For cypher.swap set tokenIn ("ETH"), tokenOut ("{{trigger.tokenAddress}}"), tokenOutMode "dynamic", amount (ETH units, e.g. 0.005 — ASK USER if not specified), slippage (15 for snipes), and autoSell* if user wants an exit (autoSellEnabled true, autoSellMode "multiple", autoSellMultiplier 2, autoSellPercent 100, autoSellReceiveToken "USDC"). For notify.telegram set message with {{token}}/{{amount}}/{{txHash}} placeholders. Interview the user for missing critical fields (amount, exit strategy, keywords) — do not silently default.
ctrl_fire_manual
workflowId*
Manually fire a workflow once. Keeper picks up within ~5s. Use to test a workflow without waiting for its natural trigger. Manually fire a workflow once. Keeper picks up within ~5s. Use to test a workflow without waiting for its natural trigger.
ctrl_get_block_catalog
chaincategory
Return the live catalog of every CTRL workflow block with id, label, description, and config-field schemas. Call this before ctrl_create_workflow when unsure of a block's config sh… Return the live catalog of every CTRL workflow block with id, label, description, and config-field schemas. Call this before ctrl_create_workflow when unsure of a block's config shape. Pass `chain` to filter to blocks that are compatible with the target chain (Base = launchpads + Aerodrome + UniV4; Ethereum = no launchpads, V3 only). Default is "base".
ctrl_get_execution_logs
limitworkflowId
Read recent workflow executions: trigger, status, BaseScan tx hash, gas, timing. Without workflowId returns the user's most recent across all workflows. Read recent workflow executions: trigger, status, BaseScan tx hash, gas, timing. Without workflowId returns the user's most recent across all workflows.
ctrl_get_vault_status
Read the user's CTRL vault address, ETH + WETH balance, and active rules. Call this BEFORE ctrl_activate so you can tell the user how much they need to fund. Read the user's CTRL vault address, ETH + WETH balance, and active rules. Call this BEFORE ctrl_activate so you can tell the user how much they need to fund.
ctrl_withdraw
tokenamountwallet*