Dida-Hotel-MCP-Global
Servidor MCP oficial de reservas do DIDA Hotel para Agentes de IA globais. Pesquise, compare e reserve mais de 2 milhões de hotéis em todo o mundo diretamente no Cursor, Claude Desktop, Windsurf e ChatGPT.
Documentação
RollingGo Hotel MCP — Busca e Reserva de Hotéis
🏠 Aplicar Chave · 🚀 Início Rápido · 📚 Exemplos · 💬 Suporte · 🔍 Perguntas Frequentes · ✈ Desenvolvido pela Dida · 💰Ganhe com a RollingGo
Este é um servidor MCP oficial que capacita Agentes de IA a buscar, comparar e reservar mais de 2 milhões de hotéis globalmente. Desenvolvido pela DIDA (14 anos, a 3ª maior plataforma de distribuição de viagens do mundo), este servidor conecta as recomendações de viagem da IA com reservas reais.
| Serviço | Endpoint | Ferramentas Disponíveis | Autenticação |
|---|---|---|---|
| Hotel MCP | https://mcp.rollinggo.ai/mcp | searchHotels, getHotelDetail, getHotelSearchTags | Authorization: Bearer <YOUR_API_KEY> |
- Protocolo de Transporte:
streamable-http - Preço: Completamente gratuito, sem limites de uso
- Método de Acesso: Autoatendimento seguindo esta documentação; adequado para prototipagem rápida e desenvolvimento de ferramentas.
O RollingGo MCP também oferece um fluxo de Código de Autorização OAuth 2.0, fornecendo 7 ferramentas, incluindo getHotelSearchTags, searchHotels, getHotelDetail, hotelPriceConfirm, searchHotelOrders e outras. Este modo é projetado para integração profunda com aplicações de produção de nível empresarial e requer contato comercial via contact@rollinggo.ai.
Para usuários chineses ou fluxos de trabalho voltados principalmente para o mercado da China continental e sistemas de pagamento Alipay, consulte esta versão: Dida-hotel-MCP-CN
🌟 Por que o DIDA Hotel MCP?
Agentes de IA tradicionais só podem recomendar hotéis com base em conjuntos de dados estáticos de treinamento. O DIDA Hotel MCP equipa seu agente LLM com capacidades transacionais diretas e em tempo real:
✅ Tarifas em Tempo Real e Inventário Reservável — Verificação de preços com latência zero; cada resultado é imediatamente reservável.
✅ Cadeia de Suprimentos — A plataforma B2B de viagens Top 3 do mundo, com 14 anos de experiência, totalmente nativa em API de ponta a ponta.
✅ Rede Global de Hotéis — 2.000.000+ propriedades cobrindo 200+ países/regiões. 500+ fornecedores cobrindo todos os níveis, de redes de luxo a boutiques locais.
✅ Contratos Diretos — 110.000+ hotéis conectados diretamente com sincronização de preços e inventário em tempo real.
✅ Vantagem de Preço na Origem — Preços acima dos OTAs; tarifas competitivas em destinos populares.
✅ Pronto para Agentes — Funciona com 40+ agentes líderes: Cursor, Claude Code, Codex, Windsurf, Copilot e outros.
✅ Ganhe Receita em Cada Chamada MCP — Defina margens por país, ganhe comissão em cada reserva concluída e acompanhe seus pedidos, ganhos e pagamentos em tempo real. Saques flexíveis para empresas e desenvolvedores individuais.
🎯 Para quem é
• Empresas ou desenvolvedores individuais que criam Agentes de IA
• Desenvolvedores que buscam integrar capacidades de reserva de hotéis em Clientes MCP
• Desenvolvedores que criam agentes de planejamento de viagens, gestão de viagens corporativas, OTA e serviços de estilo de vida
• Equipes de produto que buscam validar loops de transações comerciais de Agentes de IA
• Indivíduos com necessidades de busca de hotéis, comparação de preços e alertas de queda de preços******
🎯 Casos de Uso
- Agentes de Propósito Geral: Equipe qualquer agente de IA com reserva nativa de hotéis. Os usuários podem comparar, filtrar e reservar—tudo em uma única conversa em linguagem natural.
- Planejadores de Viagem com IA: Integre a busca de hotéis diretamente em itinerários em linguagem natural.
- Assistentes de Viagens Corporativas: Permita que funcionários consultem, comparem e reservem viagens de negócios no Slack, Teams ou interfaces de chat personalizadas.
- Demonstrações Transacionais: Valide fluxos de comércio e pagamento de ponta a ponta de agentes de IA sem integração pesada de backend.
🚀 Início Rápido
Integre busca e reserva global de hotéis ao seu assistente de IA em menos de 5 minutos, sem necessidade de codificação.
Passo 1: Obtenha Sua Chave de API de Desenvolvedor
- Acesse o Centro de Parceiros DIDA e cadastre-se para obter uma chave gratuita.
- Você receberá um e-mail contendo: Credenciais para o painel do seu Centro de Parceiros B2B (para monitorar pedidos, configurar margens e acompanhar ganhos).
Passo 2: Conecte ao Seu Agente
Clientes recomendados: Claude CLI, Codex e Cursor. Outros clientes compatíveis com MCP (como Kiro, Doubao, etc.) podem ser configurados de forma semelhante.
Claude CLI
Crie .mcp.json na raiz do seu projeto:
{
"mcpServers": {
"Dida-Hotel": {
"url": "https://mcp.rollinggo.ai/mcp",
"type": "http",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Ou adicione diretamente pela linha de comando:
claude mcp add \
--transport http \
--header "Authorization: Bearer YOUR_API_KEY" \
Dida-Hotel \
https://mcp.rollinggo.ai/mcp
Codex
Local do arquivo de configuração: .codex/config.json na raiz do projeto, ou globalmente em ~/.codex/config.json
{
"mcpServers": {
"Dida-Hotel": {
"url": "https://mcp.rollinggo.ai/mcp",
"type": "streamable-http",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Cursor
Local do arquivo de configuração: .cursor/mcp.json na raiz do projeto, ou globalmente em ~/.cursor/mcp.json
{
"mcpServers": {
"Dida-Hotel": {
"url": "https://mcp.rollinggo.ai/mcp",
"type": "streamable-http",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Substitua
YOUR_API_KEYpela sua Chave de API real.
Teste Diretamente com cURL
Nota: O cURL deve incluir
-H "Accept: application/json, text/event-stream", caso contrário o servidor retornará um erro 400.
curl -X POST https://mcp.rollinggo.ai/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "searchHotels",
"arguments": {
"originQuery": "Shanghai Bund five-star hotel",
"place": "Shanghai Bund",
"placeType": "Attraction",
"checkInParam": {
"checkInDate": "2026-06-01",
"stayNights": 2
},
"filterOptions": {
"starRatings": [5.0]
},
"size": 3
}
},
"id": 1
}'
Passo 3: Sua Primeira Chamada MCP
Após a configuração, basta dizer ao seu assistente de IA:
"Encontre um hotel cinco estrelas perto do Bund, em Xangai, para uma estadia começando depois de amanhã."
A IA chamará automaticamente a Ferramenta searchHotels e retornará uma lista de hotéis.
Exemplo de Busca de Hotéis
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "searchHotels",
"arguments": {
"originQuery": "Shanghai Bund five-star hotel",
"place": "Shanghai Bund",
"placeType": "Attraction",
"checkInParam": {
"checkInDate": "2026-06-01",
"stayNights": 2
},
"filterOptions": {
"starRatings": [5.0]
},
"size": 3
}
},
"id": 1
}
Passo 4: Visualize Resultados e Dados de Exemplo
Resultados de Busca de Hotéis (Dados Reais)
Buscando "hotel cinco estrelas no Bund, Xangai", 2 noites, retorna:
| Hotel | Estrelas | Menor Preço/Noite | Distância ao Bund |
|---|---|---|---|
| Fairmont Peace Hotel Shanghai | ⭐⭐⭐⭐⭐ | $648 | 124m |
| The Peninsula Shanghai | ⭐⭐⭐⭐⭐ | $940 | 252m |
Exemplo de JSON de Resposta Esperada
{
"message": "Hotel search successful",
"hotelInformationList": [
{
"hotelId": 29529,
"bookingUrl": "https://rollinggo.ai/pages/hotel/detail/index?...",
"name": "Fairmont Peace Hotel on the Bund",
"address": "No. 20 Nanjing East Road",
"starRating": 5.0,
"price": {
"message": "Price query successful. Lowest price: 648, Currency: USD",
"hasPrice": true,
"currency": "USD",
"lowestPrice": 648.0
},
"hotelAmenities": ["Bar", "Gym", "Pool", "SPA", "Parking", "WIFI"],
"tags": ["SPA Service", "Resort Hotel", "Sports-Friendly Hotel"]
}
]
}
🔧 Ferramentas Disponíveis
Documentação Oficial | Ferramentas MCP Dida
O servidor registra 3 ferramentas principais para lidar com o ciclo completo de busca até a reserva:
1) searchHotels
Encontre hotéis por localização, data, preço, classificação por estrelas e tags.
- Parâmetros de Entrada:
originQuery(string, obrigatório): Solicitação em texto bruto do usuário (ex.: "Encontre hotéis boutique em Tóquio abaixo de $200").place(string, obrigatório): Destino específico, atração ou nome de aeroporto.placeType(string, obrigatório): Tipo de localização (city,airport,point_of_interest,hotel, etc.). Valores suportados:city,airport,point_of_interest,train_station,subway_station,hotel,district/county,detailed address.countryCode(string, opcional): Código de país ISO 3166-1 alpha-2, ex.:CN,US.size(número, opcional, padrão:5): Número de hotéis a retornar, máximo20.checkInParam(objeto, opcional): Parâmetros relacionados ao check-in.filterOptions(objeto, opcional): Parâmetros de filtro.hotelTags(objeto, opcional): Filtros de tag / marca / orçamento.
🔎 Ver Parâmetros de Entrada Detalhados (checkInParam, filterOptions, hotelTags)
Campos de checkInParam:
adultCount(número, opcional, padrão:2): Adultos por quarto.checkInDate(string, opcional, formato:YYYY-MM-DD): Data de check-in. Se omitida, no passado ou mal formatada, o padrão é amanhã.stayNights(número, opcional, padrão:1): Número de noites (máximo 28).
Campos de filterOptions:
distanceInMeter(número, opcional): Distância em linha reta do ponto de interesse em metros. O padrão é2000quando um ponto de interesse é usado.starRatings(número[], opcional): Faixa de classificação por estrelas, padrão[0.0, 5.0], passo0.5.
Campos de hotelTags:
requiredTags(string[], opcional): Tags obrigatórias (restrição rígida).preferredBrands(string[], opcional): Marcas preferidas.maxPricePerNight(número, opcional): Orçamento máximo por noite (CNY).
📄 Ver Exemplo de Esquema JSON de Resposta
{
"message": "Hotel search succeeded",
"hotelInformationList": [
{
"hotelId": 43615,
"bookingUrl": "https://rollinggo.ai/pages/hotel/detail/index?...",
"name": "Sunworld Dynasty Hotel Beijing",
"brand": null,
"address": "50 Wangfujing Street",
"destinationId": "6140156",
"latitude": 39.917748,
"longitude": 116.412249,
"distanceInMeters": 205,
"starRating": 5.0,
"price": {
"message": "Price found, lowest: 626.0, currency: CNY",
"hasPrice": true,
"currency": "CNY",
"lowestPrice": 626.0
},
"areaCode": "CN",
"description": "...",
"imageUrl": "https://image-cdn.RollingGo.com/...",
"hotelAmenities": ["24h Front Desk", "WiFi"],
"score": 1.0,
"tags": ["Near Shopping Mall", "Free WiFi"]
}
]
}
Nota:
priceé um objeto, não um número. Os campos podem estar ausentes ou sernulldependendo da cidade/fonte de fornecimento.
2) getHotelDetail
Busque tipos de quartos em tempo real, preços dinâmicos, inventário e políticas de cancelamento para um hotel selecionado.
- Parâmetros de Entrada:
hotelId(número, opcional): ID do hotel. Mutuamente exclusivo comname; se ambos forem fornecidos,hotelIdtem prioridade.name(string, opcional): Nome do hotel (correspondência difusa).dateParam(objeto, opcional): Parâmetros de data de check-in / check-out.occupancyParam(objeto, opcional): Parâmetros de número de hóspedes e quartos.localeParam(objeto, opcional): Parâmetros de país e moeda.
🔎 Ver Parâmetros de Entrada Detalhados (dateParam, occupancyParam, localeParam)
Campos de dateParam:
checkInDate(string, opcional, formato:YYYY-MM-DD): Data de check-in. O padrão é amanhã se vazio, mal formatado ou no passado.checkOutDate(string, opcional, formato:YYYY-MM-DD): Data de check-out. O padrão é o diacheckInDate + 1se vazio, mal formatado ou não após o check-in.
Campos de occupancyParam:
adultCount(número, opcional, padrão:2): Adultos por quarto.childCount(número, opcional, padrão:0): Crianças por quarto.childAgeDetails(número[], opcional): Idades das crianças, ex.:[3, 5].roomCount(número, opcional, padrão:1): Número de quartos.
Campos de localeParam:
countryCode(string, opcional, padrão:US): Código de país ISO 3166-1 alpha-2.currency(string, opcional, padrão:USD): Código de moeda.
📄 Ver Exemplo de Esquema JSON de Resposta
{
"success": true,
"errorMessage": null,
"hotelId": 43615,
"bookingUrl": "https://rollinggo.ai/pages/hotel/detail/index?...",
"name": "Sunworld Dynasty Hotel Beijing",
"checkIn": "2026-03-05",
"checkOut": "2026-03-06",
"roomRatePlans": [
{
"roomTypeId": 4984714,
"roomName": "Superior Room",
"roomNameCn": "高级客房",
"ratePlanId": "7012072001634754626",
"ratePlanName": "Superior Room King Bed, 1 King Bed",
"bedType": 73,
"bedTypeDescription": "Unknown",
"currency": "CNY",
"totalPrice": 0,
"totalSalesRate": null,
"inventoryCount": null,
"isOnRequest": null,
"recommendIndex": null,
"cancellationPolicies": [
{
"fromDate": "2026-03-02T10:00:00+08:00",
"toDate": null,
"amount": 634,
"percent": null,
"type": null,
"description": null
}
],
"includedFees": null,
"excludedFees": null,
"metadata": null
}
]
}
Nota: Em caso de falha, a resposta pode conter uma mensagem de erro (ex.: "Falha ao buscar preços, tente novamente mais tarde") ou campos de erro estruturados. O array
roomRatePlanspode ser longo — considere paginar ou limitar a exibição no lado do cliente.
3) getHotelSearchTags
Recupere metadados contendo todos os nomes de tags filtráveis (ex.: "WiFi Grátis", "Academia", "Adequado para Crianças") para refinar a filtragem de busca. Adequado para cache local e mapeamento de intenção no lado do cliente.
📄 Ver Exemplo de Esquema JSON de Resposta
{
"tags": [
{
"name": "Free WiFi",
"category": "Core Amenities",
"description": "Provides free WiFi"
}
],
"usageGuide": {
"tagUsage": "Place tag names into hotelTags.preferredTags (preference), requiredTags (hard requirement), or excludedTags (exclusion)",
"exampleRequest": "{...}"
}
}
Categorias comuns de tags:
- Marca e Classificações
- Destaques Especiais
- Comodidades Principais
- Família e Crianças
- Detalhes de Serviço
- Serviço e Restaurantes
- Transporte e Pagamento
- Vistas e Tipos de Quarto
- Tipo de Hotel
- Preços
📚 Exemplos de Uso
Exemplo 1: Busca por Cidade
{
"originQuery": "Find 4-star+ hotels in Beijing for 2 nights",
"place": "Beijing",
"placeType": "city",
"checkInParam": {
"checkInDate": "2026-03-01",
"stayNights": 2
},
"filterOptions": {
"starRatings": [4.0, 5.0]
},
"size": 5
}
Exemplo 2: Com Tags e Restrições de Orçamento
{
"originQuery": "Find quality hotels in Beijing with free WiFi, budget under 1000 per night",
"place": "Beijing",
"placeType": "city",
"hotelTags": {
"requiredTags": ["Free WiFi"],
"maxPricePerNight": 1000
},
"size": 5
}
Exemplo 3: Consultar Tipos de Quarto e Preços
{
"hotelId": 43615,
"dateParam": {
"checkInDate": "2026-03-05",
"checkOutDate": "2026-03-06"
},
"occupancyParam": {
"adultCount": 2,
"roomCount": 1
},
"localeParam": {
"currency": "CNY",
"countryCode": "CN"
}
}
💬 Perguntas Frequentes
Perguntas Frequentes
P1: O cliente não mostra a Ferramenta após a configuração
- Verifique se o formato da configuração JSON está correto
- Confirme que
urletypeestão corretos - Confirme que a Chave de API no cabeçalho
Authorizationestá correta - Reinicie o cliente (as alterações só têm efeito após a reinicialização) Q2: Retorna 401 Não Autorizado Chave de API inválida ou formatada incorretamente:
- A chave de API deve começar com
mcp_ - Em
Authorization: Bearer YOUR_API_KEY, deve haver um espaço após Bearer - Certifique-se de que não há espaços extras ou quebras de linha na chave de API
Q3: Retorna 400 Requisição Inválida Comum ao chamar diretamente com cURL. Verifique se o cabeçalho Accept está incluído:
-H "Accept: application/json, text/event-stream"
Q4: searchHotels retorna resultados vazios
- Verifique se
placeeplaceTypecorrespondem (por exemplo, "Shanghai Bund" deve ser pareado com "Attraction") - Relaxe os critérios de filtro (remova restrições de classificação por estrelas / tags)
- Confirme que
checkInDatenão está no passado
Q5: Os preços não correspondem às tarifas reais Os resultados da pesquisa mostram preços de referência; os preços em tempo real podem variar. Atualmente, apenas consultas são suportadas — reserva online ainda não está disponível.
💬 Suporte
- 📧 E-mail: york.lu@dida.com
- 🐛 Issues: Envie problemas ou solicitações de recursos no GitHub Issues.
- 💬 Comunidade Discord: Junte-se ao nosso Servidor Discord ou escaneie o código QR abaixo para conectar-se com outros desenvolvedores, discutir integrações e obter suporte em tempo real da equipe DIDA.
🌟 Dida Hotel MCP (OAuth) v2.3 Atualização Principal
A v2.3 otimiza a estrutura de consulta de pedidos e adiciona vários campos de detalhes de pedidos para ajudar os Agentes a lidar melhor com cenários de check-in, pagamento e cancelamento. Nota: Esta atualização se aplica apenas à versão de integração OAuth, não à versão com chave de API documentada aqui. A versão OAuth requer integração comercial contact@rollinggo.ai.
O que mudou
Ferramentas inalteradas (4)
getHotelSearchTags— Obter todas as tags de filtro de hotel habilitadassearchHotels— Pesquisar lista global de hotéis por condiçõesgetHotelDetail— Obter tipos de quartos disponíveis e preços para um hotelhotelPriceConfirm— Bloquear preço final de varejo em tempo real para o quarto selecionado
Ferramentas modificadas (2)
createHotelBookingWithPaymentURL— Removido o parâmetroalipayUrlScene; unificadobookingResult.paymentUrlpara checkout genéricosearchHotelOrders— Saída simplificada para 9 campos principais (orderNo,hotelName,roomName,orderStatus,totalPrice, etc.) para visualização em lista; detalhes completos movidos para ferramenta dedicada
Novas ferramentas (1)
getHotelOrderDetail— Consultar detalhes completos e estruturados do pedido pororderNo, incluindohotelConfirmationNo, lista de hóspedes, tipo de cama, telefones de contato, coordenadas, prazos de pagamento/cancelamento e sinalizadores de política
Novos campos
hotelConfirmationNo— Número de confirmação real do lado do hotel para consulta na recepçãostayInfo.bedTypeStr— Descrição legível do tipo de cama (por exemplo,"1 King Bed (1.8m)")stayInfo.guestNames— Lista oficial de nomes de hóspedes em pinyin/inglês para verificaçãopriceInfo.paymentDeadline— Timestamp do prazo de pagamento (YYYY-MM-DD HH:mm:ss) para alertas de contagem regressivapolicyInfo.freeCancelDeadline— Timestamp do prazo de cancelamento gratuito para verificações de janela de reembolsopolicyInfo.isCancelable— Se o cancelamento gratuito ainda está disponível no momento atual
Contagem de ferramentas: 7 no total (aumento de 6 na v2.2) — 1 nova, 2 modificadas, 4 inalteradas.
Apêndice
🔣 Se você quiser implantação local
Método A: Executar via uv (Recomendado - Configuração Zero)
Se você tiver o uv instalado, execute o servidor instantaneamente:
uv run --with-requirements requirements.txt server.py
Método B: Configuração Padrão em Python
# Clone the repository
git clone https://github.com/DIDA-AI/dida_hotel_mcp_global.git
cd dida_hotel_mcp_global
# Setup virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies and run
pip install -r requirements.txt
python server.py
O servidor local será executado em http://localhost:8000/mcp, encaminhando automaticamente as solicitações para os nós seguros da API global da DIDA.
🔑 Segurança e Cabeçalhos
- O servidor local encaminha solicitações para a API global segura da DIDA.
- Sempre forneça sua chave de API nos cabeçalhos. As chaves devem começar com
mcp_. - Cabeçalho obrigatório:
Authorization: Bearer mcp_your_key_here
📜 Licença
Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.
Feito com ❤️ pela equipe DIDA