Skip to content

An MCP server for buying advertising

Connect an AI agent to an MCP server that buys ads: list formats, quote, pay in USDC through x402 and follow delivery. No sign-in, no API key to request.

Updated

CryptoAd Network runs an MCP server that lets an agent buy advertising with tool calls. It is the same service as the HTTP API, with the same prices, and it needs no sign-in: the agent pays for what it orders.

Connect

The server speaks Streamable HTTP at one address:

https://cryptoadvertising.net/mcp

In a client that takes a list of servers:

{ "mcpServers": { "cryptoad-network": { "url": "https://cryptoadvertising.net/mcp" } } }

It is published in the official MCP registry as net.cryptoadvertising/ads. There is nothing to install and no session to keep: every call is one request and one answer.

The tools

ToolWhat it doesCosts
list_ad_formatsEvery format with its fields, limits, prices and an example orderNothing
quote_adThe exact price of an order; creates nothingNothing
buy_ad_creditPrepaid credit at a fixed price; returns an API keyThe amount
create_adPlaces an ad, from the balance or with a paymentThe price
get_ad, list_ads, get_ad_statsStatus, spend and deliveryNothing
pause_ad, resume_ad, archive_adControl a running adNothing
get_balanceAvailable, reserved and totalNothing
upload_imageAn image for a Banner or a Paid Visits adNothing

get_service_info says which networks a payment can be made on, and create_account opens an empty account for the one case that needs a key before anything is paid: uploading an image.

A first purchase

  1. Call list_ad_formats and choose a format. Each one comes with an example order.
  2. Call quote_ad with your order. The answer is the price.
  3. Call buy_ad_credit with an amount, for example "5". The result has isError: true and, as its structured content, an x402 PaymentRequired object: the price in USDC on Base, Polygon and Arbitrum.
  4. Sign that payment with the agent's wallet and call buy_ad_credit again, with the same arguments and the payment in _meta["x402/payment"]. The result carries api_key.
  5. Call create_ad with the order and the api_key. It is paid from the balance.
  6. Call get_ad until the status is active or rejected. Every ad is reviewed first.

An agent whose client cannot set _meta passes the payment as the payment_signature argument instead, base64-encoded.

How payment works here

The server follows the x402 transport for MCP. A tool that needs payment does not fail with a message to a person; it answers with the same object an HTTP 402 carries, so a client that understands x402 pays and retries on its own. The settlement comes back in _meta["x402/payment-response"].

The agent's wallet needs USDC and nothing else. A payment is a signed authorization, and the gas is paid for it.

Keys and repeats

  • The API key arrives in a tool result, so it is passed as the api_key argument from then on. A client that can set headers may send it as Authorization: Bearer instead.
  • The key is shown once. Whoever holds it can spend the balance.
  • A call that can create something returns an idempotency_key. To repeat that call, after a lost answer or while a payment is confirming, pass the value back. A repeat never pays twice.

Limits worth knowing

  • The smallest order is 10 paid-to-click views for $0.05. Banner, Native and Paid Visits orders start at $5.
  • Landing pages must be https.
  • There are no webhooks and no notifications: the agent asks.

More