Airbnb

Pesquise por anúncios do Airbnb e obtenha seus detalhes.

Documentação

downloads

Airbnb Search & Listings - MCP Bundle (MCPB)

Um pacote MCP abrangente para pesquisar anúncios do Airbnb com recursos avançados de filtragem e recuperação detalhada de informações de propriedades. Construído como um servidor Model Context Protocol (MCP) empacotado no formato MCP Bundle (MCPB) para fácil instalação e uso com aplicações de IA compatíveis.


🚀 Prefere não executar um servidor local? Experimente o openbnb.ai

👉 openbnb.ai é um servidor MCP hospedado que resolve o mesmo problema — pesquisar anúncios do Airbnb — sem qualquer configuração local.

Se você não quer lidar com a instalação e execução deste servidor, openbnb.ai é uma alternativa separada, totalmente hospedada, à qual você pode se conectar diretamente do seu cliente MCP. Ele vai além do que este servidor de código aberto oferece:

  • ✅ Zero configuração — sem Node, sem npx, sem arquivos de configuração, sem atualizações para gerenciar
  • ✅ Filtros avançados — controles de busca mais ricos além das ferramentas básicas aqui
  • ✅ Interface MCP — componentes de interface interativos para navegar pelos resultados, não apenas texto simples
  • ✅ Gerenciado e mantido — mantido em funcionamento para você

Acesse openbnb.ai para instruções de configuração e os detalhes de conexão para o seu cliente MCP.

Se preferir hospedar o servidor de código aberto você mesmo, continue lendo.


Recursos

🔍 Recursos Avançados de Busca

  • Busca por localização com suporte a cidades, estados e regiões
  • Suporte a localizações internacionais via geocodificação no lado do cliente, para que consultas fora dos EUA (ex.: "Paris, França", "Copenhague, Dinamarca") retornem resultados na cidade correta
  • Integração com Google Maps Place ID para segmentação precisa de localização
  • Filtro por tipo de propriedade para casas inteiras, quartos privados, quartos compartilhados ou quartos de hotel
  • Filtro por datas com suporte a datas de check-in e check-out
  • Configuração de hóspedes incluindo adultos, crianças, bebês e animais de estimação
  • Filtro de faixa de preço com restrições de preço mínimo e máximo
  • Suporte a paginação para navegar por grandes conjuntos de resultados

🏠 Informações Detalhadas da Propriedade

  • Detalhes abrangentes do anúncio incluindo comodidades, políticas e destaques
  • Informações de localização com coordenadas e detalhes do bairro
  • Regras e políticas da casa para decisões de reserva informadas
  • Descrições da propriedade e recursos principais
  • Links diretos para os anúncios do Airbnb para facilitar a reserva

🛡️ Segurança e Conformidade

  • Conformidade com robots.txt com substituição configurável para testes
  • Gerenciamento de timeout de requisições para evitar requisições penduradas
  • Tratamento aprimorado de erros com registro detalhado
  • Consciência de limite de taxa e uso respeitoso da API
  • Configuração segura através das configurações de usuário do MCPB

Instalação

Para Claude Desktop

Esta extensão é empacotada como um arquivo MCP Bundle (.mcpb). Para instalar:

  1. Baixe o arquivo .mcpb da última versão
  2. Abra o arquivo — o Claude Desktop mostrará um diálogo de instalação
  3. Configure as configurações da extensão conforme necessário

Para ignorar o robots.txt, abra as configurações do Claude Desktop, navegue até a extensão e ative a opção Ignorar robots.txt.

Para Cursor, etc.

Antes de começar, certifique-se de que o Node.js esteja instalado no seu desktop para que o npx funcione.

  1. Vá para: Configurações do Cursor > Ferramentas e Integrações > Novo Servidor MCP

  2. Adicione um dos seguintes ao seu mcp.json:

    {
      "mcpServers": {
        "airbnb": {
          "command": "npx",
          "args": [
            "-y",
            "@openbnb/mcp-server-airbnb"
          ]
        }
      }
    }
    

    Para ignorar o robots.txt em todas as requisições, use esta versão com os argumentos --ignore-robots-txt

    {
      "mcpServers": {
        "airbnb": {
          "command": "npx",
          "args": [
            "-y",
            "@openbnb/mcp-server-airbnb",
            "--ignore-robots-txt"
          ]
        }
      }
    }
    
  3. Reinicie.

Configuração

A extensão fornece as seguintes opções configuráveis pelo usuário:

Ignorar robots.txt

  • Tipo: Booleano (caixa de seleção)
  • Padrão: false
  • Descrição: Ignora as restrições do robots.txt ao fazer requisições ao Airbnb
  • Recomendação: Mantenha desativado, a menos que seja necessário para fins de teste

Desativar geocodificação de terceiros

  • Tipo: Booleano (caixa de seleção)
  • Variável de ambiente: DISABLE_GEOCODING
  • Padrão: false
  • Descrição: Ignora a etapa de geocodificação Photon/Nominatim e permite que o Airbnb resolva a string de localização por conta própria. Ativar isso restaura o comportamento anterior ao PR — cada busca vai apenas para airbnb.com, sem chamadas de terceiros.
  • Recomendação: Mantenha desativado, a menos que você precise especificamente de zero tráfego de saída de terceiros. Com ele ativado, buscas fora dos EUA podem retornar resultados incorretos. Consulte Serviços Externos.

Ferramentas

airbnb_search

Pesquise anúncios do Airbnb com opções abrangentes de filtragem.

Parâmetros:

  • location (obrigatório): Localização para pesquisar (ex.: "San Francisco, CA"). Quando fornecida sem placeId, o servidor geocodifica essa string no lado do cliente via Photon/Nominatim — consulte Serviços Externos.
  • placeId (opcional): Google Maps Place ID. Substitui location e ignora completamente a geocodificação no lado do cliente (sem chamadas de terceiros).
  • checkin (opcional): Data de check-in no formato YYYY-MM-DD
  • checkout (opcional): Data de check-out no formato YYYY-MM-DD
  • adults (opcional): Número de adultos (padrão: 1)
  • children (opcional): Número de crianças (padrão: 0)
  • infants (opcional): Número de bebês (padrão: 0)
  • pets (opcional): Número de animais de estimação (padrão: 0)
  • minPrice (opcional): Preço mínimo por noite
  • maxPrice (opcional): Preço máximo por noite
  • cursor (opcional): Cursor de paginação para navegar pelos resultados
  • propertyType (opcional): Filtrar por tipo de propriedade — entire_home, private_room, shared_room ou hotel_room
  • ignoreRobotsText (opcional): Substituir robots.txt para esta requisição

Retorna:

  • Resultados da busca com detalhes da propriedade, preços e links diretos
  • Informações de paginação para navegar por resultados adicionais
  • URL da busca para referência

airbnb_listing_details

Obtenha informações detalhadas sobre um anúncio específico do Airbnb.

Parâmetros:

  • id (obrigatório): ID do anúncio do Airbnb
  • checkin (opcional): Data de check-in no formato YYYY-MM-DD
  • checkout (opcional): Data de check-out no formato YYYY-MM-DD
  • adults (opcional): Número de adultos (padrão: 1)
  • children (opcional): Número de crianças (padrão: 0)
  • infants (opcional): Número de bebês (padrão: 0)
  • pets (opcional): Número de animais de estimação (padrão: 0)
  • ignoreRobotsText (opcional): Substituir robots.txt para esta requisição

Retorna:

  • Informações detalhadas da propriedade, incluindo:
    • Detalhes de localização com coordenadas

    • Comodidades e instalações, como seeAllAmenitiesGroups — um objeto organizado por categoria de comodidade, para que uma categoria possa ser acessada diretamente. As comodidades que o Airbnb mostra riscadas chegam em sua própria categoria "Not included":

      {
        "seeAllAmenitiesGroups": {
          "Bathroom": "Hair dryer",
          "Heating and cooling": "AC - split type ductless system, Heating",
          "Not included": "Dryer, Hot water"
        }
      }
      
    • Regras e políticas da casa

    • Destaques e descrições da propriedade

    • Link direto para o anúncio

Detalhes Técnicos

Arquitetura

  • Runtime: Node.js 18+
  • Protocolo: Model Context Protocol (MCP) via transporte stdio
  • Formato: MCP Bundle (MCPB) v0.3
  • Dependências: Dependências externas mínimas para segurança e confiabilidade

Serviços Externos

Além de airbnb.com, o servidor faz requisições de geocodificação a dois serviços de terceiros para traduzir consultas de localização em caixas delimitadoras precisas no mapa. Isso contorna o geocodificador do próprio Airbnb, que produz resultados incorretos para muitas consultas fora dos EUA (ex.: "Paris, França" cai em Vendée; "Copenhague, Dinamarca" cai em Wisconsin).

ServiçoEndpointUsado paraObservações
Photonphoton.komoot.ioGeocodificador principal, chamado em toda busca sem placeIdServiço gratuito baseado em OSM hospedado pela Komoot. Uma requisição por busca.
Nominatimnominatim.openstreetmap.orgGeocodificador de fallback, chamado apenas quando o Photon não retorna uma caixa delimitadoraSujeito à política de uso do OSMF (máx. ~1 req/seg).

Cada busca envia apenas a string location da requisição ao geocodificador — nenhum outro campo da requisição, sem geolocalização por IP, sem identificadores de rastreamento. A string de localização em si é, obviamente, a mesma string que o usuário digitou.

Como optar por não usar: há duas maneiras de pular os geocodificadores:

  • Por requisição: forneça um placeId explícito. Quando placeId está presente, o servidor usa a busca de lugares do próprio Airbnb diretamente, sem chamadas de terceiros.
  • Globalmente: defina a variável de ambiente DISABLE_GEOCODING=true. O servidor ignorará Photon/Nominatim completamente e passará a string de localização bruta ao Airbnb. Isso restaura o comportamento anterior ao PR para todas as buscas e garante zero tráfego de saída de terceiros — ao custo de resultados quebrados para localizações fora dos EUA que o geocodificador do próprio Airbnb trata incorretamente. O padrão é false.

Se um geocodificador estiver inacessível ou não retornar resultado, o servidor volta a enviar a string de localização diretamente ao Airbnb, exatamente como fazia antes — portanto, o pior caso de uma interrupção é que buscas internacionais degradem para o comportamento anterior (quebrado), não que a busca falhe completamente.

Tratamento de Erros

  • Registro abrangente de erros com carimbos de data/hora
  • Degradação graciosa quando a estrutura de página do Airbnb muda
  • Proteção contra timeout para requisições de rede
  • Mensagens de erro detalhadas para solução de problemas

Medidas de Segurança

  • Conformidade com robots.txt por padrão
  • Limites de timeout de requisições
  • Validação e sanitização de entrada
  • Tratamento seguro de variáveis de ambiente
  • Nenhum armazenamento de dados sensíveis

Desempenho

  • Análise eficiente de HTML com Cheerio
  • Cache de requisições quando apropriado
  • Pegada mínima de memória
  • Inicialização e tempos de resposta rápidos

Compatibilidade

  • Plataformas: macOS, Windows, Linux
  • Node.js: 18.0.0 ou superior
  • Claude Desktop: 0.10.0 ou superior
  • Outros clientes MCP: Compatível com qualquer aplicação que suporte MCP

Desenvolvimento

Compilando a partir do código-fonte

# Install dependencies
npm install

# Build the project
npm run build

# Watch for changes during development
npm run watch

Testes

# Build, then run both suites
npm test

npm test aciona o servidor compilado via stdio e chama as ferramentas de verdade:

  • test-extension.js — handshake MCP, listagem de ferramentas, uma busca, detalhes do anúncio e os caminhos de geocodificação (Photon, fallback Nominatim)
  • test-amenities.js — extração de comodidades em vários anúncios ao vivo, verificando que comodidades que o Airbnb mostra riscadas nunca aparecem como oferecidas pelo anúncio

Ambos acessam airbnb.com e os geocodificadores pela rede, então precisam de conectividade e podem falhar se o Airbnb mudar a estrutura de suas páginas — esse é o objetivo deles, mas também significa que não são adequados como um portão de CI sem supervisão.

O servidor também pode ser executado diretamente:

# Run with robots.txt compliance (default)
node dist/index.js

# Run with robots.txt ignored (for testing)
node dist/index.js --ignore-robots-txt

Considerações Legais e Éticas

  • Respeite os Termos de Serviço do Airbnb: Esta extensão é para pesquisa legítima e assistência de reserva
  • Conformidade com robots.txt: A extensão respeita o robots.txt por padrão
  • Limite de Taxa: Esteja atento à frequência de requisições para evitar sobrecarregar os servidores do Airbnb
  • Uso de Dados: Extraia apenas informações publicamente disponíveis para fins legítimos

Suporte

  • Problemas: Reporte bugs e solicitações de recursos em GitHub Issues
  • Documentação: Documentação adicional disponível no repositório
  • Comunidade: Participe de discussões sobre o desenvolvimento de MCP e MCPB

Licença

Licença MIT — consulte o arquivo LICENSE para obter detalhes.

Contribuindo

Contribuições são bem-vindas! Leia as diretrizes de contribuição e envie pull requests para quaisquer melhorias.


Nota: Esta extensão não é afiliada à Airbnb, Inc. É uma ferramenta independente projetada para ajudar os usuários a pesquisar e analisar anúncios publicamente disponíveis do Airbnb.