Testnet only. tUSD and mUSDC have no value. The bridge uses one trusted relayer.

Docs

MCP server

Gives an AI agent payment tools through the Model Context Protocol. The agent acts through a session key, so its spending limits are enforced on-chain, not by the model.

Set up

Clone the repository and install, then put these in the .env file at the repository root. Keys stay there: no tool takes a key as input.

AGENT_SESSION_KEY=   # the agent's key, authorised by the owner with limits
AGENT_OWNER=         # the account whose funds it spends
RELAYER_URL=         # a Talaria relayer, which pays the gas
PORTALDOT_EVM_RPC=https://test-evm-rpc-v3.portaldot.dev

Authorise the session key first, on the Agent page or with addSessionKey in the SDK.

Connect a client

The server runs over stdio. Add it to your MCP client's config, using your own path to the repository:

{
  "mcpServers": {
    "talaria": {
      "command": "pnpm",
      "args": ["--silent", "--dir", "/path/to/Talaria", "--filter", "@talaria-pay/mcp", "start"]
    }
  }
}

Keep --silent. Without it, pnpm prints to stdout, which carries the MCP protocol.

Tools

ToolWhat it doesInputStatus
create_checkoutCreate a tUSD invoiceamount, memo (optional)Live on Portaldot
pay_invoicePay an invoice. Over-limit payments may queue for the owner's approvalinvoiceIdLive on Portaldot
get_receiptsList receipts where this account paidNoneLive on Portaldot
get_policyShow this agent's spending policyNoneLive on Portaldot
subscribeSubscribe to a merchant planplanIdNot on Portaldot yet: returns an error
start_streamStart a per-second payment streamto, ratePerMonth, depositNot on Portaldot yet: returns an error
paid_fetchFetch a URL, paying any HTTP 402 with a channel voucherurl, maxPrice, channelDeposit (optional)Not on Portaldot yet: returns an error
send_remitSend tUSD to an address, or create a claim linkto (optional), amountNot on Portaldot yet: returns an error

The four tools marked as not on Portaldot use rails that run on Base Sepolia today. The server connects to Portaldot only, so it can't reach them yet.

Limits and safety

A session key has a per-payment limit, a daily limit, an expiry and an allowed list of rails. Payments over the limits wait for the owner rather than going through.

Each write spends the relayer's tPOT, and the relayer has an hourly cap, so tools may fail for a while if it's reached. This is a testnet build with test tokens only.