> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sumvin.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP tools

> Every tool a connected agent gets on the Sumvin MCP connector, grouped by what it's for.

A connected agent doesn't see everything Sumvin can do. It sees a fixed set of tools, chosen for the
account holder's own errands and identity — never budgets, card controls, or anything that isn't the
agent's to touch. The account holder manages those in the Sumvin app or the CLI instead.

Someone with no Sumvin account yet sees the same tools, but every one of them needs an account first.
Calling any of them returns a refusal that carries a sign-up link to hand to the person — see
[Refusals](/reference/mcp/refusals).

Each tool is either **Read** (returns information, changes nothing) or **Write** (starts or changes
something). Most tools work for anyone with an account; a few need the account holder's identity to
be verified first — those are marked below.

## Getting started

<Tabs>
  <Tab title="onboarding_status">
    <Badge>Read</Badge>

    Show where the account holder has got to in setting up their account: which steps are done,
    which are next, and how far the key they sign with has got. Reading it changes nothing.

    Each stage reads `current` (the one to do next), `pending` (still ahead), `submitted` (handed
    in and waiting on a review), `completed`, or `skipped` (waived for this account). The identity
    stage can also read `retry`: the reviewer asked for the ID capture again. The account holder
    retakes it on the verification page they already have open, and their phone stays confirmed. If
    that page is closed, call `kyc_start` for a fresh link.

    Each stage also carries `recorded_at`: when it reached its status, in epoch milliseconds. It's
    null while the stage is open, or when no time was recorded.

    While the account holder still owes a signing key, the answer carries `signing_key_url`: the
    browser page where they create and bind that key themselves. Your agent hands it to them to
    open; there's nothing it can call to bind the key on their behalf.

    <Tip>**Try asking your agent:** "Where am I up to with Sumvin?"</Tip>
  </Tab>

  <Tab title="kyc_start">
    <Badge>Write</Badge>

    Get the link that starts identity verification, and hand it to the account holder. It's a single
    browser trip: they verify a phone number, then their identity, in one sitting. If they're already
    verified, this says so instead of handing over a link.

    <Tip>**Try asking your agent:** "Help me get verified with Sumvin."</Tip>
  </Tab>
</Tabs>

## Identity

<Tabs>
  <Tab title="sigil_show">
    <Badge>Read</Badge>

    Show the account holder's Sigil — their verified identity. Reports whether it's been issued yet,
    is being issued right now, or hasn't started. Not having one yet is a normal answer, not a problem.

    <Tip>**Try asking your agent:** "Show me my Sigil."</Tip>
  </Tab>

  <Tab title="agent_identity_show">
    <Badge>Read</Badge>

    Show this connection's own identity: its registration status, and whether it's linked to the
    account holder's Sigil yet. Answers only for the connection asking — it can't see any other agent
    the account holder has connected.

    <Tip>**Try asking your agent:** "What's your identity under my Sigil?"</Tip>
  </Tab>
</Tabs>

## Stamped Mandates

A Stamped Mandate is a signed authorisation for what one agent may do. These tools cover the
spending kind — how much an agent may spend, and until when — because that's what the mandate
tools support today. These tools still show their internal name, `pint`, in two places: it's
the same object as a Stamped Mandate, and the rename is in progress.

<Tabs>
  <Tab title="mandate_request">
    <Badge>Write</Badge> · Needs verification

    Ask the account holder to authorise spending, and get the link that lets them review and sign it.
    This doesn't grant anything by itself — only the account holder can sign, on their own page, and
    an agent can't do that for them. Needs a wallet and a verified identity first; if either is
    missing, this says which one and where to go next.

    <Tip>**Try asking your agent:** "Set up a spending limit of \$50 for groceries this week."</Tip>
  </Tab>

  <Tab title="mandate_status">
    <Badge>Read</Badge>

    Check what the account holder decided about a mandate that was requested: still waiting, signed,
    declined, or expired. There's no notification when they decide — call this again after giving them
    time to look.

    <Tip>**Try asking your agent:** "Did I approve that spending limit yet?"</Tip>
  </Tab>

  <Tab title="mandate_verify">
    <Badge>Read</Badge>

    Check a Stamped Mandate someone else has presented: what it permits, up to how much, and whether
    it still stands. Use this before acting on a mandate a counterparty shows you — an identifier alone
    proves nothing, and a mandate can be withdrawn at any time after it's granted.

    <Tip>**Try asking your agent:** "Check whether this mandate is still valid before we go ahead."</Tip>
  </Tab>

  <Tab title="mandate_capacity_query">
    <Badge>Read</Badge>

    Read what's left to spend under the Stamped Mandate authorising an errand: its limit, what's
    settled, what's held by spending in flight, and what remains.

    <Tip>**Try asking your agent:** "How much is left on the mandate for my grocery errand?"</Tip>
  </Tab>

  <Tab title="pint_query">
    <Badge>Read</Badge>

    List the Stamped Mandates issued to the account holder. Filter by status or by identifier.

    <Tip>**Try asking your agent:** "Show me all my active spending limits."</Tip>
  </Tab>

  <Tab title="pint_revoke">
    <Badge>Write</Badge>

    Permanently withdraw a Stamped Mandate. This can't be undone — anything relying on it to spend
    stops being able to, immediately. Find the one to revoke with `pint_query` first.

    <Tip>**Try asking your agent:** "Revoke the spending limit I set up for groceries."</Tip>
  </Tab>
</Tabs>

## Payment methods

An errand pays with the card the account holder has added. These tools let an agent check that a
card is ready and, when it isn't, send the account holder to the page where they add one. The card
is always entered on that page, by the account holder — never in the conversation.

<Tabs>
  <Tab title="payment_method_query">
    <Badge>Read</Badge>

    List the cards the account holder has added and whether each is ready. A card can pay for an
    errand only once it shows as verified. Card numbers are never shown — only the last four digits.

    <Tip>**Try asking your agent:** "Is my card ready for purchases?"</Tip>
  </Tab>

  <Tab title="payment_method_add">
    <Badge>Read</Badge>

    Get the link to the page where the account holder adds the card their errands pay with, along
    with the cards they already have. The tool changes nothing itself. A card can be added once
    identity verification has finished; wait for it to show as verified before starting an errand.

    <Tip>**Try asking your agent:** "I need to add a card before you buy anything for me."</Tip>
  </Tab>
</Tabs>

## Errands

An errand is a long-running purchase task the account holder asked their agent to make, run within a Stamped Mandate.

<Tabs>
  <Tab title="errand_create">
    <Badge>Write</Badge>

    Start a new errand from what the account holder asked for, in their own words. Starting an errand
    begins the search for what they want — it doesn't authorise any spending on its own.

    <Tip>**Try asking your agent:** "Reorder my usual coffee beans."</Tip>
  </Tab>

  <Tab title="errand_action">
    <Badge>Write</Badge>

    Act on an errand that's already running: answer a question it's waiting on, or cancel it.
    Approving a purchase isn't available here — only the account holder can do that, on their own
    page.

    <Tip>**Try asking your agent:** "Cancel that coffee order — I changed my mind."</Tip>
  </Tab>

  <Tab title="errand_query">
    <Badge>Read</Badge>

    Read the account holder's errands: what they are, and where each one stands. Filter by status or
    by identifier.

    <Tip>**Try asking your agent:** "What's the status of my coffee order?"</Tip>
  </Tab>

  <Tab title="errand_events_query">
    <Badge>Read</Badge>

    Read one errand's history: what happened, and when, oldest first.

    <Tip>**Try asking your agent:** "What's happened so far with my coffee order?"</Tip>
  </Tab>
</Tabs>

## Account

<Tabs>
  <Tab title="account_query">
    <Badge>Read</Badge>

    Read the account holder's linked accounts.

    <Tip>**Try asking your agent:** "What accounts do I have linked?"</Tip>
  </Tab>

  <Tab title="wallet_query">
    <Badge>Read</Badge>

    Read the account holder's wallets.

    <Tip>**Try asking your agent:** "Show me my wallets."</Tip>
  </Tab>

  <Tab title="transaction_query">
    <Badge>Read</Badge>

    Read the account holder's transactions: what they spent, where, and when.

    <Tip>**Try asking your agent:** "What have I spent this week?"</Tip>
  </Tab>

  <Tab title="asset_query">
    <Badge>Read</Badge>

    Read reference data for the currencies and assets Sumvin supports. Not scoped to the account
    holder — this is general information, not a personal record.

    <Tip>**Try asking your agent:** "What currencies does Sumvin support?"</Tip>
  </Tab>
</Tabs>

## Server

<Tabs>
  <Tab title="server_info">
    <Badge>Read</Badge> · No account needed

    Report the build identity of the Sumvin server this connection has reached. Useful for confirming
    the connection is live before trying anything else.

    <Tip>**Try asking your agent:** "Are you connected to Sumvin?"</Tip>
  </Tab>
</Tabs>
