MCP Dubai
Servidor MCP de código aberto para dados públicos de Dubai e dos EAU e conhecimento sobre abertura de empresas. Fonte atual: 120 ferramentas cobrindo clima, horários de oração, moedas, locais, descoberta de conjuntos de dados, zonas francas, vistos, bancos e escrita em árabe/inglês. Python, stdio, MIT.
Documentação
MCP-Dubai
Dados públicos de Dubai e dos EAU e conhecimento prático para abertura de empresas para clientes MCP.
خادم MCP للبيانات العامة في دبي والإمارات وللمعرفة العملية لتأسيس الأعمال
Início rápido · Ferramentas · Configuração · Atualização dos dados · Desenvolvimento · Última auditoria
MCP-Dubai é um servidor Model Context Protocol que conecta assistentes de IA a APIs públicas, conjuntos de dados de referência e conhecimento empresarial selecionado. Ele roda localmente via stdio e retorna resultados estruturados com metadados de fonte e atualização quando disponíveis.
A fonte atual inclui 120 ferramentas em 37 recursos:
| Área | Ferramentas | Cobertura |
|---|---|---|
| Dados públicos e conjuntos de dados de referência | 45 | Clima, horários de oração, moedas, escolas, feriados, dados de mercado, localizações e descoberta de conjuntos de dados |
| Consultas a conjuntos de dados do governo de Dubai | 6 | Imóveis DLD e transporte RTA via OAuth do data.dubai |
| Conhecimento empresarial | 56 | Abertura de empresas, zonas francas, vistos, bancos, impostos, conformidade, financiamento e custo de vida |
| Redação e análise | 8 | Modelos de cartas em árabe/inglês, planos de consulta e síntese de relatórios |
| Descoberta e diagnóstico | 5 | Recomendação de ferramentas, inventário de recursos, versão, datas de conhecimento e status dos serviços upstream |
112 ferramentas não exigem credenciais. Duas ferramentas de qualidade do ar precisam de um token WAQI gratuito; seis ferramentas de conjuntos de dados do governo precisam de credenciais OAuth e acesso aos conjuntos de dados. Ferramentas sem credenciais ainda podem depender de um serviço upstream indisponível; consulte disponibilidade e limitações.
Início rápido
Executar a fonte atual
Requer Python 3.11 ou mais recente e Git. A auditoria de 5 de setembro testou Python 3.11 até 3.14.
git clone https://github.com/mahdi-salmanzade/MCP-Dubai.git
cd MCP-Dubai
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
No Windows PowerShell, crie o ambiente com py -m venv .venv e ative-o com .venv\Scripts\Activate.ps1.
Configure seu cliente MCP para iniciar o executável Python do ambiente:
{
"mcpServers": {
"dubai": {
"command": "/absolute/path/to/MCP-Dubai/.venv/bin/python",
"args": ["-m", "mcp_dubai"]
}
}
}
Substitua command pelo seu caminho absoluto real. No Windows, use o caminho .venv\Scripts\python.exe do ambiente, escapando as barras invertidas no JSON.
| Cliente | Arquivo de configuração |
|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json no macOS; %APPDATA%\Claude\claude_desktop_config.json no Windows |
| Cursor | .cursor/mcp.json no projeto, ou ~/.cursor/mcp.json globalmente |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
Para VS Code, use .vscode/mcp.json com uma chave servers:
{
"servers": {
"dubai": {
"command": "/absolute/path/to/MCP-Dubai/.venv/bin/python",
"args": ["-m", "mcp_dubai"]
}
}
}
Para outro cliente MCP, use o mesmo comando e argumentos nas configurações do servidor stdio. Após conectar, chame about() para verificar a versão em execução e a contagem de ferramentas, depois recommend_tools(query) para encontrar ferramentas relevantes.
Para iniciar o servidor diretamente do ambiente ativado:
python -m mcp_dubai
Isso inicia um processo MCP stdio que aguarda mensagens do cliente.
Usar o pacote publicado
Instantâneo da versão, 5 de setembro de 2026: o repositório está na versão 0.4.0 com 120 ferramentas; a versão pública no PyPI é 0.2.0 com 91 ferramentas. Use a instalação da fonte acima para o catálogo documentado aqui.
Para executar a versão publicada com uv:
uvx mcp-dubai
Em uma configuração de cliente, defina command como uvx e args como ["mcp-dubai"]. Alternativamente, instale-o em um ambiente virtual com python -m pip install mcp-dubai e execute mcp-dubai.
Catálogo de ferramentas
As ferramentas estão agrupadas por finalidade abaixo. Todos os nomes são expostos sem prefixo de recurso. list_features() retorna os grupos registrados, contagens de ferramentas, níveis e requisitos de autenticação.
Dados públicos e conjuntos de dados de referência
| Recurso | Ferramentas | Cobertura |
|---|---|---|
al_adhan | prayer_times_for, prayer_times_calendar, qibla_direction, hijri_to_gregorian, gregorian_to_hijri | Horários de oração, direção da Qibla e conversão Hijri/Gregoriano. |
quran_cloud | quran_surah, quran_ayah, quran_juz, quran_search | Texto do Alcorão e traduções com busca limitada e paginada. |
cbuae | cbuae_exchange_rates, cbuae_base_rate | Taxas de câmbio do CBUAE com rótulos em inglês/árabe e códigos de moeda. O endpoint de taxa base está registrado como bloqueado. |
fcsc_ckan | fcsc_search_dataset, fcsc_get_dataset, fcsc_list_organizations, fca_trade_stats | Descoberta de conjuntos de dados federais e busca de dados comerciais. O endpoint CKAN está registrado como bloqueado. |
khda | khda_search_school, khda_list_curricula, khda_list_areas | Busca em uma amostra integrada de 16 escolas por área, currículo, avaliação ou teto de mensalidade indicativo. Não é um diretório escolar completo. |
aviation_weather | weather_uae_icao, weather_uae_all | Observações METAR e previsões TAF para seis aeroportos dos EAU. |
open_meteo | uae_weather, uae_weather_forecast, weather_by_coords, list_uae_weather_cities | Clima atual e previsões para oito cidades dos EAU ou coordenadas fornecidas. |
currency | currency_rates, currency_convert | Taxas de câmbio em AED e conversão de moedas. |
air_quality | air_quality_dubai, air_quality_by_coords, air_quality_dubai_stations | Leituras de qualidade do ar WAQI e uma lista de referência de estações. As leituras exigem um token gratuito; a lista não. |
osm_overpass | osm_search_poi, osm_list_categories | Pontos de interesse próximos do OpenStreetMap em 22 categorias. |
holidays | uae_holidays, uae_next_holiday, is_uae_holiday | Feriados federais dos EAU para 2026 e um calendário provisório de 2027, com observâncias anunciadas distinguidas de estimativas. |
dfm | dfm_index, dfm_stock_quote, dfm_list_securities | Instantâneos do índice DFM, cotações e títulos de endpoints públicos não documentados. Os dados podem estar atrasados ou incompletos. |
makani | makani_reverse_geocode, makani_details, makani_validate | Busca de endereço Makani, geocodificação reversa e validação de números. |
gold_rate | dubai_gold_rate | Taxas sugeridas de ouro de varejo do Dubai Jewellery Group em AED por grama. |
data_dubai | data_dubai_search, data_dubai_themes, data_dubai_entities | Metadados de conjuntos de dados públicos, temas e publicadores. O acesso aos registros dos conjuntos de dados é separado. |
rta (GTFS) | rta_gtfs_static_url | Link e metadados para o arquivo GTFS anônimo, incluindo sua compilação datada e disponibilidade intermitente. |
Consultas a conjuntos de dados do governo
Estas seis ferramentas exigem MCP_DUBAI_PULSE_CLIENT_ID, MCP_DUBAI_PULSE_CLIENT_SECRET e acesso aos conjuntos de dados solicitados. Sem credenciais, elas retornam instruções de configuração estruturadas. Consulte CREDENTIALS.md.
| Recurso | Ferramentas | Cobertura |
|---|---|---|
dld | dld_search_transactions, dld_search_rent_contracts, dld_lookup_broker | Vendas de imóveis, contratos de aluguel Ejari e corretores registrados. |
rta | rta_search_metro_stations, rta_search_bus_routes, rta_salik_tariff | Estações de metrô, rotas de ônibus e dados de tarifas Salik. |
Conhecimento empresarial
Estas ferramentas usam 16 pacotes JSON integrados e um assistente de configuração que combina registros relevantes. Respostas bem-sucedidas incluem metadados de conhecimento. Preços, regras de elegibilidade e estimativas mantêm seu escopo documentado e datas de verificação.
| Recurso | Ferramentas | Cobertura |
|---|---|---|
setup_advisor | setup_advisor | Compare opções de configuração no continente, zonas francas e offshore usando orçamento, atividade, visto, banco e considerações fiscais. |
free_zones | list_free_zones, free_zone_details, compare_free_zones, list_offshore | Doze entradas selecionadas de zonas francas, opções offshore, custos indicativos e detalhes de pacotes. Preços desconhecidos não podem satisfazer um filtro de orçamento. |
visas | list_visa_types, visa_details, visa_recommend, golden_visa_check | Rotas de visto e orientação de elegibilidade específica por categoria, incluindo requisitos de autoridade e evidências. |
banking | list_banks, bank_details, bank_recommendation, dul_eligibility | Quatorze entradas de bancos, taxas, estimativas de integração e informações datadas de integração com a Dubai Unified Licence. |
founder_essentials | attestation_guide, pro_services_estimate, legal_translation_estimate, chamber_of_commerce_info, setup_timeline_estimate, common_founder_mistakes | Autenticação de documentos, estimativas de custos de provedores, associação à Câmara, prazos de configuração e erros comuns de arquivamento. |
tax_compliance | corporate_tax_estimate, vat_filing_calendar, qfzp_check, esr_status, einvoicing_timeline, late_payment_penalty_estimate | Estimativas de imposto corporativo, condições QFZP, calendários de IVA, histórico ESR, marcos de faturamento eletrônico e estimativas de penalidades. |
compliance | aml_requirements, ubo_filing_guide, pdpl_compliance, emiratisation_requirements | Requisitos de LBC, propriedade beneficiária, proteção de dados e Emiratização. |
funding | accelerator_search, vc_list, grant_programs | Descoberta de aceleradoras e investidores, apoio governamental e janelas de inscrição datadas. |
gov_portals | portal_guide | Orientação sobre portais governamentais, incluindo UAE Pass, DubaiNow e DubaiPay. |
dcde | dcde_programs, chamber_membership | Programas da Dubai Chamber of Digital Economy e orientação sobre associação à Câmara. |
events | startup_events, gitex_info, ens_calendar | Eventos de startups, GITEX e datas e locais do Expand North Star. |
parkin | parking_zones, nol_card_guide | Zonas de estacionamento, tarifas e tarifas e passes do cartão Nol. |
ip_trademark | trademark_registration, ip_protection | Registro de marcas, patentes e orientação sobre direitos autorais. Orientação sobre desenho industrial ainda não é uma categoria de ferramenta. |
halal | halal_certification, moiat_requirements | Conformidade Halal, organismos de certificação, uso do Selo Nacional e requisitos MOIAT. |
createapps | createapps_championship, submission_guide | Regras do Create Apps Championship, orientação de inscrição e marcos datados da competição. |
cost_of_living | cost_of_living_overview, rent_estimate, dewa_bill_estimate, salik_toll_estimate, grocery_estimate, school_fee_estimate, fuel_price_guide | Orçamentos domésticos indicativos, cálculos de utilidades e pedágios, estimativas de mensalidades escolares e instantâneos mensais de preços de combustível. |
tenancy | ejari_guide, rera_rent_increase, rental_dispute_guide | Registro Ejari, cálculos de aumento de aluguel RERA e procedimentos de disputas de aluguel. |
Redação e análise
| Recurso | Ferramentas | Cobertura |
|---|---|---|
arabic_writer | list_honorifics, addressee_block, business_letter_template, list_salutations | Modelos de cartas comerciais em árabe/inglês, honoríficos, destinatários e saudações. |
data_analyst | plan_query, list_plan_categories, synthesize_report, analyze_setup_decision | Planos de consulta entre ferramentas e síntese de relatórios em Markdown. O agente chamador executa o plano; estas ferramentas não o executam autonomamente. |
Descoberta e diagnóstico
| Ferramenta | Finalidade |
|---|---|
recommend_tools(query, top_k=5) | Classifica ferramentas relevantes para uma consulta em linguagem natural usando busca BM25 e aliases. |
list_features() | Lista recursos registrados, níveis, requisitos de autenticação e ferramentas. |
get_knowledge_status() | Inspeciona datas, revisa escopo, volatilidade e links de verificação para todos os 19 domínios de conhecimento rastreados. |
about() | Verifica a versão do pacote em execução, contagem de ferramentas, URL do repositório e a última atualização de conhecimento registrada. |
get_upstream_status() | Lê o registro de status das 16 fontes e observações do processo atual. Isso não testa ativamente cada endpoint. |
Configuração
Nenhuma variável de ambiente é necessária para iniciar o servidor. Defina as credenciais no ambiente do servidor do cliente MCP para habilitar as chamadas relevantes.
{
"mcpServers": {
"dubai": {
"command": "/absolute/path/to/MCP-Dubai/.venv/bin/python",
"args": ["-m", "mcp_dubai"],
"env": {
"MCP_DUBAI_PULSE_CLIENT_ID": "your-client-id",
"MCP_DUBAI_PULSE_CLIENT_SECRET": "your-client-secret",
"MCP_DUBAI_WAQI_TOKEN": "your-waqi-token"
}
}
}
}
| Variável | Padrão | Finalidade |
|---|---|---|
MCP_DUBAI_PULSE_CLIENT_ID | Não definido | ID do cliente OAuth para as seis ferramentas de conjuntos de dados governamentais |
MCP_DUBAI_PULSE_CLIENT_SECRET | Não definido | Segredo do cliente OAuth, usado com o ID do cliente |
MCP_DUBAI_WAQI_TOKEN | Não definido | Token para as duas ferramentas de leitura de qualidade do ar |
MCP_DUBAI_PULSE_API_BASE | https://apis.data.dubai | URL base da API de conjuntos de dados governamentais |
MCP_DUBAI_DATA_PORTAL_BASE | https://data.dubai | URL base do portal público de metadados |
MCP_DUBAI_LOG_LEVEL | INFO | Nível de detalhe dos logs |
MCP_DUBAI_HTTP_TIMEOUT | 30.0 | Tempo limite de HTTP em segundos |
MCP_DUBAI_HTTP_MAX_RETRIES | 3 | Total de tentativas por solicitação; apenas tempos limite e erros de rede são repetidos |
Solicite acesso aos conjuntos de dados em data.dubai e um token WAQI gratuito em AQICN. Mantenha as credenciais fora dos arquivos de configuração versionados. O guia de credenciais cobre configuração e solução de problemas. MCP_DUBAI_CALENDARIFIC_KEY é reservado para uma futura integração de atualização de feriados e atualmente não habilita nenhuma ferramenta adicional.
Fontes de dados
| Fonte | Usada para | Acesso |
|---|---|---|
| Al-Adhan, Al-Quran Cloud | Horários de oração, conversão de calendário, texto do Alcorão | APIs anônimas |
| CBUAE, ExchangeRate-API | Taxas de câmbio e conversão de moedas | Endpoints anônimos; endpoints do CBUAE não são documentados |
| FCSC Open Data | Descoberta de conjuntos de dados federais | API CKAN anônima, registrada como bloqueada |
| KHDA | Dados de referência de escolas | Amostra incluída |
| Aviation Weather Center, Open-Meteo | Clima de aeroportos e geral | APIs anônimas |
| WAQI / AQICN | Qualidade do ar | Token gratuito |
| OpenStreetMap Overpass, Makani | Pontos de interesse e consulta de endereços | Serviços anônimos |
| DFM, Dubai City of Gold | Dados de mercado e taxas de ouro no varejo | Endpoints JSON públicos e HTML; endpoints do DFM não são documentados |
| data.dubai, API gateway | Descoberta de conjuntos de dados, consultas DLD e RTA | Metadados anônimos; OAuth para registros de conjuntos de dados |
| Anúncios de feriados federais dos EAU | Feriados públicos | Calendário incluído com datas provisórias marcadas |
| Pacotes de conhecimento de negócios | Configuração de negócios e orientação de referência | JSON incluído com links de origem e metadados de revisão |
O antigo portal Dubai Pulse redireciona para data.dubai. O projeto mantém PULSE nos nomes de variáveis de credenciais; seu gateway de API padrão é apis.data.dubai.
Disponibilidade e limitações
A auditoria de 5 de setembro de 2026 registra verificações representativas de serviços, verificação de fontes e limites restantes. Essas observações são um instantâneo datado:
| Integração | Resultado registrado |
|---|---|
| Taxas de câmbio CBUAE | Funcionando; 77 moedas retornadas |
| Taxa base CBUAE e quatro ferramentas FCSC | Bloqueadas pela proteção de acesso upstream |
| Catálogo data.dubai | Funcionando; 610 conjuntos de dados, 11 temas e 75 emissores |
| DFM | Funcionando; 458 títulos, com nomes ausentes upstream |
| Arquivo GTFS RTA | Acesso intermitente; o arquivo recuperado ainda identifica a versão de 23 de agosto de 2025 |
| Outras integrações anônimas | Chamadas representativas bem-sucedidas para horários de oração, texto do Alcorão, clima, moedas, ouro, Makani e Overpass |
| Conjuntos de dados OAuth e leituras WAQI | Não testados ao vivo na auditoria sem credenciais representativas |
O conjunto de dados de escolas contém 16 registros selecionados de um instantâneo de abril de 2026. Nove registros receberam correções direcionadas de atributos em 5 de setembro; as taxas escolares não foram atualizadas. Custos de negócios e prazos de integração também podem ser estimativas datadas, conforme indicado nos registros subjacentes.
Os clientes devem inspecionar success antes de usar um resultado e ler o error retornado quando uma chamada falhar. Falhas de credenciais e upstream incluem campos estruturados de status e motivo, quando aplicável. Use get_upstream_status() para a linha de base registrada e observações de ferramentas usadas durante a sessão atual.
Atualização do conhecimento
A atualização é rastreada em 19 domínios: 16 pacotes JSON, setup_advisor, data_analyst e arabic_writer. Respostas de negócios bem-sucedidas incluem um bloco knowledge; get_knowledge_status() expõe o registro completo.
| Campo | Significado |
|---|---|
knowledge_date | Última atualização material do domínio |
full_review_date | Última revisão completa do domínio |
previous_knowledge_date | Data de atualização anterior, quando registrada para uma atualização direcionada |
last_refresh_scope | Campos ou tópicos cobertos por uma atualização direcionada |
volatility | Categoria de orçamento de revisão: alta, média ou estável |
verify_at | Verificação do domínio ou URL da fonte |
disclaimer | Escopo específico do domínio e limitações de uso |
Em 5 de setembro de 2026, 18 domínios têm uma última atualização de 2026-09-05; arabic_writer permanece em 2026-04-13. As atualizações de setembro foram direcionadas: campos não tocados e datas de revisão completa mantêm seu escopo de verificação anterior. Correções detalhadas e links de origem estão no relatório de auditoria.
O verificador de atualização usa a última revisão completa, com orçamentos de alerta de 100 dias para domínios de alta volatilidade, 190 para média e 365 para estável. Preços mensais, prazos e eventos ainda precisam de revisão em seus próprios cronogramas. Passar na verificação de idade não estabelece que todos os fatos estão atualizados.
python scripts/check_knowledge_freshness.py --strict
Verifique os requisitos oficiais vinculados antes de confiar em orientações fiscais, de visto, legais ou de preços para uma decisão.
Exemplos de consultas
Peça a um assistente conectado para usar MCP-Dubai para solicitações como:
| Solicitação | Ferramentas relevantes |
|---|---|
| Que horas é Fajr amanhã em Dubai? | prayer_times_for |
| Encontre farmácias a 500 metros dessas coordenadas. | osm_search_poi |
| Encontre conjuntos de dados públicos sobre o tráfego de Dubai. | data_dubai_search |
| Compare DMCC e IFZA para uma consultoria com dois vistos. | free_zone_details, compare_free_zones, setup_advisor |
| Estime o imposto corporativo sobre AED 500.000 de renda tributável e explique as informações QFZP necessárias. | corporate_tax_estimate, qfzp_check |
| Qual é a rota de autenticação para um certificado de graduação indiano? | attestation_guide |
| Estime os custos mensais de vida para uma família de quatro pessoas. | cost_of_living_overview, rent_estimate |
| Prepare uma carta em árabe/inglês endereçada a um departamento governamental. | business_letter_template, addressee_block |
A seleção de ferramentas e as perguntas de acompanhamento dependem do cliente. Esses exemplos descrevem consultas e estimativas; o servidor não envia solicitações nem abre contas.
Desenvolvimento
Do ambiente de origem ativado criado em Início rápido:
python -m pip install -e ".[dev,data]"
make check
make check executa verificações de lint e formatação Ruff, mypy estrito, pytest com cobertura e o relatório informativo de atualização. Use o comando de atualização --strict acima para falhar em domínios atrasados.
A auditoria de 5 de setembro registrou 967 testes aprovados em cada versão suportada do Python testada, com 93,61% de cobertura na execução principal. Empacotamento, verificações de tipos, lint e varreduras de segurança também passaram; a auditoria documenta seu escopo.
Arquitetura
src/mcp_dubai/
├── __main__.py # stdio entry point
├── server.py # feature mounts and diagnostic tools
├── _shared/ # HTTP, auth, discovery, response models, freshness
├── data/ # public APIs, OAuth integrations, reference datasets
├── biz/
│ ├── _data/ # 16 bundled JSON knowledge packs
│ └── ... # 17 business features
└── agents/ # Arabic writing and data-analysis tools
Os módulos de recurso tools.py implementam a lógica; os módulos server.py expõem wrappers FastMCP e registram metadados de descoberta. Modelos de resposta compartilhados carregam resultados, erros e metadados de conhecimento. O código-fonte suporta fastmcp>=3.4.7,<4; dependências e versões suportadas do Python são declaradas em pyproject.toml.
Leia CONTRIBUTING.md para convenções de recursos, testes e a lista de verificação de revisão. Relate erros reproduzíveis ou correções de fontes por meio de problemas do GitHub.
Status do projeto
MCP-Dubai é software alfa. A versão 0.4.0 está disponível neste repositório. Conforme registrado na auditoria de 5 de setembro, a publicação no PyPI permanece em 0.2.0 e o manifesto validado do MCP Registry não tem registro publicado.
Prioridades atuais:
- Publicar a versão atual do código-fonte no PyPI e no MCP Registry.
- Reconstruir o conjunto de dados KHDA a partir de uma pasta de trabalho completa e autoritativa, incluindo taxas atuais.
- Adicionar verificações de contrato ao vivo para conjuntos de dados dependentes de credenciais e melhorar integrações bloqueadas ou intermitentes.
- Estender a cobertura de conjuntos de dados governamentais quando o acesso e os esquemas puderem ser verificados.
- Continuar atualizações de conhecimento com base em fontes, preservando o escopo de revisão parcial.
- Melhorar as tags de descoberta de ferramentas e os aliases em árabe/inglês.
Licença e atribuição
Licenciado sob MIT. Os dados upstream permanecem sujeitos aos termos e requisitos de atribuição de seus publicadores.
Este é um projeto independente, não afiliado ao Governo de Dubai, ao governo dos EAU ou às agências cujos dados utiliza. Consulte DISCLAIMER.md para escopo, tratamento de dados e direitos de terceiros.
Construído com FastMCP. A estrutura do servidor focada em país foi inspirada em mcp-brasil.