{
  "openapi": "3.1.0",
  "info": {
    "title": "customs.dog",
    "version": "1.0.0",
    "description": "Pet travel-document storage + border trip-readiness. The agent interface is a Model Context Protocol (MCP) server at POST /mcp (JSON-RPC 2.0, streamable-http). Authenticate with a per-household Bearer API key. Full tool docs: /.well-known/mcp-server-card.json and /AGENTS.md.",
    "contact": { "name": "Capital Thought, LLC", "url": "https://customs.dog" }
  },
  "servers": [{ "url": "https://customs.dog" }],
  "paths": {
    "/mcp": {
      "post": {
        "operationId": "mcp",
        "summary": "MCP server (JSON-RPC 2.0)",
        "description": "Model Context Protocol endpoint. Tools: customs_prep, customs_overview, customs_list_pets, customs_list_documents, customs_check_trip_readiness (the flagship — cleared/caution/blocked for a pet+destination+date), customs_upcoming_trips. Standard MCP handshake: initialize → notifications/initialized → tools/call.",
        "security": [{ "bearerAuth": [] }],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["jsonrpc", "method"],
                "properties": {
                  "jsonrpc": { "type": "string", "enum": ["2.0"] },
                  "id": { "type": ["number", "string", "null"] },
                  "method": { "type": "string", "example": "tools/call" },
                  "params": { "type": "object" }
                }
              }
            }
          }
        },
        "responses": {
          "200": { "description": "JSON-RPC result (application/json or text/event-stream)." },
          "401": { "description": "Missing or invalid API key." }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Per-household API key. Mint it in the web app: Settings → API keys."
      }
    }
  }
}
