Skip to content

Signo

by signo.fi · remote · no sign-in to list tools · v1.0.1 · published by fi.signo

AI agents that watch DeFi positions: read a wallet report, draft agents for the owner to sign.

Changes · 2

3 tools: 2 change things and 1 only read.

Scanned Oct 21, 2026

4 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

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

Findings

Matches of fixed checks, with the text they matched.

3 warn1 info
  • The input schema at properties.action.anyOf[1].properties.asset.$ref contains a 43-character base64 string.

    Matched text

    inputSchema.properties.action.anyOf[1].properties.asset.$ref: "#/properties/action/anyOf/0/properties/asset"

    What this check looks for
  • The input schema at properties.action.anyOf[1].properties.token_out.$ref contains a 43-character base64 string.

    Matched text

    inputSchema.properties.action.anyOf[1].properties.token_out.$ref: "#/properties/action/anyOf/0/properties/asset"

    What this check looks for
  • The input schema at properties.action.anyOf[2].properties.asset.$ref contains a 43-character base64 string.

    Matched text

    inputSchema.properties.action.anyOf[2].properties.asset.$ref: "#/properties/action/anyOf/0/properties/asset"

    What this check looks for
  • The description is 2,175 characters long, over the 2,000 this check looks for.

    Matched text

    description ends: "...ring is an on-chain tx; revocable on the Agents page. No keyless status read yet."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

3 tools

Changes things 2Claude Code: ask
  • signo_draft_agentDraft a complete inactive Notify or Prepare agent, without an API key.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Draft a complete inactive Notify or Prepare agent, without an API key. Name the owner wallet when you know it; omit it and the first wallet to sign on the review page owns the agent. 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 set time, or hourly checks) or any plain-English condition the compiler accepts. Execute is a separate permission flow with its own supported conditions and typed on-chain triggers; Execute is not available for the app's Portfolio move trigger, boxed Pendle PT loops are notify-only, and recurring schedules are not Execute triggers today. Returns a private review_url plus summary, cadence (hourly or daily checks), autonomy, action and expires_at in unix milliseconds. The owner opens the link, connects that wallet, links Telegram and signs once to create the agent. Set autonomy to prepare for an action request; otherwise it is refused as autonomy_mismatch, not silently downgraded. Prepare builds an unsigned plan on each fire; it never spends automatically. No clarification round trip: an ambiguous or unwatchable request is a 422 with the reason, so rephrase and call again. Keyless has no agent-status read yet: the owner sees fires on the Agents page and on Telegram. Automatic execution is the separate signo_draft_permission tool.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: Draft a Signo agent
  • signo_draft_permissionDraft an Execute agent on a deployed Shield chain: when something happens on the owner's wallet, do one action with its funds, inside caps the owner signs on chain (the Shield cont…4 findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    Findings

    • Warn

      The input schema at properties.action.anyOf[1].properties.asset.$ref contains a 43-character base64 string.

      Matched text

      inputSchema.properties.action.anyOf[1].properties.asset.$ref: "#/properties/action/anyOf/0/properties/asset"

      What this check looks for
    • Warn

      The input schema at properties.action.anyOf[1].properties.token_out.$ref contains a 43-character base64 string.

      Matched text

      inputSchema.properties.action.anyOf[1].properties.token_out.$ref: "#/properties/action/anyOf/0/properties/asset"

      What this check looks for
    • Warn

      The input schema at properties.action.anyOf[2].properties.asset.$ref contains a 43-character base64 string.

      Matched text

      inputSchema.properties.action.anyOf[2].properties.asset.$ref: "#/properties/action/anyOf/0/properties/asset"

      What this check looks for
    • Info

      The description is 2,175 characters long, over the 2,000 this check looks for.

      Matched text

      description ends: "...ring is an on-chain tx; revocable on the Agents page. No keyless status read yet."

      What this check looks for
    Description, as the server wrote it
    Draft an Execute agent on a deployed Shield chain: when something happens on the owner's wallet, do one action with its funds, inside caps the owner signs on chain (the Shield contract). Inactive until the owner signs on the review link it returns (review_url; also proposal_id, summary, limits, fee_bps, expires_at). No API key. New Execute setup is in early access: a wallet without access no longer gets 403 execute_team_only: no proposal is stored, and the response is a Prepare agent draft for the same trigger and action instead (status 'draft', fallback.from 'execute', its own review_url). The owner activates it and signs each plan, and can join the Execute waitlist in the Signo app. Collect: wallet; trigger; action; cap_per (most per execution); budget (lifetime, before fees; the fee comes on top); expiry_days optional, default 30. The wallet need not hold the budget yet. Trigger: { kind: "condition", request } for a supported plain-English Execute condition, e.g. "when XETH drops 10% in 24 hours" (what the Shield cannot read, the hourly check decides); or health_factor, token_balance or price, re-checked on chain, e.g. { kind: "price", asset: "XETH", comparator: "<", value: 3000 }. 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. Action: transfer, swap (OKX DEX; one of min_out or max_slippage_bps), vault (ERC-4626), supply (Aave), repay_from_wallet, repay_from_collateral. Assets by symbol or address. Fee 10 bps per firing. Enforced on chain: the Shield re-checks caps, expiry and readable triggers each firing and pulls funds via the owner's allowance; the executor key is held in Google Cloud KMS and usable only by Signo's production service. Checked hourly; one successful execution completes a trigger by default, and public drafts do not opt into repay-from-collateral continuation. The signing service allows at most two attempts for one permission in a rolling hour. A successful firing reports Goal, Done, Remaining, Reasoning and Next. Each firing is an on-chain tx; revocable on the Agents page. No keyless status read yet.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: Draft a Signo Execute permission
Only reads 1Claude Code: allow
  • wallet_insights_reportAnalyze any public onchain wallet and return its Signo Score plus prioritized findings.No findings

    Why it is in this group

    • The description's first verb is "analyze": a word for reading.
    Description, as the server wrote it
    Analyze any public onchain wallet and return its Signo Score plus prioritized findings. Covers yield left on the table, leverage safety, LP health, idle capital, dust and unclaimed rewards. Read-only: it inspects public chain data and never moves funds, needs no keys, and requires no connected session — so it works on any address you can name, not just one the caller controls. Returns signoScore (0-100, the Signo Score: how well the wallet's capital is managed, from idle cash, yield against the cash benchmark, unclaimed rewards, the leverage guard and dust; it is not a safety or liquidation-risk score). This public tool cannot read the owner's private Agents, so watch coverage is not_applicable with 'Agent coverage isn't shown here' and signoScore omits that category; the signed-in owner's app score can differ. riskTolerance, walletAge, holdings (every chain's tokens, DeFi positions and loans with USD values, largest first, so you can structure your own view), and a categories array where each entry carries state, headline, detail and a suggested next step. Findings that call for an agent carry agentSuggestion, and the report carries suggestedAgents plus draftWith: exact request and autonomy arguments for the sibling signo_draft_agent tool on this host, so you can draft the agent for the wallet owner to activate. Free.

    Annotations the server declares

    • title: Signo wallet insights report
    • readOnlyHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.1. Values in angle brackets are yours to fill in.

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

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__signo__wallet_insights_report"
    ],
    "ask": [
      "mcp__signo__signo_draft_agent",
      "mcp__signo__signo_draft_permission"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as signo. Review it before you use it.