Skip to content
Back to Agent Broker

Card snapshot

smb-broker.onrender.com · 2026-07-08 06:39:46 UTC · 3acf4bf8db18f4b821f1eadce6e351ce1e8d8d0f2028f3a677725255950adacf

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "protocolVersion": "0.2.5",
  "name": "Agent Broker",
  "description": "AI agents find, verify, message, and book appointments with small businesses worldwide. Read tools (find_business, verify_business, self_test, preview_cost) are free. Write tools require an X-Agent-Identity token. Built-in TCPA/GDPR/CASL compliance gate. Connect via the MCP endpoint below (streamable-http). Note: micropayment billing (x402/USDC) is coming soon \u2014 not yet active.",
  "url": "https://smb-broker.onrender.com/mcp",
  "preferredTransport": "streamable-http",
  "version": "1.0.2",
  "provider": {
    "organization": "Agent Broker",
    "url": "https://smb-broker.onrender.com"
  },
  "documentationUrl": "https://smb-broker.onrender.com/llms.txt",
  "capabilities": {
    "streaming": true,
    "pushNotifications": true,
    "stateTransitionHistory": true
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "find_business",
      "name": "Find Business",
      "description": "Given criteria (vertical, location, capability, price band, availability window), return ranked candidate SMBs from the verified supply network. Returns only curated, verified, transactable businesses \u2014 not raw directory results.",
      "tags": [
        "sync",
        "read_only"
      ],
      "examples": [
        "",
        ""
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "verify_business",
      "name": "Verify Business",
      "description": "Confirm that an SMB is real, currently operating, and capable of the requested service. Performs a live capability probe against the business's channel.",
      "tags": [
        "sync",
        "read_only"
      ],
      "examples": [
        ""
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "send_message",
      "name": "Send Message",
      "description": "Send a message on behalf of an agent's user or an SMB across SMS, email, or voice. Five message types: transactional, reminder, follow_up, notification, marketing. Every send routes through a non-bypassable compliance gate (TCPA, GDPR, CASL, PDPL across 22 jurisdictions) that enforces opt-in consent for marketing/promotional content \u2014 marketing without recorded consent is rejected at runtime with a structured compliance_violation receipt. Channel is abstracted: specify intent and recipient; the service selects and falls back across channels.",
      "tags": [
        "sync_fast",
        "write",
        "compliance_gated"
      ],
      "examples": [
        "",
        ""
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "capture_lead",
      "name": "Capture Lead",
      "description": "Structured intake of a prospect into an SMB's funnel with validation, enrichment hooks, and deduplication. Inserts into the SMB's CRM or direct-booking pipeline if available.",
      "tags": [
        "sync_fast",
        "write",
        "compliance_gated"
      ],
      "examples": [
        ""
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "schedule_appointment",
      "name": "Schedule Appointment",
      "description": "Availability lookup, hold, confirm, reschedule, or cancel appointments with an SMB. Routes through the SMB's native booking system if available, falls back to voice AI or web form.",
      "tags": [
        "async_by_default",
        "write",
        "compliance_gated"
      ],
      "examples": [
        "",
        ""
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "send_transactional_confirmation",
      "name": "Send Transactional Confirmation",
      "description": "Idempotent transactional messages: OTPs, booking confirmations, payment receipts, cancellation notices. Guaranteed delivery via redundant channels.",
      "tags": [
        "sync_fast",
        "write",
        "compliance_gated"
      ],
      "examples": [
        ""
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "handle_inbound",
      "name": "Handle Inbound",
      "description": "Receive, classify, and route inbound messages on behalf of an SMB. Classifies intent (booking request, cancellation, inquiry, complaint), enriches with context, and routes to the appropriate handler or escalation path.",
      "tags": [
        "async_by_default",
        "compliance_gated"
      ],
      "examples": [
        ""
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "escalate_to_human",
      "name": "Escalate To Human",
      "description": "Hand off an in-flight task to a human operator with a full context bundle: transcript, prior actions, identifiers, and a recommended next step.",
      "tags": [
        "async_by_default",
        "compliance_gated"
      ],
      "examples": [
        ""
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_status",
      "name": "Get Status",
      "description": "Query the current state of any in-flight async operation by operation_id.",
      "tags": [
        "sync"
      ],
      "examples": [
        ""
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_outcome",
      "name": "Get Outcome",
      "description": "Retrieve the final OutcomeReceipt for a completed operation.",
      "tags": [
        "sync"
      ],
      "examples": [
        ""
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "preview_cost",
      "name": "Preview Cost",
      "description": "Return an expected cost estimate, latency estimate, and success-probability estimate for a proposed call before execution. Accuracy SLO: actual cost within \u00b15% of preview.",
      "tags": [
        "sync",
        "read_only"
      ],
      "examples": [
        ""
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "self_test",
      "name": "Self Test",
      "description": "Live capability probe that verifies the service is healthy, each claimed operation is reachable, and supply network size is current. Use to verify integration before production use.",
      "tags": [
        "sync"
      ],
      "examples": [
        ""
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "import_booking_url",
      "name": "Import Booking Url",
      "description": "Turn ANY public booking URL (Cal.com, Calendly, Doctolib, Booksy, Fresha, OpenTable, Setmore, Square, Acuity, Schedulista, Squarespace, BookMyCity) into a callable smb_id you can immediately use with schedule_appointment, send_message, or capture_lead. Idempotent \u2014 calling twice returns the same smb_id.",
      "tags": [
        "sync"
      ],
      "examples": [
        "",
        ""
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "call_business",
      "name": "Call Business",
      "description": "Place a conversational voice-AI phone call to a business on a consumer's behalf and return a structured answer. THE differentiated capability: reach the ~60M long-tail SMBs that have NO API and NO booking page \u2014 only a phone number. An AI agent cannot pick up a phone and hold a conversation; this tool does. Give a plain-language objective; the voice AI navigates the call and extracts the answer. Business-directed (B2B), far less restricted than calling consumers \u2014 but the compliance gate still enforces recording consent per jurisdiction. Async: returns a call handle; poll get_outcome for the transcript + extracted fields.",
      "tags": [
        "async_by_default",
        "compliance_gated"
      ],
      "examples": [
        ""
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ],
  "_meta": {
    "transport": "mcp",
    "mcpEndpoint": "https://smb-broker.onrender.com/mcp",
    "payments": {
      "status": "coming_soon",
      "note": "Per-call micropayment billing (x402/USDC on Base) is in development. Currently all tools are callable at no cost. This field will be updated when billing goes live."
    }
  }
}