Skip to main content

For AI assistants

Signo works in any AI assistant that speaks MCP over Streamable HTTP: Claude, ChatGPT, Claude Code, Cursor and others. There are two addresses:

AddressSign-inTools
https://app.signo.fi/api/mcpNoneThe three tools: read a public wallet report, draft an agent, draft a Shield permission
https://app.signo.fi/api/mcp/accountYour Signo accountThe same three, plus six to list, read, pause, resume, edit and remove your own agents (below)

A draft is inactive: Signo returns a private review link, and the wallet owner must authorize it before it runs. Neither address gives the assistant wallet keys or spending authority.

Add it with no sign-in​

claude mcp add --transport http signo https://app.signo.fi/api/mcp

Cursor — project .cursor/mcp.json:

{
"mcpServers": {
"signo": { "url": "https://app.signo.fi/api/mcp" }
}
}

That is the whole setup. Send no Authorization header: with no key the server exposes exactly three tools, listed below. (With a partner key it exposes the partner tool set instead, so a client that has a key and also wants these three adds the server a second time without the header.)

Connect your Signo account​

Sign in once, and your assistant can also see and manage the agents on your account. It is the same wallet sign-in as the app: no email, no password, no transaction.

In Claude (claude.ai, web or desktop):

  1. Open Settings → Connectors and click Add custom connector.
  2. Name it Signo and enter https://app.signo.fi/api/mcp/account. Keep the options Claude detects, Sign in now and Register automatically, and leave request headers empty. Click Add.
  3. Click Connect. A Signo page opens. If you are not signed in to Signo in that browser, connect your wallet and sign one message.
  4. Check the app name, where it sends you back, your wallet and the three permissions, then click Allow.
  5. In a chat, turn on Signo in the tools menu and ask: "List my Signo agents."

On a Team or Enterprise plan, an owner adds the connector first in Admin settings → Connectors.

In ChatGPT (chatgpt.com on the web; Plus, Pro, Business, Enterprise and Edu plans):

  1. Open Settings → Apps & Connectors → Advanced settings and turn on Developer mode.
  2. In Apps & Connectors, click Create. Name it Signo, enter https://app.signo.fi/api/mcp/account, choose OAuth, tick I trust this application and click Create.
  3. On the Signo page, sign in with your wallet if asked, check the page and click Allow.
  4. In a new chat, pick Signo from the + menu and ask: "List my Signo agents."

Permissions. Every connection gets the same three: read your agents and their activity, pause and resume them, and edit or remove them. It cannot sign, move funds, change a permission's limits or revoke a permission on chain: those need your wallet in Signo.

ToolDoes
signo_account_agentsLists the account's Agents. Notify and Prepare Agents can remain account-owned after their original wallet is removed; Execute Agents stay wallet-bound
signo_account_agentReads one agent's setup and its last check
signo_account_agent_historyReads its delivered notifications and Execute runs
signo_account_agent_statusPauses or resumes it. A resumed Execute agent can fire again at its next check, inside its signed permission
signo_account_agent_updateEdits supported fields on non-Execute agents: the headline, check frequency, action, threshold or reminder schedule. Execute edits require owner review in Signo
signo_account_agent_removeRemoves it and keeps its history. An Execute agent whose permission is still live is refused: only your wallet can revoke a permission, with Revoke and delete in Signo

The three tools below work here too. A draft made here still needs your signature in Signo before it runs.

Disconnect in Signo under Settings → Connected apps. To connect again, click Connect in the assistant; the address stays the same.

The three tools​

New Execute setup is in early access. signo_draft_permission returns 403 execute_team_only for a wallet without access. No proposal is stored, and the response directs the owner to support@signo.fi.

ToolCreatesOwner does
wallet_insights_reportNothing: a read-only report on any public wallet, with agents it suggestsNothing; the report is public data
signo_draft_agentA Notify or Prepare agent from plain EnglishOpens the link, connects their wallet, links Telegram, signs once
signo_draft_permissionAn inactive Execute proposal: a Shield permission on X Layer or ArbitrumReviews the terms and authorizes the permission on-chain with the named wallet

wallet_insights_report takes { address, narrative? } and returns the wallet's signoScore (0–100: capital management, not a safety score), per-chain holdings, findings, and suggestedAgents with draftWith: ready-to-use wallet, request and autonomy arguments for signo_draft_agent. The public report cannot read the owner's private Agents, so watch coverage is not_applicable with Agent coverage isn't shown here and the score omits that category. A signed-in owner's app score can differ because it adds watch coverage. Pass draftWith unchanged to keep the suggestion bound to the wallet analyzed. flipScore is a temporary legacy alias; use signoScore in new clients. Read the report first, then offer the relevant draft to the user; both calls work on this one connection.

signo_draft_agent takes { request, wallet?, autonomy? }.

  • request is the condition or schedule in plain English, and for Prepare the action too: "notify me when ETH drops below 2000", "every Monday draft a 50 USDC to ETH swap for my approval". It can watch anything the app can: a price threshold or percent move, portfolio movement, a lending health factor (Aave, Spark, Compound V3, Morpho), the owner's own DeFi positions (PTs, LPs, supplied assets, claimables, APY or value changes, days to expiry), Pendle loops, a daily market brief, a recurring schedule (daily, weekly or monthly at a time the owner picks, or hourly checks), or any plain-English condition the compiler accepts. The full list is on Agents. Execute needs a separately signed permission: use signo_draft_permission below, not this tool.
  • wallet is optional. Give the owner's address when you know it and only that wallet can claim the draft. Leave it out and the first wallet to sign on the review page owns the agent — so you can draft for a user whose address you do not have.
  • autonomy is notify (default) or prepare. An action request must explicitly choose prepare; otherwise it is refused with autonomy_mismatch, not silently turned into a notification.

It returns review_url, a one-line summary, the check cadence, autonomy, action (null unless Prepare) and expires_at in unix milliseconds. Give the user the link and tell them what it is.

signo_draft_permission takes the typed permission shape: schema_version: 2, wallet, chain_id (196 for X Layer, 42161 for Arbitrum; GET /api/shield/compile lists the live chains), a trigger (condition: a supported plain-English condition compiled by the same compiler as the app; or one of the typed triggers the Shield reads on chain: health_factor, token_balance, or price, the asset's current USD price from the Aave oracle on the permission's chain, Chainlink-backed. This does not make every Notify preset an Execute trigger: Execute is not available for the app's Portfolio move trigger, boxed Pendle PT loops are notify-only today, and a recurring schedule is not an Execute trigger. The part the Shield can read is pinned and re-checked on chain; the rest is decided by scheduled checks, exactly like an Execute agent set up in the app), an action (transfer, swap, vault, supply, repay_from_wallet or repay_from_collateral), assets by the symbol Signo uses on that chain, by ERC-20 address, or by any symbol on the chain's token list (OKX's on X Layer, LI.FI's on Arbitrum; several tokens sharing a symbol come back as a clarification listing their addresses and token pages), a lifetime budget and per-execution cap_per, both before fees, and expiry_days. The wallet is required here: the permission is for that wallet, and only that wallet can sign it. It does not need to hold the budget yet; each firing checks the balance it needs. The permission registers on Shield v1. It returns review_url, summary, limits, fee_bps and expires_at. cap_per must be positive and no greater than budget, and may equal it. The 0.1% fee comes on top. The registered lifetime cap and token approval include a rounded-up fee buffer. Invalid budget arithmetic returns 400 invalid_budget. An unknown-symbol refusal supplies the known asset names; the tool field descriptions do not enumerate them. Execute uses approved tokens, not native coins: wrap OKB to WOKB on X Layer or ETH to WETH on Arbitrum, then draft with the wrapped token. Keep native coin for the wallet transactions' gas. New Execute setup is in early access. A wallet without access gets 403 execute_team_only; no proposal is stored. Give the user the returned message and direct them to support@signo.fi for early access.

What the owner is trusting. Say this when asked. Enforcement is on chain: the owner registers the permission from their own wallet on the Shield contract, and on every execution the contract re-checks the per-execution cap, the remaining lifetime budget and the expiry, re-checks the trigger too when it is one it can read (health factor, token balance, price), and pulls funds through the owner's token allowance. Any other trigger is decided by Signo's scheduled checks; what keeps funds safe is the pinned action, its outcome check and the caps. Signo's executor is a key held in Google Cloud KMS that only Signo's production service can use. It decides when to fire and how much to spend within the caps. It sizes each firing from the owner's instruction, using AI. If it cannot work out an amount, it does nothing and tells the owner. It cannot widen the terms. Armed permissions normally check hourly. One successful execution completes a trigger by default. An "any X" condition or two to six top-level OR parts can fire for each newly matching item while the overall condition stays true, one run at a time. Waiting items get another check after a four-minute cooldown; an item that stops matching can fire again when it returns. Repay from collateral continues toward its target only when the owner turns on Keep going until the target in the app before signing; the option is off by default, and public permission drafts do not opt in. With it on, an Aave-limited partial firing can continue after a four-minute cooldown, within the signed limits, until the target, an owner-limit stop, ten firings or six hours. See Execute checks. If the condition is already true at setup, the first check can fire without a prior false reading. Start after Pause clears the previous reading and can fire again at the next check while the condition is still true. After a successful firing, the owner receives Goal, Done, Remaining, Reasoning and Next, including the transaction and what limited a partial result. The signing service permits at most two attempts for one permission in a rolling hour. A check blocked by sizing, balance, approval, a venue stop or a service-wide execution pause can try again while the condition stays true. A failed firing is retried once, at the next hourly check. After that, the agent waits for a new crossing. Every firing is an on-chain transaction with a MandateFired event, verifiable on the chain's explorer and listed with its hash on the owner's Agents page, where the owner can revoke the permission on chain at any time. The fee is 10 bps of what a firing spends, on top of the limits entered by the owner. Shield is live on X Layer and Arbitrum. Details: Security.

The drafting tools do not expose account or agent-management reads and cannot spend; they may read public chain state to validate a proposal. The report also reads public data only. There is no clarification round trip: an ambiguous or unwatchable draft is a 422 with the reason, so rephrase and call again. MCP reports tool failures with isError and a reason; HTTP callers receive the corresponding status code.

What the owner sees​

The review link opens Signo's Set up an agent page with the draft already filled in and checked. The owner can edit the request or change Notify to Prepare, connects the wallet the agent is for, links Telegram (agents deliver on Telegram), and presses Set up agent. One signature creates the agent. The full walk-through, including what the signature covers and what a permission looks like, is on From draft to agent.

Limits and cost​

Free. Drafting is rate limited per client (5 a minute; on the account address, per account) and overall, drafts expire after 72 hours, and an expired or already-claimed link shows a plain "nothing here" page. Once claimed, the agent is the owner's, runs on Signo's schedule, and shows in their Agents list like any other.

What needs a sign-in or a key​

With no sign-in, an assistant cannot read a wallet's agents or change them. To manage your own agents, connect your Signo account. Receiving fire events and planning transactions directly are partner operations that need a key: see For Partners.