Loomal

Bundling multiple tools into one paid MCP server.

One server with five tools, or five servers with one tool each? The answer depends on who calls them together — and you can price each tool differently either way.

Every builder with more than one tool hits this fork: ship a single MCP server that exposes everything, or split into multiple servers with their own listings and prices. Both work technically. They behave very differently commercially.

The deciding question isn't how your code is organized — it's whether an agent doing one job would call these tools in the same session. Tools that travel together belong in one server. Tools with different audiences deserve their own listings.

When bundling wins

Bundle when the tools form a workflow. A scraping server with fetch_page, extract_links, and screenshot is one product: the agent that needs one almost always needs the next, and a single connection means shared context, one config entry, and one set of credentials on your side.

Bundling also helps the model. MCP clients show the agent your full tool list with descriptions; related tools listed together read as a coherent capability, and the model picks the right one more reliably than when the workflow is scattered across servers it may not all have connected.

When separate listings win

Split when the audiences diverge. If your PDF extraction tool serves document-processing agents and your translation tool serves localization agents, neither audience benefits from the other's tool — but each listing's name, description, and category now have to hedge across both. Focused listings rank and convert better in marketplace search because the agent's query matches the whole listing, not a third of it.

Split, too, when one tool is dramatically more expensive to serve. A cheap utility bundled with a costly inference tool forces an awkward blended story; on their own, each can carry an honest price.

You can price per tool inside one bundle

Bundling does not mean uniform pricing. Because x402 quotes a price per call, your endpoint can charge by which tool the agent invoked — the 402 response simply carries a different amount. Cheap lookups stay at the $0.01 floor while heavy operations charge what they cost.

pricing.ts
import { requirePayment } from "@loomal/sdk";

const TOOL_PRICES: Record<string, string> = {
  fetch_page: "$0.01",
  extract_structured: "$0.03",
  full_site_crawl: "$0.25",
};

export const POST = requirePayment(
  (req) => ({ price: TOOL_PRICES[req.body.tool] ?? "$0.01" }),
  (req) => handleToolCall(req),
);

How this maps onto Loomal

On Loomal, a listing fronts an endpoint. A bundled server is one listing with one tool list that agents can inspect before paying; separate servers are separate listings, each with its own name, category, price field, and revenue line in the console.

That console view is worth weighing. Separate listings tell you exactly which product earns; a bundle aggregates revenue unless you track per-tool calls yourself. If you're still learning what agents actually want from you, separate listings are a cheap analytics layer.

A practical default

Start bundled if the tools share a workflow and a customer; you can always extract a breakout hit into its own listing later. Start separate if you're testing unrelated ideas — killing a failed listing is cleaner than amputating a tool from a server agents already depend on.

Whichever you choose, repricing is a one-field change in the console, so the pricing structure is never the part you're locked into.

FAQ

Can different tools on the same MCP server have different prices?

Yes. x402 prices each call at request time, so your endpoint can quote a different amount depending on which tool was invoked. The agent sees the price in the 402 response before paying, and your handler runs only after settlement.

Does a bigger tool list hurt my listing?

It can if the tools are unrelated — the listing's description has to cover everything, which dilutes how well it matches any specific search. A bundle of tools that share one job description stays sharp; a grab-bag doesn't.

Can I split a bundled server into separate listings later?

Yes, but plan for the agents already configured against the bundle. Keep the original endpoint serving its tools while you stand up the new listing, then deprecate the moved tool with a clear error message pointing to the new server.

Is there a per-listing cost on Loomal?

No listing fee either way — one bundle or five separate listings costs the same to maintain. Loomal charges 5% on settled transactions, currently waived, and each call is priced at a minimum of $0.01.

Price each tool deliberately.

Set and adjust per-call prices from the Loomal console.

Set your pricing in the console