Airbnb
Pesquise por anúncios do Airbnb e obtenha seus detalhes.
Documentação
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:
- Baixe o arquivo
.mcpbda última versão - Abra o arquivo — o Claude Desktop mostrará um diálogo de instalação
- 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.
-
Vá para: Configurações do Cursor > Ferramentas e Integrações > Novo Servidor MCP
-
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" ] } } } -
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 semplaceId, o servidor geocodifica essa string no lado do cliente via Photon/Nominatim — consulte Serviços Externos.placeId(opcional): Google Maps Place ID. Substituilocatione ignora completamente a geocodificação no lado do cliente (sem chamadas de terceiros).checkin(opcional): Data de check-in no formato YYYY-MM-DDcheckout(opcional): Data de check-out no formato YYYY-MM-DDadults(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 noitemaxPrice(opcional): Preço máximo por noitecursor(opcional): Cursor de paginação para navegar pelos resultadospropertyType(opcional): Filtrar por tipo de propriedade —entire_home,private_room,shared_roomouhotel_roomignoreRobotsText(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 Airbnbcheckin(opcional): Data de check-in no formato YYYY-MM-DDcheckout(opcional): Data de check-out no formato YYYY-MM-DDadults(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ço | Endpoint | Usado para | Observações |
|---|---|---|---|
| Photon | photon.komoot.io | Geocodificador principal, chamado em toda busca sem placeId | Serviço gratuito baseado em OSM hospedado pela Komoot. Uma requisição por busca. |
| Nominatim | nominatim.openstreetmap.org | Geocodificador de fallback, chamado apenas quando o Photon não retorna uma caixa delimitadora | Sujeito à 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
placeIdexplícito. QuandoplaceIdestá 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.