← Blog

claudeJuly 23, 2026

Let Claude pay for tools over MCP

One MCP server in Claude Code or Claude Desktop, and Claude can pay for search, scraping, data, compute, and media per call from one balance, with a ceiling on every call and no card in its context.

Ask Claude to do something that needs the outside world, a live search, a scrape, a hundred enriched contacts, a sandbox, a generated image, and it will explain, politely, that it cannot pay for that. This is correct. Claude has no money, and the mechanisms people improvise to give it some, an API key in a .env file, a card number in a system prompt, are the two worst possible designs: the first is unlimited per vendor, the second is unlimited everywhere. What Claude needs is not money. It needs permission with edges. That is a single MCP server, and this post is the setup, the first paid call, and the refusal that proves the edges are real.

Install

For Claude Code, the hosted server is one line:

claude mcp add --transport http vaaya https://vaaya.ai/mcp

For Claude Desktop, or if you would rather run the server locally as a stdio process, the installer writes the configuration for you and opens a browser tab to sign in:

npx @vaaya/mcp install

Claude Code also has a plugin route, if you prefer plugins to raw MCP entries. Inside a Claude Code session:

/plugin marketplace add vaaya-ai/vaaya-mcp
/plugin install vaaya@vaaya

Whichever route you take, on the first tool call Claude will be asked to authorize once in the browser. After that, Claude has two tools it did not have before: consult, which turns an intent into a priced plan, and use, which executes one line of that plan under a ceiling.

The first paid call

Give Claude something it cannot do from memory:

Pull the ten most recent public filings that mention "machine payments protocol" and list the filers.

Claude calls consult with that intent. What comes back is a plan, not a result: the providers that can do the job, in this case a public-records source and a search provider, what each costs per call, and a recommendation. Claude reads the prices and chooses. Then it calls use, and the argument that matters is max_cost_cents:

{
  "service": "exa",
  "action": "search",
  "params": { "query": "\"machine payments protocol\" filing 2026", "numResults": 10 },
  "max_cost_cents": 5,
  "intent": "recent filings mentioning MPP"
}

Vaaya compares the quoted price to that ceiling, runs the call against the provider with its own credentials, and returns the results together with a receipt: what was charged, on which key, and the transaction it traces to. Claude carries on with the task. You did not open an account with the provider, and no provider key exists anywhere Claude can read.

The refusal

The success is the less interesting half. Run the same call with a ceiling below the price:

{ "service": "exa", "action": "search", "params": { "...": "..." }, "max_cost_cents": 1 }

What Claude receives is a refusal, with the reason:

{
  "error": "over_max",
  "message": "price is 5¢ but max_cost_cents was 1",
  "price_cents": 5
}

Nothing was charged. The provider was never contacted. The attempt is recorded against Claude's key with that reason, and Claude gets the reason back, so it can raise the ceiling, choose a cheaper line from the plan, or continue without. This is the control that makes the whole thing safe to leave running: Claude has to state the most it will pay on every call, and the system will not let it pay more. A well-behaved Claude sets the ceiling from the plan and never sees this message. A misbehaving one, or one that has been talked into something by a page it scraped, sees it constantly and costs you nothing.

Above the per-call ceiling sit the limits on the key itself: which categories Claude may spend in, from Data, Search, Scraping, Media, Compute, LLM router, and Outbound, and how much it may spend in a month. One key per agent, one category list, one monthly number. That is the complete configuration, and it is described in how to give an AI agent a budget.

What Claude still cannot buy

This is not a card, and it is worth being precise about what that rules out, because "let Claude buy things online" is usually a question about shopping. Through this path Claude can pay for anything that is an API in the catalog: search and research, scraping, people and company data, public records, compute, media generation, memory. It cannot check out at a retailer, book a flight, buy groceries, or take out a subscription. Those are merchant purchases, they need a card or a checkout protocol, and Vaaya does not issue cards. The full boundary is drawn in what an AI agent can buy through Vaaya today.

There is one more thing Claude cannot do without you, and it is deliberate. Anything outbound, an email or a message Claude drafts to a person outside the account, waits for your approval before it is sent. Paid API calls are governed by the ceiling, because a person asked to approve five hundred five-cent searches will approve the five-hundred-and-first without reading it. An email cannot be refunded, so that one gets a human.

What is behind the key

The account Claude's key draws on is funded by a welcome credit of up to $10 that needs no card, then by a prepaid pack of $10, $30, or $100, or by a credit line sized from your GitHub history and settled weekly by a card that stays on the account and never reaches Claude. Claude sees one balance and one policy. It does not know which pot a call came from, and it does not need to.

claude mcp add --transport http vaaya https://vaaya.ai/mcp

Questions

Can Claude buy things online?

Claude can pay for APIs through an MCP server that holds the provider relationships: search, scraping, contact data, compute, media, and research, metered per call. It cannot check out at a retailer, buy a subscription, or book a flight through this path, because those are merchant purchases and this is not a card.

How do I let Claude pay for an API?

Run claude mcp add --transport http vaaya https://vaaya.ai/mcp for Claude Code, or npx @vaaya/mcp install for Claude Desktop. Claude then asks consult for a priced plan and calls use with a maximum cost. The call runs only if the price is at or under that ceiling, and is billed only on success.

Does Claude need a card to pay for tools?

No. Claude holds a key to an account a person owns, with categories and a monthly limit on the key. The account carries a welcome credit that needs no card, and can be funded by prepaid packs or a GitHub-backed credit line. Claude never sees a card or a vendor key.

Give your agents the paid internet.

Install Vaaya and let your agents do this, and much more, through one integration.

npx @vaaya/mcp install