Skip to content

Cofferline

by cofferline.com · remote · no sign-in to list tools · v1.0.0 · published by com.cofferline

Treasury and risk controls for agent wallets: policies, quotes, prediction-market orders.

Deletes · 6Final · 2Changes · 21

47 tools: 6 can delete or cancel things, 2 do something that can't be undone, 21 change things and 18 only read.

Scanned Oct 21, 2026

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

claude mcp add --transport http treasury https://mcp.cofferline.com

Findings

Matches of fixed checks, with the text they matched.

18 info
Show 12 more findings

Tools

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

47 tools

Deletes or cancels 6Claude Code: deny
  • cancel_all_pm_ordersCancel every resting order for the credential, optionally within one market.2 findings

    Why it is in this group

    • The name "cancel_all_pm_orders" says "cancel": a word for removing or ending something.

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "Cancel every resting order for the credential, optionally within one market. Auth req..."

      What this check looks for
    • Info

      The input schema at properties.credential_id.description mentions "credential".

      Matched text

      inputSchema.properties.credential_id.description: "stored credential id (uuid)"

      What this check looks for
    Description, as the server wrote it
    Cancel every resting order for the credential, optionally within one market. Auth required.
  • cancel_intentCancel a planned intent (a few-second window before execution claims it).No findings

    Why it is in this group

    • The name "cancel_intent" says "cancel": a word for removing or ending something.
    Description, as the server wrote it
    Cancel a planned intent (a few-second window before execution claims it). Auth required.
  • cancel_pm_orderCancel one resting prediction-market order.1 finding

    Why it is in this group

    • The name "cancel_pm_order" says "cancel": a word for removing or ending something.

    Findings

    • Info

      The input schema at properties.credential_id.description mentions "credential".

      Matched text

      inputSchema.properties.credential_id.description: "stored credential id (uuid)"

      What this check looks for
    Description, as the server wrote it
    Cancel one resting prediction-market order. Auth required.
  • remove_auto_topupRemove the auto-topup rule and its unused authorizations.No findings

    Why it is in this group

    • The name "remove_auto_topup" says "remove": a word for removing or ending something.
    Description, as the server wrote it
    Remove the auto-topup rule and its unused authorizations. Auth required.
  • revoke_delegationRevoke a delegation.No findings

    Why it is in this group

    • The name "revoke_delegation" says "revoke": a word for removing or ending something.
    Description, as the server wrote it
    Revoke a delegation. The reply includes calldata the owner can send on-chain for hard finality. Auth required.
  • revoke_pm_credentialRevoke a venue credential; its sealed ciphertext is destroyed.2 findings

    Why it is in this group

    • The name "revoke_pm_credential" says "revoke": a word for removing or ending something.

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "Revoke a venue credential; its sealed ciphertext is destroyed. Au..."

      What this check looks for
    • Info

      The input schema at properties.id.description mentions "credential".

      Matched text

      inputSchema.properties.id.description: "credential id (uuid)"

      What this check looks for
    Description, as the server wrote it
    Revoke a venue credential; its sealed ciphertext is destroyed. Auth required.
Can't be undone 2Claude Code: ask
  • offboard_accountClose this account for good: revokes every credential, scrubs personal data, retires the account.1 finding

    Why it is in this group

    • The description's first verb is "close": a word for a change.
    • The description says "Irreversible".

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "...se this account for good: revokes every credential, scrubs personal data, retires the acco..."

      What this check looks for
    Description, as the server wrote it
    Close this account for good: revokes every credential, scrubs personal data, retires the account. Irreversible; confirm_wallet_address must be the account's own wallet address, typed exactly. Auth required.
  • topup_balanceTop up the prepaid balance with USDC.No findings

    Why it is in this group

    • The name "topup_balance" says "topup": a word that usually means money moves, which cannot be taken back.
    Description, as the server wrote it
    Top up the prepaid balance with USDC. Auth required. Payment flow: call once without x_payment — a 402 reply lists the exact EIP-3009 requirements (amount, USDC asset, recipient, EIP-712 domain). Sign a transferWithAuthorization for them outside MCP (this server cannot sign), then call again with x_payment set to the base64 of {x402Version:1, scheme:'exact', network, payload:{signature, authorization}}.
Changes things 21Claude Code: ask
  • check_pm_orderPre-flight policy check for a prediction-market order: would this cost be allowed right now?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
    Pre-flight policy check for a prediction-market order: would this cost be allowed right now? Auth required.
  • check_spendPre-flight policy check: would this spend be allowed under the wallet's policy right now?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
    Pre-flight policy check: would this spend be allowed under the wallet's policy right now? Auth required.
  • complete_siwe_loginFinish wallet sign-in: exchanges the signed SIWE message for a cl_sess_… session token — use it as the Authorization bearer on every authenticated tool.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
    Finish wallet sign-in: exchanges the signed SIWE message for a cl_sess_… session token — use it as the Authorization bearer on every authenticated tool. Free, no auth.
  • confirm_delegationActivate a prepared delegation by supplying the owner's signature over its enable digest.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
    Activate a prepared delegation by supplying the owner's signature over its enable digest. Auth required.
  • create_intentCreate a conversion or gas_topup intent; the executor pipeline plans and fills it under policy.No findings

    Why it is in this group

    • The name "create_intent" says "create": a word for a change.
    Description, as the server wrote it
    Create a conversion or gas_topup intent; the executor pipeline plans and fills it under policy. Auth required.
  • create_pm_orderPlace a prediction-market limit order under policy, signed server-side with the stored credential.2 findings

    Why it is in this group

    • The name "create_pm_order" says "create": a word for a change.

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "...icy, signed server-side with the stored credential. Polymarket: condition_id, token_id, ac..."

      What this check looks for
    • Info

      The input schema at properties.credential_id.description mentions "credential".

      Matched text

      inputSchema.properties.credential_id.description: "stored credential id (uuid)"

      What this check looks for
    Description, as the server wrote it
    Place a prediction-market limit order under policy, signed server-side with the stored credential. Polymarket: condition_id, token_id, action, price_usd (e.g. '0.55'), size_shares. Auth required.
  • export_accountExport all of this account's data in one document.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
    Export all of this account's data in one document. Auth required.
  • panicEmergency stop, one call: suspends the account, revokes every API key, session, delegation and venue credential, and returns all unwind calldata for the owner.1 finding

    Why it is in this group

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

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "...API key, session, delegation and venue credential, and returns all unwind calldata for th..."

      What this check looks for
    Description, as the server wrote it
    Emergency stop, one call: suspends the account, revokes every API key, session, delegation and venue credential, and returns all unwind calldata for the owner. Auth required.
  • poll_eventsPoll typed treasury events with a monotonic cursor (intent lifecycle, budget thresholds, reconciliation, security alerts).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
    Poll typed treasury events with a monotonic cursor (intent lifecycle, budget thresholds, reconciliation, security alerts). Auth required.
  • prepare_delegationPrepare a scoped session-key grant for a Kernel smart account: exact call allowlist, expiry, optional rate limit.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
    Prepare a scoped session-key grant for a Kernel smart account: exact call allowlist, expiry, optional rate limit. Returns the ONE EIP-712 digest the account owner signs outside MCP (this server cannot sign) — then call confirm_delegation with the signature. Auth required.
  • prepare_pm_orderPrepare a client-signed Polymarket order: policy-checked, then returns the exact EIP-712 payload to sign outside MCP (this server cannot sign) plus a prepare_id — submit both via s…1 finding

    Why it is in this group

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

    Findings

    • Info

      The input schema at properties.credential_id.description mentions "credential".

      Matched text

      inputSchema.properties.credential_id.description: "stored credential id (uuid)"

      What this check looks for
    Description, as the server wrote it
    Prepare a client-signed Polymarket order: policy-checked, then returns the exact EIP-712 payload to sign outside MCP (this server cannot sign) plus a prepare_id — submit both via submit_pm_order. Auth required.
  • put_policyCreate or update the wallet's treasury policy (immutable versioning; PUT creates the next version).No findings

    Why it is in this group

    • The name "put_policy" says "put": a word for a change.
    Description, as the server wrote it
    Create or update the wallet's treasury policy (immutable versioning; PUT creates the next version). Auth required. Body must match /schemas/policy-v1.json — only version, wallet and chain_id are required; omitted fields take the platform defaults published in the manifest and are stored into the document, and the response lists them in `defaulted`.
  • renew_delegationRenew an active delegation: same scope, fresh expiry, no authority gap.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
    Renew an active delegation: same scope, fresh expiry, no authority gap. Returns a NEW digest to sign and confirm exactly like prepare_delegation. Auth required.
  • screen_addressOFAC SDN counterparty screening for an address.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
    OFAC SDN counterparty screening for an address. Free, no auth.
  • set_auto_topupConfigure auto-topup: when the prepaid balance falls below threshold_usd, the platform settles one of the pre-signed EIP-3009 authorizations you supply (signed outside MCP — this s…No findings

    Why it is in this group

    • The name "set_auto_topup" says "set": a word for a change.
    Description, as the server wrote it
    Configure auto-topup: when the prepaid balance falls below threshold_usd, the platform settles one of the pre-signed EIP-3009 authorizations you supply (signed outside MCP — this server cannot sign). Auth required.
  • start_siwe_loginStart wallet sign-in: returns a single-use SIWE message.No findings

    Why it is in this group

    • The name "start_siwe_login" says "start": a word for a change.
    Description, as the server wrote it
    Start wallet sign-in: returns a single-use SIWE message. Sign it with the wallet outside MCP (this server cannot sign), then call complete_siwe_login. Free, no auth.
  • store_pm_credentialStore a prediction-market venue credential (verified live against the venue, sealed at rest, material never returned).1 finding

    Why it is in this group

    • The name "store_pm_credential" says "store": a word for a change.

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "Store a prediction-market venue credential (verified live against the venue, seale..."

      What this check looks for
    Description, as the server wrote it
    Store a prediction-market venue credential (verified live against the venue, sealed at rest, material never returned). Polymarket, either shape: signer_private_key + maker (derives API creds), or api_key + secret + passphrase + maker + signer. Auth required.
  • submit_feedbackSubmit a feature request ($1 anti-spam fee, charged to the prepaid balance when funded).No findings

    Why it is in this group

    • The name "submit_feedback" says "submit": a word for a change.
    Description, as the server wrote it
    Submit a feature request ($1 anti-spam fee, charged to the prepaid balance when funded). Auth required. Payment flow: call once without x_payment — a 402 reply lists the exact EIP-3009 requirements (amount, USDC asset, recipient, EIP-712 domain). Sign a transferWithAuthorization for them outside MCP (this server cannot sign), then call again with x_payment set to the base64 of {x402Version:1, scheme:'exact', network, payload:{signature, authorization}}.
  • submit_pm_orderSubmit a prepared Polymarket order with the maker's EIP-712 signature from prepare_pm_order.No findings

    Why it is in this group

    • The name "submit_pm_order" says "submit": a word for a change.
    Description, as the server wrote it
    Submit a prepared Polymarket order with the maker's EIP-712 signature from prepare_pm_order. Auth required.
  • sync_pm_fillsPull the venue's fills for a credential into the wallet's ledger.2 findings

    Why it is in this group

    • The name "sync_pm_fills" says "sync": a word for a change.

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "Pull the venue's fills for a credential into the wallet's ledger. Idempotent —..."

      What this check looks for
    • Info

      The input schema at properties.credential_id.description mentions "credential".

      Matched text

      inputSchema.properties.credential_id.description: "stored credential id (uuid)"

      What this check looks for
    Description, as the server wrote it
    Pull the venue's fills for a credential into the wallet's ledger. Idempotent — safe to repeat. Auth required.
  • wrap_pm_usdcWrap the funder Safe's USDC.e into Polymarket's pUSD, platform-relayed so the user pays no gas.1 finding

    Why it is in this group

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

    Findings

    • Info

      The input schema at properties.credential_id.description mentions "credential".

      Matched text

      inputSchema.properties.credential_id.description: "stored credential id (uuid)"

      What this check looks for
    Description, as the server wrote it
    Wrap the funder Safe's USDC.e into Polymarket's pUSD, platform-relayed so the user pays no gas. Omit amount_base_units to wrap the full balance. Auth required.
Only reads 18Claude Code: allow
  • get_auto_topupThe auto-topup rule and how many pre-signed authorizations remain.No findings

    Why it is in this group

    • The name "get_auto_topup" says "get": a word for reading.
    Description, as the server wrote it
    The auto-topup rule and how many pre-signed authorizations remain. Auth required.
  • get_balancePrepaid fee balance: settled credits minus fee debits.No findings

    Why it is in this group

    • The name "get_balance" says "get": a word for reading.
    Description, as the server wrote it
    Prepaid fee balance: settled credits minus fee debits. Auth required.
  • get_benchmarksMeasured execution benchmarks: median savings vs arrival quote by USD size bucket, from real completed intents only.No findings

    Why it is in this group

    • The name "get_benchmarks" says "get": a word for reading.
    Description, as the server wrote it
    Measured execution benchmarks: median savings vs arrival quote by USD size bucket, from real completed intents only. Free, no auth.
  • get_delegationFetch one delegation.No findings

    Why it is in this group

    • The name "get_delegation" says "get": a word for reading.
    Description, as the server wrote it
    Fetch one delegation. Auth required.
  • get_intentFetch an intent, including fills and the post-trade report once filled.No findings

    Why it is in this group

    • The name "get_intent" says "get": a word for reading.
    Description, as the server wrote it
    Fetch an intent, including fills and the post-trade report once filled. Auth required.
  • get_meIdentify the authenticated account: address, kind, scopes.No findings

    Why it is in this group

    • The name "get_me" says "get": a word for reading.
    Description, as the server wrote it
    Identify the authenticated account: address, kind, scopes. Auth required.
  • get_pm_onboardingPolymarket trade-readiness for an address: live approval status plus the calldata for anything missing (executed outside MCP — this server cannot sign).No findings

    Why it is in this group

    • The name "get_pm_onboarding" says "get": a word for reading.
    Description, as the server wrote it
    Polymarket trade-readiness for an address: live approval status plus the calldata for anything missing (executed outside MCP — this server cannot sign). Auth required.
  • get_pm_signer_rotationCalldata to swap the Polymarket funder Safe's owner to a new EOA — the owner executes it outside MCP (this server cannot sign).1 finding

    Why it is in this group

    • The name "get_pm_signer_rotation" says "get": a word for reading.

    Findings

    • Info

      The input schema at properties.id.description mentions "credential".

      Matched text

      inputSchema.properties.id.description: "credential id (uuid)"

      What this check looks for
    Description, as the server wrote it
    Calldata to swap the Polymarket funder Safe's owner to a new EOA — the owner executes it outside MCP (this server cannot sign). Auth required.
  • get_policyList policy versions, newest first (the first entry is active).No findings

    Why it is in this group

    • The name "get_policy" says "get": a word for reading.
    Description, as the server wrote it
    List policy versions, newest first (the first entry is active). Auth required.
  • get_quotesLive venue quote comparison for a token conversion (CoW + ParaSwap on Base).No findings

    Why it is in this group

    • The name "get_quotes" says "get": a word for reading.
    Description, as the server wrote it
    Live venue quote comparison for a token conversion (CoW + ParaSwap on Base). Free, no auth.
  • get_statementDeterministic monthly statement derived from the append-only ledger — same period, same bytes.No findings

    Why it is in this group

    • The name "get_statement" says "get": a word for reading.
    Description, as the server wrote it
    Deterministic monthly statement derived from the append-only ledger — same period, same bytes. Auth required.
  • list_delegationsList delegations, newest first.No findings

    Why it is in this group

    • The name "list_delegations" says "list": a word for reading.
    Description, as the server wrote it
    List delegations, newest first. Auth required.
  • list_feedbackEvery feature request ever submitted, public and unauthenticated.No findings

    Why it is in this group

    • The name "list_feedback" says "list": a word for reading.
    Description, as the server wrote it
    Every feature request ever submitted, public and unauthenticated. Free.
  • list_intentsList intents, newest first.No findings

    Why it is in this group

    • The name "list_intents" says "list": a word for reading.
    Description, as the server wrote it
    List intents, newest first. Auth required.
  • list_pm_credentialsList stored venue credentials — metadata only, never material.1 finding

    Why it is in this group

    • The name "list_pm_credentials" says "list": a word for reading.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "List stored venue credentials — metadata only, never material. Auth r..."

      What this check looks for
    Description, as the server wrote it
    List stored venue credentials — metadata only, never material. Auth required.
  • list_pm_ordersThe credential's resting orders straight from the venue — recover state after a disconnect.2 findings

    Why it is in this group

    • The name "list_pm_orders" says "list": a word for reading.

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "The credential's resting orders straight from the venu..."

      What this check looks for
    • Info

      The input schema at properties.credential_id.description mentions "credential".

      Matched text

      inputSchema.properties.credential_id.description: "stored credential id (uuid)"

      What this check looks for
    Description, as the server wrote it
    The credential's resting orders straight from the venue — recover state after a disconnect. Auth required.
  • list_tokensTokens the platform accepts on an intent, per chain — what create_intent will admit.No findings

    Why it is in this group

    • The name "list_tokens" says "list": a word for reading.
    Description, as the server wrote it
    Tokens the platform accepts on an intent, per chain — what create_intent will admit. Free, no auth.
  • resolve_pm_funderResolve an owner EOA to its Polymarket funder Safe candidates.No findings

    Why it is in this group

    • The name "resolve_pm_funder" says "resolve": a word for reading.
    Description, as the server wrote it
    Resolve an owner EOA to its Polymarket funder Safe candidates. Auth required.

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.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http treasury https://mcp.cofferline.com

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__treasury__get_quotes",
      "mcp__treasury__get_benchmarks",
      "mcp__treasury__list_tokens",
      "mcp__treasury__list_feedback",
      "mcp__treasury__get_me",
      "mcp__treasury__get_policy",
      "mcp__treasury__get_statement",
      "mcp__treasury__get_intent",
      "mcp__treasury__list_intents",
      "mcp__treasury__get_delegation",
      "mcp__treasury__list_delegations",
      "mcp__treasury__get_balance",
      "mcp__treasury__get_auto_topup",
      "mcp__treasury__list_pm_credentials",
      "mcp__treasury__get_pm_signer_rotation",
      "mcp__treasury__list_pm_orders",
      "mcp__treasury__get_pm_onboarding",
      "mcp__treasury__resolve_pm_funder"
    ],
    "ask": [
      "mcp__treasury__screen_address",
      "mcp__treasury__submit_feedback",
      "mcp__treasury__start_siwe_login",
      "mcp__treasury__complete_siwe_login",
      "mcp__treasury__export_account",
      "mcp__treasury__offboard_account",
      "mcp__treasury__put_policy",
      "mcp__treasury__check_spend",
      "mcp__treasury__check_pm_order",
      "mcp__treasury__poll_events",
      "mcp__treasury__create_intent",
      "mcp__treasury__prepare_delegation",
      "mcp__treasury__confirm_delegation",
      "mcp__treasury__renew_delegation",
      "mcp__treasury__panic",
      "mcp__treasury__topup_balance",
      "mcp__treasury__set_auto_topup",
      "mcp__treasury__store_pm_credential",
      "mcp__treasury__create_pm_order",
      "mcp__treasury__prepare_pm_order",
      "mcp__treasury__submit_pm_order",
      "mcp__treasury__sync_pm_fills",
      "mcp__treasury__wrap_pm_usdc"
    ],
    "deny": [
      "mcp__treasury__cancel_intent",
      "mcp__treasury__revoke_delegation",
      "mcp__treasury__remove_auto_topup",
      "mcp__treasury__revoke_pm_credential",
      "mcp__treasury__cancel_pm_order",
      "mcp__treasury__cancel_all_pm_orders"
    ]
  }
}

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 treasury. Review it before you use it.