Your agent can buy the tools it needs.
Never more than you allow.

One MCP connection to find paid tools, hear the exact price before anything is signed, and pay per call in USDC on Stellar. Every purchase comes back with an on-chain receipt.

  • No API keys
  • No subscriptions
  • No XLM needed for fees
Claude · connected to Toolport$0.979 of $1.00 left
What's the best way to swap 100 XLM for USDC right now?
toolport.search→dex_best_path
Quotedex_best_pathStellar Oracle$0.02
Under your $0.05 per-call cap. Checked before signing.
Paid $0.02 USDC. Settled on Stellar.b3168b85…6efb76 ↗
Route it through XLM → USDC: 100 XLM gets you 87.46 USDC, at a rate of 0.8746.
  • The price, before anything is signed.Over-cap calls are refused with no transaction.
  • A budget that holds.Across restarts and parallel calls. Unknown outcomes stay held.
  • Never paid twice.The same request returns the stored result.
  • A receipt for every call.Verified on-chain, linked to Stellar Expert.

Six steps, about ten seconds, one receipt.

Your agent never sees a key or a checkout page. It asks, gets a price, and Toolport handles the rest inside the limits you set.

01 / 06 · Search
Over the cap? It stops at step 02. Nothing is signed and no transaction is sent.

Don't take our word for it. Open the receipts.

Real payments on Stellar testnet. Refusals and repeats are logged too.
StatusAmountToolWhat happenedTransaction
Settled$0.001Current weather · Rail402Lisbon: 21°, sunny9d1d9665…0886be ↗
Settled$0.02dex_best_path · Stellar Oracle100 XLM → 87.46 USDCb3168b85…6efb76 ↗
Settled$0.02dex_best_path · Toolport registryFound by the router, verified on-chainc31160c7…364d77 ↗
Settled$0.01account_summary · SDK serverBalances and recent operationsd8cbed10…3d236e ↗
Refused$0.02A quote over the cap · dex_best_pathOver the call's $0.001 cap, caught before signingno transaction
Stored$0dex_best_path · routerSame request again, stored result returnednot paid twice

Tools from a tenth of a cent.

Our registry and Rail402's Bazaar, searched through one connection. Prices from $0.001 to $0.10 per call.

Browse all tools

Already run an MCP server? Get paid per call.

Set a price per tool and get paid in USDC on Stellar. Agents find you through the catalog and see your price before they buy.

  1. 01Paste your MCP URL. We discover its tools.
  2. 02Set a price per tool, from $0.001.
  3. 03Choose a payout address. We check its USDC trustline.
  4. 04Get your paid URL. Revenue and calls show up live.
Or monetize from code, with one line:
server.paidTool("dex_best_path", "Best DEX path between two assets", "$0.02", schema, handler)

Built with

  • Stellar
  • x402
  • OpenZeppelin
  • Rail402
  • MCP

Rail402's Bazaar is a third-party catalog. Toolport searches it alongside its own registry, with credit.

Questions

Can my agent spend more than I allow?

No. You set a total budget and a per-call cap. The price is checked before anything is signed, over-cap calls are refused with no transaction, and the budget holds across restarts and parallel calls.

What if a payment's outcome is unknown?

It stays held: counted against your budget, never treated as free. You can check it on-chain later, or release it from Activity.

Will I pay twice for the same request?

No. Repeating the same request returns the stored result instead of paying again.

Do I need XLM, API keys or a subscription?

No. Your agent pays per call in USDC. There's no XLM to hold for fees, no keys to manage and no plan to sign up for.

Where do the tools come from?

Toolport's own registry, plus Rail402's Bazaar, a third-party catalog we search and credit. One MCP connection covers both.

Is this real money?

Not yet. Toolport runs on Stellar testnet with test USDC. Get some from the testnet faucet.

Plug your agent in.

Try the whole flow in the browser, or give your agent one config block.

Try it in the browser

Connect Freighter, set a budget, and run a paid tool end to end. Nothing to install.

Open the playground
Connect your agent

Add this to Claude Desktop or Cursor. $1 budget, $0.05 per call.

{
  "mcpServers": {
    "toolport": {
      "command": "toolport",
      "args": ["router", "--gateway", "https://api.toolport.042067.xyz", "--max-per-call", "0.05", "--budget", "1", "--session", "claude"]
    }
  }
}