{
  "protocolVersion": "0.3.0",
  "name": "Robauto",
  "version": "0.7.1",
  "description": "Robauto MCP — Agent Intelligence & Brand Discovery Infrastructure. Agent intelligence: readiness scans, agent-traffic measurement and network AI-search data. Brand discovery: resolved brand profiles, contacts, policies, products and agent endpoints, plus durable agent identity and memory (Robot Soul).",
  "url": "https://robauto.ai",
  "documentationUrl": "https://robauto.ai/mcp-server",
  "provider": {
    "organization": "Robauto",
    "url": "https://robauto.ai"
  },
  "supportedInterfaces": [
    {
      "transport": "MCP_STREAMABLE_HTTP",
      "url": "https://mcp.robauto.ai",
      "description": "Robauto MCP server (no login required)"
    },
    {
      "transport": "MCP_STREAMABLE_HTTP",
      "url": "https://mcp.robauto.ai/auth",
      "description": "Robauto MCP server, owner-scoped (OAuth 2.1 with dynamic client registration)"
    },
    {
      "transport": "HTTP_JSON",
      "url": "https://robauto.ai/api/public",
      "description": "Public REST API (OpenAPI at /openapi.json)"
    },
    {
      "transport": "HTTP_JSON",
      "url": "https://robauto.ai/api/soul",
      "description": "Robot Soul identity and memory service"
    }
  ],
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "stateTransitionHistory": false,
    "authenticatedExtendedCard": false,
    "extensions": [
      {
        "uri": "https://ap2-protocol.org/extensions/ap2/v0.1.0",
        "name": "ap2",
        "description": "Agent Payments Protocol (AP2). Robauto acts as a merchant: agents can purchase Signal scans, entity audits, llms.txt generation and featured placement using cryptographically-signed mandates.",
        "required": true,
        "params": {
          "roles": [
            "merchant"
          ],
          "paymentMethods": [
            "x402",
            "card"
          ],
          "supportedMandates": [
            "intent",
            "cart",
            "payment"
          ],
          "acpDiscovery": "https://robauto.ai/.well-known/acp.json",
          "x402Discovery": "https://robauto.ai/.well-known/x402.json",
          "catalog": "https://robauto.ai/api/public/catalog",
          "specs": [
            "https://github.com/google-agentic-commerce/AP2/tree/v0.1.0",
            "https://github.com/google-agentic-commerce/ap2"
          ]
        }
      },
      {
        "uri": "https://github.com/google-agentic-commerce/ap2/tree/v0.1.0",
        "name": "ap2",
        "description": "AP2 (Agent Payments Protocol) merchant extension — spec-repo alias of the canonical ap2 extension URI.",
        "required": false,
        "params": {
          "roles": [
            "merchant"
          ],
          "alias_of": "https://ap2-protocol.org/extensions/ap2/v0.1.0"
        }
      }
    ]
  },
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "get_site_agent_card",
      "name": "One canonical agent card for any website",
      "description": "Return one canonical machine-readable object for a domain: identity and category, description, declared products with checkout URLs, contact routes, policies, capabilities (llms.txt, MCP server card, A2A agent card, agent payments), agent and MCP endpoints, accepted payment methods, verification and freshness counts, and the stored Agent Readiness score. This is the single call to make before deciding whether and how to transact with a site — it replaces get_brand_profile plus get_brand_contacts plus get_brand_policies plus get_brand_products. Every contact and policy value carries the page it came from and the day it was last checked; nothing is withheld for age. Capability findings are a live read-only fetch of the site's own discovery files.",
      "tags": [
        "read",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "ask_brand",
      "name": "Ask a plain question about a brand",
      "description": "Ask a plain-language question about a company and get an answer grounded strictly in that company's published agent card: what it sells, who to contact for support or disputes, its refund and shipping policy, which products fall under a price, how ready it is to deal with agents. Nothing outside the card is used, no fact is invented, and every value carries the day it was last checked. The full card and its source URLs are returned alongside the answer so you can verify every claim. Use this instead of chaining four lookup tools.",
      "tags": [
        "read",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "compare_brands",
      "name": "Compare brands side by side",
      "description": "Compare two to five domains on the criteria you choose: products, pricing range, policies, agent readiness, contact routes and agent capabilities. Returns one structured row per domain plus a readiness ranking for the domains that have a score. A blank column means nothing is published for that domain yet, which is itself the finding — it is never filled in with a guess. Use this to choose between suppliers or vendors on evidence an agent can check.",
      "tags": [
        "read",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_network_data",
      "name": "Robauto network data in one call",
      "description": "Fetch Robauto's public network data with one call. view='summary' (default) returns AI-search KPIs plus the top five sites and agents; 'top_sites' and 'top_agents' return the public leaderboards ranked by agent visits; 'boosts' returns the boosted-content feed; 'featured' returns the featured brand and active brand agents; 'ai_search' returns the full AI-search KPI block with the engine mix. Network-wide aggregates only — no owner identity, contact details or private per-site analytics. This replaces get_top_sites, get_top_agents, get_boost_feed, get_featured_brands and get_ai_search_data.",
      "tags": [
        "read",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "find_brands",
      "name": "Find a brand in the agent resolution index",
      "description": "Search Robauto's brand resolution index by name or domain and return the matching domains with category, agent readiness score, how many contact and policy details are currently published, and the canonical profile URL. Use this first when you only know a company's name.",
      "tags": [
        "read",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_brand_profile",
      "name": "Full agent resolution profile for one domain",
      "description": "Return everything published for one brand domain: official website, category, agent readiness, whether the brand claimed the profile, freshness counts, and every contact and policy detail with its source page, last-checked date and method (crawled, submitted, verified or reported). Nothing is withheld for age; the source URL and last-checked date stay so you can re-check anything yourself.",
      "tags": [
        "read",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_brand_contacts",
      "name": "Support, dispute, escalation, legal and unsubscribe routes",
      "description": "Return only the contact routes for a brand domain: support, dispute or chargeback, escalation, legal notices, and unsubscribe / opt-out (unsubscribe URL, email preferences, opt-out method, do-not-sell and data-deletion routes). Role mailboxes only, never a named individual. Every route carries its source page and last-checked date; nothing is withheld for age.",
      "tags": [
        "read",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_brand_policies",
      "name": "Returns, refunds, shipping, warranty, privacy and AI-agent policies",
      "description": "Return the published policy pages for a brand domain: returns and refunds (with the refund window in days when known), shipping, warranty, cancellation, privacy, terms and any stated AI-agent policy. Every policy carries its source page and last-checked date. Read the policy before transacting on a human's behalf.",
      "tags": [
        "read",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_brand_agent_endpoints",
      "name": "MCP server and agent-to-agent endpoints for a domain",
      "description": "Return the machine-to-machine entry points a brand publishes for agents: its MCP server endpoint and MCP manifest, its agent card (A2A / .well-known/agent-card.json), any ChatGPT or OpenAI connector it exposes, its agent-facing API docs (OpenAPI), how an agent signs in (auth discovery), and its agent payments endpoint (x402 / ACP / AP2). Each value carries the page it came from and the day it was last checked; nothing is withheld for age. Prefer these endpoints over scraping the website.",
      "tags": [
        "read",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "report_contact_outcome",
      "name": "Report whether a published contact route actually worked",
      "description": "Tell Robauto whether a route from get_brand_contacts or get_brand_policies actually worked. Reports are evidence, never truth: they are logged against your client id, counted, and a route several independent clients report broken is queued for a human verifier. Nothing you report overwrites a published value on its own.",
      "tags": [
        "write",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "submit_brand",
      "name": "Add or update a brand in the index in one call",
      "description": "Add a brand to the resolution index, or fill in fields it is missing — identity plus every contact, opt-out and policy field in a single call. Built for crawling agents: read a company's own pages, then send what you found. Every field must arrive with the page you read it from, and that page must be on the brand's own domain — no source, no store. Values land with method 'submitted' and are queued for a human check; they never overwrite a human-verified value. Only role mailboxes are stored, never a named individual. Leave a field out rather than guessing it. Pass `brands` to submit up to 20 domains per call.",
      "tags": [
        "write",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "agent_scan",
      "name": "Agent Scan — full agent-readiness audit",
      "description": "Run Robauto's Agent Scan on any public domain: 25 read-only checks across four levels (Signal Basics, Technical Groundwork, Agent Integration, Agentic Commerce) covering robots.txt, sitemap, llms.txt, structured data, Link response headers, API catalog, OpenAPI, markdown content negotiation, Auth.md and OAuth/OIDC discovery, A2A agent card, MCP server card, agent skills, Content Signals, WebMCP, DNS-AID, RFC 9421 signatures, x402, ACP, AP2, MPP and UCP. Returns a 0-100 readiness score, per-level scores, and for every gap an implementation fix plus a paste-ready agent prompt. Reads only public pages and discovery files and changes nothing on the target site.",
      "tags": [
        "read",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "search_products",
      "name": "Search products across the network",
      "description": "Search products across every Robauto brand that has connected an approved product feed. Results are the brand's DECLARED layer — catalog data the brand publishes itself (Google Merchant Center feed, Schema.org Product/Offer JSON-LD, or /products.json) — never Robauto's observed scan data. Every row carries its layer label, fetched_at, the brand's /p/ agent page, a UTM-tagged checkout URL and which commerce protocols the brand supports (deep-link, prefilled checkout, x402, ACP, AP2, MPP, UCP). Price and availability are always returned with fetched_at attached; settle against the brand's checkout URL, never a cached number.",
      "tags": [
        "read",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_brand_products",
      "name": "One brand's product catalog",
      "description": "Return the declared product catalog for a single domain: title, description, image, category, price, availability, UTM-tagged checkout URL, the brand's /p/ agent page and the commerce protocols the brand supports. Brand-submitted data, labelled 'declared', stamped with fetched_at; nothing is withheld for age.",
      "tags": [
        "read",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "list_learn_content",
      "name": "Robauto Learn courses and lessons",
      "description": "List the Robauto Learn micro-courses (https://robauto.ai/learn) with their slug, title, estimated minutes and lesson count. Pass a course slug to get every lesson in order with its headline, body text, source name, source URL and canonical lesson URL, so an agent can cite or teach the material directly. Public educational content — no user data involved.",
      "tags": [
        "read",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "list_repos",
      "name": "Robauto public source repositories",
      "description": "List Robauto's public git repositories with their clone URL, what each one contains, and the install command for the MCP server. Use this to fetch the authoritative tool contracts and client config instead of guessing them.",
      "tags": [
        "read",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "register_site_for_human",
      "name": "Register a site for a human",
      "description": "Invite a human to create a Robauto account and start tracking their site. Emails the invite and creates no site record until the human registers. Always pass a real agent_id for attribution.",
      "tags": [
        "write",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "soul_verify",
      "name": "Verify a Robot Soul",
      "description": "Request a one-time Robot Soul challenge, then submit the agent's Ed25519 public key and signature to receive a 90-day scoped bearer token.",
      "tags": [
        "write",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "soul_recall",
      "name": "Recall soul memory",
      "description": "Read an agent's persistent Robot Soul memory using the bearer token returned by soul_verify. Optionally return one semantic key.",
      "tags": [
        "read",
        "free"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "soul_remember",
      "name": "Write soul memory",
      "description": "Merge structured facts into an agent's durable Robot Soul memory. Requires the bearer token from soul_verify and costs $0.01 USDC over x402.",
      "tags": [
        "write",
        "metered"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "soul_pay",
      "name": "Soul payment",
      "description": "Return Robot Soul tiers, per-action USDC pricing, and x402 payment terms. Use this before calling a paid soul action.",
      "tags": [
        "read",
        "metered"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ],
  "dataPolicy": "Robauto never exposes user contact details, account identities, or a single site's proprietary analytics over MCP. Site- and agent-level traffic is published only where the site owner already publishes it (the public leaderboards), and everything else is returned as network aggregates.",
  "repositories": [
    "https://github.com/robauto-ai/mcp",
    "https://github.com/robauto-ai/dsh-growth"
  ]
}
