{
  "name": "AgentDrives",
  "description": "Ask AgentDrives which software an AI agent can really use, from our agent's real test drives: find products for a task, search the directory, get one product's listing, or ask for a product to be driven, free. Send a data part {\"skill\": \"<id>\", …arguments} or plain text (a search).",
  "supportedInterfaces": [
    {
      "url": "https://agentdrives.com/api/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    },
    {
      "url": "https://agentdrives.com/api/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "0.3"
    }
  ],
  "provider": {
    "organization": "AgentDrives",
    "url": "https://agentdrives.com"
  },
  "version": "1.0.0",
  "documentationUrl": "https://agentdrives.com/data#a2a",
  "iconUrl": "https://agentdrives.com/logo.png",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false,
    "extensions": [
      {
        "uri": "https://agentdrives.com/data#mcp",
        "description": "The same directory over MCP and a REST API: the MCP endpoints with their Server Cards, the REST API's OpenAPI and its search routes, and the four lookups: by task, compare, one product's JSON and the API catalog.",
        "required": false,
        "params": {
          "mcp": [
            {
              "url": "https://agentdrives.com/api/mcp",
              "transport": "streamable-http",
              "authentication": "none",
              "server_card": "https://agentdrives.com/api/mcp/server-card"
            },
            {
              "url": "https://agentdrives.com/mcp",
              "transport": "streamable-http",
              "authentication": "optional x-api-key header",
              "server_card": "https://agentdrives.com/mcp/server-card"
            }
          ],
          "mcp_discovery": "https://agentdrives.com/.well-known/mcp.json",
          "api": {
            "openapi": "https://agentdrives.com/openapi.json",
            "catalog": "https://agentdrives.com/.well-known/api-catalog",
            "find_tools": "https://agentdrives.com/api/find-tools",
            "search": "https://agentdrives.com/api/tools",
            "tool": "https://agentdrives.com/api/tools/{slug}.json"
          },
          "lookups": [
            {
              "what": "Products that do a task, best first",
              "url": "https://agentdrives.com/api/find-tools?task=send+an+invoice",
              "mcp_tool": "find_tools_for_task"
            },
            {
              "what": "Two or three products side by side for a task",
              "url": "https://agentdrives.com/api/compare?tools=resend,postmark&task=send+an+email",
              "mcp_tool": "compare_tools"
            },
            {
              "what": "One product's record as JSON",
              "url": "https://agentdrives.com/tools/{slug}.json"
            },
            {
              "what": "Every API we offer, as an RFC 9727 catalog",
              "url": "https://agentdrives.com/.well-known/api-catalog"
            }
          ],
          "documentation": "https://agentdrives.com/data",
          "llms_txt": "https://agentdrives.com/llms.txt"
        }
      },
      {
        "uri": "https://agentdrives.com/data#agents",
        "description": "Paid over HTTP 402 at our API, not over A2A: MPP (WWW-Authenticate) and x402 (PAYMENT-REQUIRED). Each route and the rails its 402 offers.",
        "required": false,
        "params": {
          "routes": [
            {
              "method": "POST",
              "url": "https://agentdrives.com/api/orders/{id}/payment",
              "what": "An order at its listed price: the Audit or its renewal, a Payment proof, a Tool comparison or a data plan",
              "rails": [
                {
                  "id": "mpp:stripe",
                  "protocol": "mpp",
                  "method": "stripe",
                  "pays_with": "a card, through a Stripe Shared Payment Token"
                },
                {
                  "id": "mpp:tempo",
                  "protocol": "mpp",
                  "method": "tempo",
                  "pays_with": "USDC on Tempo"
                },
                {
                  "id": "mpp:evm",
                  "protocol": "mpp",
                  "method": "evm",
                  "pays_with": "USDC on Base (EIP-3009)"
                },
                {
                  "id": "x402:exact",
                  "protocol": "x402",
                  "method": "exact",
                  "pays_with": "USDC on Base, in the PAYMENT-REQUIRED header"
                }
              ]
            },
            {
              "method": "POST",
              "url": "https://agentdrives.com/api/credits/topup",
              "what": "Prepaid credit for paid calls: $5, $20, $50",
              "rails": [
                {
                  "id": "mpp:stripe",
                  "protocol": "mpp",
                  "method": "stripe",
                  "pays_with": "a card, through a Stripe Shared Payment Token"
                },
                {
                  "id": "mpp:tempo",
                  "protocol": "mpp",
                  "method": "tempo",
                  "pays_with": "USDC on Tempo"
                },
                {
                  "id": "mpp:evm",
                  "protocol": "mpp",
                  "method": "evm",
                  "pays_with": "USDC on Base (EIP-3009)"
                },
                {
                  "id": "x402:exact",
                  "protocol": "x402",
                  "method": "exact",
                  "pays_with": "USDC on Base, in the PAYMENT-REQUIRED header"
                }
              ]
            },
            {
              "method": "POST",
              "url": "https://agentdrives.com/api/paid/find-tools",
              "what": "One task search, paid per call",
              "rails": [
                {
                  "id": "mpp:tempo",
                  "protocol": "mpp",
                  "method": "tempo",
                  "pays_with": "USDC on Tempo"
                },
                {
                  "id": "mpp:evm",
                  "protocol": "mpp",
                  "method": "evm",
                  "pays_with": "USDC on Base (EIP-3009)"
                },
                {
                  "id": "x402:exact",
                  "protocol": "x402",
                  "method": "exact",
                  "pays_with": "USDC on Base, in the PAYMENT-REQUIRED header"
                }
              ]
            }
          ]
        }
      }
    ]
  },
  "securitySchemes": {
    "apiKey": {
      "apiKeySecurityScheme": {
        "location": "header",
        "name": "x-api-key",
        "description": "Optional. Your AgentDrives API key (https://agentdrives.com/app/keys, or POST https://agentdrives.com/api/agents/signup). The verified owner of a product's domain gets that product's drive detail with get_tool."
      }
    }
  },
  "securityRequirements": [
    {
      "schemes": {}
    },
    {
      "schemes": {
        "apiKey": {
          "list": []
        }
      }
    }
  ],
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "find_tools_for_task",
      "name": "Find tools for a task",
      "description": "Products an agent can use for a task in plain words, ranked by how far our agent got doing it: each with its level (0-5), the closest task we tried and how it went, where it stopped, and links to sign up, the docs and its MCP server. A product listed, not driven comes after, as status listed with no level. None we drove or listed does it: the nearest category and how to ask for a drive. The same answer as the MCP tool find_tools_for_task. Arguments: task, capability, category, self_signup, min_level, surface, access, pays_with, limit.",
      "tags": [
        "directory",
        "task",
        "agent readiness"
      ],
      "examples": [
        "{\"skill\": \"find_tools_for_task\", \"task\": \"send an invoice\"}",
        "{\"skill\": \"find_tools_for_task\", \"task\": \"create a contact\", \"self_signup\": true, \"min_level\": 3}"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "search_tools",
      "name": "Search the directory",
      "description": "Products we drove that match a query, category, minimum agent level (0-5), way in or payment rail, each with its level, where our agent stopped and its page. The same answer as the MCP tool search_tools. Arguments: query, category, min_level, agent_can_buy, agent_can_leave, pays_with, access, surface, limit, offset.",
      "tags": [
        "directory",
        "search",
        "agent readiness"
      ],
      "examples": [
        "invoicing",
        "{\"skill\": \"search_tools\", \"category\": \"crm\", \"min_level\": 3}"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "get_tool",
      "name": "Get one product's listing",
      "description": "One product's result by its slug, name or domain: its level, how far an agent gets and where it stops, what it can and can't do, tips for agents. The same answer as the MCP tool get_tool (brief: true for the headline). With the x-api-key of the product's verified owner, its drive detail too. Arguments: slug, brief.",
      "tags": [
        "directory",
        "listing",
        "agent readiness"
      ],
      "examples": [
        "{\"skill\": \"get_tool\", \"slug\": \"postmark\"}",
        "{\"skill\": \"get_tool\", \"slug\": \"monday.com\", \"brief\": true}"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "request_free_drive",
      "name": "Ask for a free drive",
      "description": "Name a product for our agent to drive and list, free: the same as the site's \"Suggest a product\" form. Arguments: url, why.",
      "tags": [
        "directory",
        "request",
        "free"
      ],
      "examples": [
        "{\"skill\": \"request_free_drive\", \"url\": \"https://example.com\", \"why\": \"Our agents send invoices with it\"}"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    }
  ]
}