live · no auth · no API key

A real money account
for any AI agent.

One passkey gives an agent Bitcoin, Lightning, stablecoins, a Visa card and a SEPA IBAN — as twelve MCP tools it can actually drive. Nothing is custodied. No key ever reaches this server.

POST https://agent.nuri.com/mcp
claude mcp add --transport http nuri https://agent.nuri.com/mcp
✓ no OAuth ✓ no client registration ✓ no bearer token ✓ no account to create first

See every area, what depends on what, and what is still missing →

Authless on purpose

Most money MCPs make you register an OAuth client before an agent can even list the tools. There is nothing to authenticate here, because this server holds nothing worth stealing.

◇Stateless

No database, no session store. Identity lives in an opaque token the agent carries. Restart the server mid-flow and nothing is lost.

⚿Passkey PRF

Keys are derived in the browser from a WebAuthn PRF extension, used, and zeroized. The private key never exists on any server — including this one.

⛉Cannot move money

Every transfer needs a fresh passkey tap by the human. An agent proposes; only a fingerprint approves. Reads need a signed session too, so knowing an address reveals nothing.

Everything it can do

The full Nuri stack — the same rails the app runs on, reachable by an agent.

One shape, twelve tools

Every tool returns the same thing, so there is nothing for an agent to memorise and nothing to get wrong.

call a tool

Plain arguments. No session ids, no hex credentials to thread between calls.

open_this_link

Hand it to the human unchanged. They tap their passkey. That is the only step they ever take.

nuri_wait(ticket)

The one polling tool. Blocks server-side and returns the finished result — never ask the human to confirm they signed.

account

Carry that token into every later call. That is the whole state model.

The tools

Twelve, generated from the live server — this list cannot drift from what the MCP actually serves.

nuri_signup

[Identity] Create a brand-new Nuri account: one passkey, a username, and with it <username>@nuri.com as a Lightning address plus <username>.nuri.eth as an ENS name — both live the moment the passkey exists, no extra registration.

nuri_login

[Identity] Log an existing user in with one passkey tap. Takes NO arguments — the passkey itself reveals which account it is, so never ask for an email, username or address.

nuri_wait

[Identity] The ONE tool for "has the user tapped yet?". Every Nuri tool that needs a passkey gives you a ticket — pass it here.

nuri_me

[Identity] The whole account on one screen: username, Lightning address, ENS name, wallet addresses, balances, IBAN, cards, ID-check status — plus next_steps, an explicit list of what is missing and which tool fixes it.

nuri_receive

[Receive] Every way to get paid, in one answer: the Lightning address that works with zero setup, a fresh Lightning invoice if you pass an amount, the EVM/Solana address, and the EUR IBAN.

nuri_send

[Send] Send money to anything. Paste whatever the user has and this picks the rail itself: a Lightning invoice or address (you@nuri.com), a Bitcoin address, an IBAN (SEPA), a 0x address or ENS name, a Solana address, or a Tanzanian mobile number (delivers real TZS mobile money).

nuri_topup

[Money in] Put money in with Apple Pay or a card. Buys a stablecoin through Mercuryo or Paybis and delivers it to the user own wallet, optionally swapping onward.

nuri_swap

[Money in] Swap between Bitcoin, Lightning, Ethereum, Base, Solana and stablecoins. Call with confirm:false for a ranked quote, then confirm:true to create it.

nuri_card

[Cards & banking] The Visa card: see it, create a virtual one, reveal the numbers, freeze/unfreeze, set a daily limit, order a physical card, or approve a purchase a shop is holding at checkout (3DS).

nuri_iban

[Cards & banking] Get a bank account. kind:personal = the EUR IBAN that comes with the Nuri account (Wirex).

nuri_history

[Advanced] Merged, newest-first activity: card purchases, IBAN transfers, swaps and Bitcoin received.

nuri_multisig

[Advanced] A 2-of-2 multisig Safe for the user: their passkey plus the Nuri co-signer, so nothing moves on one signature alone and a lost device is recoverable.

Try it in one call

No signup. This returns a live quote ranked across thirteen providers.

curl

# no auth header. there is nothing to send.
curl https://agent.nuri.com/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
      "params":{"name":"nuri_swap",
      "arguments":{"from":"BTC","to":"USDC_BASE","amount":0.01}}}'

then just talk to it

  • what do I have?→ nuri_me · tells the agent what to do next
  • sign me up as satoshi→ passkey · satoshi@nuri.com · satoshi.nuri.eth
  • send 5000 TZS to +255712345678→ live rate, then one tap
  • get me a card and freeze it→ virtual Visa on the wallet

Identity that just exists

Pick a username. Both of these resolve immediately — no registrar call, no transaction, no waiting.

⚡satoshi@nuri.com

A Lightning address any wallet on earth can pay. No invoice, no amount, never expires.

⬢satoshi.nuri.eth

An ENS name resolving to the same passkey-derived account, on every EVM chain.