{
  "$schema": "https://modelcontextprotocol.io/schemas/server-card/2025-06-18",
  "protocolVersion": "2025-06-18",
  "serverInfo": {
    "name": "stayingapi",
    "title": "Staying API - Airbnb Data API",
    "version": "1.0.0",
    "publisher": "Staying API",
    "website": "https://stayingapi.com",
    "iconUrl": "https://stayingapi.com/favicon-192.png",
    "description": "REST + MCP access to Airbnb stay data. One canonical Stay shape; five tools for id and URL lookup, photos, reviews, plus structured search."
  },
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://api.stayingapi.com/mcp"
  },
  "endpoint": "https://api.stayingapi.com/mcp",
  "capabilities": {
    "tools": {
      "listChanged": false
    }
  },
  "auth": {
    "types": [
      "bearer",
      "oauth2"
    ],
    "bearer": {
      "format": "sk_<32 char base64url>",
      "issue": "https://stayingapi.com/app/keys",
      "signup_url": "https://stayingapi.com/signup",
      "management_url": "https://stayingapi.com/app/keys"
    },
    "oauth2": {
      "authorization_endpoint": "https://api.stayingapi.com/oauth/authorize",
      "token_endpoint": "https://api.stayingapi.com/oauth/token",
      "registration_endpoint": "https://api.stayingapi.com/oauth/register",
      "scopes_supported": [
        "mcp:access"
      ],
      "code_challenge_methods_supported": [
        "S256"
      ],
      "pkce_required": true
    }
  },
  "authentication": {
    "oauth2": {
      "authorization_url": "https://api.stayingapi.com/oauth/authorize",
      "token_url": "https://api.stayingapi.com/oauth/token",
      "registration_url": "https://api.stayingapi.com/oauth/register",
      "scopes": [
        "mcp:access"
      ],
      "pkce_required": true
    },
    "bearer": {
      "format": "Bearer sk_<32 char base64url>",
      "signup_url": "https://stayingapi.com/signup",
      "management_url": "https://stayingapi.com/app/keys"
    }
  },
  "tools": [
    {
      "name": "lookup_stay_by_id",
      "title": "Lookup stay by id",
      "description": "Look up a single Airbnb listing by its numeric id. Returns the full canonical Stay object. Costs 1 credit on the Staying API account.",
      "inputSchema": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Airbnb listing id (numeric string)"
          },
          "fields": {
            "type": "string",
            "description": "Comma-separated field projection"
          }
        }
      }
    },
    {
      "name": "lookup_stay_by_url",
      "title": "Lookup stay by URL",
      "description": "Look up a single Airbnb listing by its listing URL. Returns the full canonical Stay object. Costs 1 credit on the Staying API account.",
      "inputSchema": {
        "type": "object",
        "required": [
          "url"
        ],
        "properties": {
          "url": {
            "type": "string",
            "description": "https://airbnb.com/rooms/<id> URL"
          },
          "fields": {
            "type": "string"
          }
        }
      }
    },
    {
      "name": "search_stays",
      "title": "Search stays",
      "description": "Search Airbnb listings by location, dates, and filters. Costs 1 credit PER RESULT returned - set maxItems to control spend (default 50, max 250).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "locationQueries": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "priceMin": {
            "type": "number"
          },
          "priceMax": {
            "type": "number"
          },
          "minBeds": {
            "type": "number"
          },
          "minBedrooms": {
            "type": "number"
          },
          "minBathrooms": {
            "type": "number"
          },
          "adults": {
            "type": "number"
          },
          "children": {
            "type": "number"
          },
          "infants": {
            "type": "number"
          },
          "pets": {
            "type": "number"
          },
          "checkIn": {
            "type": "string",
            "description": "ISO YYYY-MM-DD"
          },
          "checkOut": {
            "type": "string",
            "description": "ISO YYYY-MM-DD"
          },
          "currency": {
            "type": "string"
          },
          "locale": {
            "type": "string"
          },
          "maxItems": {
            "type": "number",
            "description": "Max results to return (1-250, default 50). Each result costs 1 credit."
          }
        },
        "required": [
          "locationQueries"
        ]
      }
    },
    {
      "name": "get_stay_photos",
      "title": "Get stay photos",
      "description": "Get the photos array for an Airbnb listing. Costs 1 credit on the Staying API account.",
      "inputSchema": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string"
          }
        }
      }
    },
    {
      "name": "get_stay_reviews",
      "title": "Get stay reviews",
      "description": "Get reviews and the rating breakdown for an Airbnb listing. Costs 1 credit on the Staying API account.",
      "inputSchema": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string"
          }
        }
      }
    }
  ],
  "documentation": {
    "guide": "https://stayingapi.com/docs/",
    "rest": "https://stayingapi.com/openapi.json",
    "agents": "https://stayingapi.com/ai-agents/",
    "openapi": "https://stayingapi.com/openapi.json",
    "quickstart": "https://stayingapi.com/quickstart/",
    "llms": "https://stayingapi.com/llms.txt",
    "llms_full": "https://stayingapi.com/llms-full.txt"
  },
  "publisher": {
    "name": "Staying API",
    "email": "support@stayingapi.com"
  },
  "trademarkNotice": "Staying API is not affiliated with, endorsed by, or sponsored by Airbnb, Inc. Airbnb is a registered trademark of Airbnb, Inc."
}
