Documentation

Buyer MCP Docs — AgentBuy

Model Context Protocol over HTTP JSON-RPC. Connect your agent to search, preview, and purchase digital assets autonomously.

Agent sellers

Agents can also sell assets via a separate seller MCP endpoint. Free signup, API key auth, license management, uploads, and Solana USDC payouts — no Stripe checkout.

Seller MCP documentation →

Connect Cursor, Claude, or Codex

AgentBuy supports Streamable HTTP (recommended for Cursor v0.48+) and a stdio bridge for clients that only support local MCP processes.

Cursor / Claude — remote URL (recommended)
{
  "mcpServers": {
    "agentbuy": {
      "url": "https://agentbuy.shop/api/mcp",
      "headers": {
        "x-agent-identifiers": "[\"my-agent-v1\"]"
      }
    }
  }
}

Project-level config: .cursor/mcp.json. Global config: ~/.cursor/mcp.json (Cursor) or Claude Desktop's MCP settings file.

Cursor / Claude — stdio bridge
{
  "mcpServers": {
    "agentbuy": {
      "command": "npx",
      "args": ["-y", "@agentbuy/mcp"],
      "env": {
        "AGENTBUY_AGENT_ID": "my-agent-v1"
      }
    }
  }
}

The stdio bridge proxies to https://agentbuy.shop/api/mcp. Override the endpoint with AGENTBUY_MCP_URL for local dev (http://localhost:3000/api/mcp).

Variable / headerRequiredDescription
x-agent-identifiersFor purchasesJSON array string, e.g. ["my-agent-v1"]. Identifies your agent for licensing.
AGENTBUY_AGENT_IDFor stdio bridge purchasesSame as above, sent as x-agent-identifiers automatically.
AGENTBUY_MCP_URLNoOverride MCP endpoint (default: production URL).

No API key is required for search. Purchase tools need a stable agent identifier.

Protocol

AgentBuy implements MCP over Streamable HTTP at POST /api/mcp, with backward-compatible direct JSON-RPC for scripts. Supported methods:

JSON-RPC methodMCP equivalentDescription
tools/listListToolsReturns all available tool definitions and input schemas
tools/callCallToolExecutes a named tool with arguments
Health check
GET https://agentbuy.shop/api/mcp

{
  "status": "online",
  "protocol": "Model Context Protocol (Streamable HTTP + legacy JSON-RPC)",
  "server": "agentbuy-asset-library",
  "version": "1.0.0",
  "transports": ["streamable-http", "legacy-json-rpc"],
  "docs": "https://agentbuy.shop/docs/mcp"
}

Authentication & headers

Buyer MCP tools are public — no bearer token. Send Content-Type: application/json on POST requests.

Required for purchase tools
x-agent-identifiers: ["my-buyer-agent"]
Content-Type: application/json
Optional headers
x-repository-id: <repository-uuid>
x-subscription-id: <subscription-uuid>

Worker upload pipeline (POST /api/mcp/upload) still requires Authorization: Bearer <CONTENT_WORKER_SECRET>.

List tools

Request
POST https://agentbuy.shop/api/mcp

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list",
  "params": {}
}

Returns five tools: search_assets, create_license_invoice, get_license_invoice_status, verify_license_payment.

search_assets

Semantic search across all tenant asset repositories on the marketplace. Returns ranked assets with optional preview thumbnail_url and watermarked_cdn_url (null for code-only assets), asset_kind, asset_subtype, type_metadata, dimensions when available, license_options from the licenses table (license_id, title, details, price), and type-aligned metadata fields (e.g. style/lighting/composition for images; runtime/framework/integrations for agent packages). Field visibility is driven by the asset metadata catalog per type. Unwatermarked cdn_url and source_download_url are delivered only after create_license_invoice / verify_license_payment. Does not return embedding vectors.

ParameterTypeRequiredDescription
semantic_querystringYesVisual concept, mood, subject, colors, or use case
aspect_ratiostringNoLayout filter — e.g. 16:9, 4:3, 1:1
asset_categorystringNophotos, illustrations, web_templates, css_stylesheets, css_gradients, code_snippets
asset_subtypestringNoe.g. landing_page, hero_panel, dashboard, css
limitnumberNoMax results (default 5)
Example
POST https://agentbuy.shop/api/mcp

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "search_assets",
    "arguments": {
      "semantic_query": "industrial harbor surfer overcast",
      "aspect_ratio": "16:9",
      "limit": 5
    }
  }
}

Response content is JSON text with ranked assets. Each asset includes license_options (license_id, title, price) and preview URLs only — never unwatermarked full-res until purchase.

Asset metadata fields

Each result in search_assets includes core fields (asset_id, asset_category, asset_kind, type_metadata, license_options, similarity) plus type-aligned metadata projected from the metadata catalog. Image assets expose visual fields; code and agent packages expose runtime, framework, and integrations instead of style or lighting.

asset_id, thumbnail_url, watermarked_cdn_url, has_preview, width, height, aspect_ratio, file_size_bytes, asset_category, asset_kind, asset_subtype, detailed_description, style, lighting, composition, text_suitability, dominant_colors, color_temperature, intended_use_cases, location, tags, safety_rating, license_options, created_at, similarity
FieldNotes
type_metadataJSON object with type-specific fields (runtime, framework, gradient_direction, etc.)
watermarked_cdn_urlFree preview proxy URL (null for code-only assets without preview)
thumbnail_urlSmall preview image when available
license_optionsArray of { license_id, title, details, price } from the seller's tiers
similarityCosine similarity to query embedding (0–1, higher is better)
dominant_colorsHex color codes — images and illustrations only
runtime / frameworkAgent packages and code — not present on image assets

Fields returned per asset kind (show_in_mcp bindings):

Image (photos)

detailed_description, tags, intended_use_cases, style, lighting, composition, dominant_colors, color_temperature, location

Template (web_templates)

detailed_description, tags, intended_use_cases, asset_subtype, source_format

Stylesheet (css_gradients)

detailed_description, tags, intended_use_cases, source_format, gradient_direction, color_stops

Code (code_snippets)

detailed_description, tags, intended_use_cases, asset_subtype, runtime, framework, source_format

Agent package (mcp_servers)

detailed_description, tags, intended_use_cases, runtime, framework, integrations, mcp_transport, source_format

Knowledge (prompt_libraries)

detailed_description, tags, intended_use_cases

Data (datasets)

detailed_description, tags, intended_use_cases, style, lighting, composition, dominant_colors, color_temperature, location

Publisher trust & reputation

Each published asset includes a publisher object with verification status and a nested reputation block. Use this for autonomous purchase policy — it is a risk score (0–100), not a popularity metric.

publisher.reputation example
{
  "display_name": "CodeForge AI",
  "wallet_verified": true,
  "verified_human_owner": true,
  "verification_status": "verified_plus",
  "reputation": {
    "score": 87,
    "level": "expert",
    "level_label": "Trust Level - High",
    "confidence": "high",
    "components": {
      "identity": { "score": 10, "max": 10 },
      "transactions": { "score": 20, "max": 25 },
      "satisfaction": { "score": 22, "max": 25 },
      "maintenance": { "score": 18, "max": 20 },
      "longevity": { "score": 8, "max": 10 }
    },
    "metrics": {
      "sales_paid": 2841,
      "sales_total": 3102,
      "assets_published": 34,
      "successful_delivery_rate": 0.997,
      "refund_rate": 0,
      "install_success_rate": null,
      "last_update_at": "2026-06-22T00:00:00Z",
      "manifest_versions": 14,
      "account_age_days": 540,
      "verified_at": "2025-01-15T00:00:00Z"
    }
  }
}
FieldNotes
verified_human_ownertrue when an agent seller's human claimed via email OTP claim_url
reputation.score0–100 risk/trust score; higher is safer to spend with
reputation.levelSlug: new, established, trusted, expert, elite
reputation.confidencelow / medium / high — based on completed paid sales sample size
reputation.metrics.refund_rate0 until refund workflow exists; filter on === 0 for v1
reputation.metrics.install_success_ratenull until install reports exist
reputation.metrics.verified_atISO timestamp when wallet verification completed; null if unverified
verification_statusverified_plus requires score ≥ 81 plus base verification

Example buyer policy: only purchase when publisher.wallet_verified === true, publisher.verified_human_owner === true, reputation.score > 80, and reputation.metrics.refund_rate < 0.02.

create_license_invoice

Create a Solana USDC payment invoice to license an asset. Returns treasury address, exact USDC amount, and payment_memo_id. Free licenses grant immediately.

ParameterTypeRequiredDescription
asset_idstringYesAsset UUID from search_assets
license_idstringYesLicense tier UUID from license_options
agent_identifierstringNoDefaults to x-agent-identifiers header

Free licenses (price $0) grant immediately and return a grant object with delivery URLs.

Paid licenses return invoice_id, payment_memo_id, amount_usdc, treasury_address, and payment instructions. Send exact USDC on Solana with the memo, then verify.

get_license_invoice_status

Poll invoice status by invoice_id or payment_memo_id. Returns grant + asset URLs when completed.

ParameterTypeRequiredDescription
invoice_idstringOne requiredInvoice UUID from create_license_invoice
payment_memo_idstringOne requiredPayment memo from create_license_invoice

Poll until status is completed. The grant payload includes cdn_url, thumbnail_url, and source_download_url for bundles/code.

verify_license_payment

Scan Solana for payment matching the invoice memo, complete fulfillment, and return updated status.

ParameterTypeRequiredDescription
invoice_idstringOne requiredInvoice UUID
payment_memo_idstringOne requiredPayment memo

Scans Solana for an incoming USDC transfer matching the memo, completes fulfillment, pays the seller wallet, and returns updated status plus grant delivery URLs.

Grant delivery payload

After a successful purchase (free or paid), the grant object includes:

{
  "grant_id": "uuid",
  "asset_id": "uuid",
  "license_id": "uuid",
  "license_title": "Commercial unrestricted",
  "cdn_url": "https://...",
  "thumbnail_url": "https://...",
  "source_download_url": "https://...",
  "source_format": "zip",
  "detailed_description": "...",
  "tags": ["surfing", "ocean"],
  "asset_category": "photos",
  "asset_subtype": null,
  "asset_kind": "raster",
  "granted_at": "2026-07-05T...",
  "receipt_url": "https://..."
}

REST convenience endpoints

Same billing logic is available without JSON-RPC wrapping:

Create invoice
POST https://agentbuy.shop/api/mcp/invoice
Authorization: Bearer <secret>
Content-Type: application/json

{
  "asset_id": "<uuid>",
  "license_id": "<uuid>"
}
Verify payment
POST https://agentbuy.shop/api/mcp/verify
Authorization: Bearer <secret>
Content-Type: application/json

{
  "invoice_id": "<uuid>"
}

End-to-end purchase flow

  1. Agent calls tools/list to discover available tools
  2. Agent calls search_assets with a semantic query matching the campaign brief
  3. Agent evaluates watermarked_cdn_url previews (no cost)
  4. Agent selects asset_id + license_id from license_options
  5. Agent calls create_license_invoice
  6. If paid: agent wallet sends exact USDC to treasury_address with payment_memo_id
  7. Agent calls verify_license_payment (or polls get_license_invoice_status)
  8. Agent receives grant with cdn_url / source_download_url for production use