MCP Dubai
Servidor MCP de código abierto para datos públicos de Dubái y los EAU y conocimiento sobre establecimiento de empresas. Fuente actual: 120 herramientas que cubren clima, horarios de oración, divisas, ubicaciones, descubrimiento de conjuntos de datos, zonas francas, visados, banca y escritura en árabe/inglés. Python, stdio, MIT.
Documentación
MCP-Dubai
Datos públicos de Dubái y los EAU y conocimiento práctico para el establecimiento de empresas, para clientes MCP.
خادم MCP للبيانات العامة في دبي والإمارات وللمعرفة العملية لتأسيس الأعمال
Inicio rápido · Herramientas · Configuración · Actualidad de los datos · Desarrollo · Última auditoría
MCP-Dubai es un servidor de Model Context Protocol que conecta asistentes de IA con APIs públicas, conjuntos de datos de referencia incluidos y conocimiento empresarial seleccionado. Se ejecuta localmente a través de stdio y devuelve resultados estructurados con metadatos de fuente y actualidad cuando están disponibles.
La fuente actual incluye 120 herramientas en 37 funciones:
| Área | Herramientas | Cobertura |
|---|---|---|
| Datos públicos y conjuntos de datos de referencia | 45 | Clima, horarios de oración, divisas, escuelas, festivos, datos de mercado, ubicaciones y descubrimiento de conjuntos de datos |
| Consultas a conjuntos de datos del gobierno de Dubái | 6 | Bienes raíces DLD y transporte RTA a través de OAuth de data.dubai |
| Conocimiento empresarial | 56 | Constitución de empresas, zonas francas, visados, banca, impuestos, cumplimiento, financiación y coste de vida |
| Redacción y análisis | 8 | Plantillas de cartas en árabe/inglés, planes de consulta y síntesis de informes |
| Descubrimiento y diagnóstico | 5 | Recomendación de herramientas, inventario de funciones, versión, fechas de conocimiento y estado de servicios externos |
112 herramientas no requieren credenciales. Dos herramientas de calidad del aire necesitan un token WAQI gratuito; seis herramientas de conjuntos de datos gubernamentales necesitan credenciales OAuth y acceso a los conjuntos de datos. Las herramientas sin credenciales pueden depender de un servicio externo no disponible; consulte disponibilidad y limitaciones.
Inicio rápido
Ejecutar la fuente actual
Requiere Python 3.11 o superior y Git. La auditoría del 5 de septiembre probó Python 3.11 hasta 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 .
En Windows PowerShell, cree el entorno con py -m venv .venv y actívelo con .venv\Scripts\Activate.ps1.
Configure su cliente MCP para iniciar el ejecutable de Python del entorno:
{
"mcpServers": {
"dubai": {
"command": "/absolute/path/to/MCP-Dubai/.venv/bin/python",
"args": ["-m", "mcp_dubai"]
}
}
}
Reemplace command con su ruta absoluta real. En Windows, use la ruta de .venv\Scripts\python.exe del entorno, escapando las barras invertidas en JSON.
| Cliente | Archivo de configuración |
|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json en macOS; %APPDATA%\Claude\claude_desktop_config.json en Windows |
| Cursor | .cursor/mcp.json en el proyecto, o ~/.cursor/mcp.json globalmente |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
Para VS Code, use .vscode/mcp.json con una clave servers:
{
"servers": {
"dubai": {
"command": "/absolute/path/to/MCP-Dubai/.venv/bin/python",
"args": ["-m", "mcp_dubai"]
}
}
}
Para otro cliente MCP, use el mismo comando y argumentos en su configuración de servidor stdio. Después de conectarse, llame a about() para comprobar la versión en ejecución y el número de herramientas, luego recommend_tools(query) para encontrar herramientas relevantes.
Para iniciar el servidor directamente desde el entorno activado:
python -m mcp_dubai
Esto inicia un proceso MCP stdio que espera mensajes del cliente.
Usar el paquete publicado
Instantánea de la versión, 5 de septiembre de 2026: el repositorio es la versión 0.4.0 con 120 herramientas; la versión pública en PyPI es 0.2.0 con 91 herramientas. Use la instalación desde la fuente anterior para el catálogo documentado aquí.
Para ejecutar la versión publicada con uv:
uvx mcp-dubai
En una configuración de cliente, establezca command a uvx y args a ["mcp-dubai"]. Alternativamente, instálelo en un entorno virtual con python -m pip install mcp-dubai y ejecute mcp-dubai.
Catálogo de herramientas
Las herramientas se agrupan por propósito a continuación. Todos los nombres se exponen sin prefijo de función. list_features() devuelve los grupos registrados, recuentos de herramientas, niveles y requisitos de autenticación.
Datos públicos y conjuntos de datos de referencia
| Función | Herramientas | Cobertura |
|---|---|---|
al_adhan | prayer_times_for, prayer_times_calendar, qibla_direction, hijri_to_gregorian, gregorian_to_hijri | Horarios de oración, direcciones de la Qibla y conversión Hijri/Gregoriano. |
quran_cloud | quran_surah, quran_ayah, quran_juz, quran_search | Texto del Corán y traducciones con búsqueda paginada y acotada. |
cbuae | cbuae_exchange_rates, cbuae_base_rate | Tipos de cambio del CBUAE con etiquetas en inglés/árabe y códigos de divisa. El endpoint de tipo base está registrado como bloqueado. |
fcsc_ckan | fcsc_search_dataset, fcsc_get_dataset, fcsc_list_organizations, fca_trade_stats | Descubrimiento de conjuntos de datos federales y búsqueda de datos comerciales. El endpoint CKAN está registrado como bloqueado. |
khda | khda_search_school, khda_list_curricula, khda_list_areas | Búsqueda en una muestra incluida de 16 escuelas por zona, plan de estudios, calificación o límite de tarifa indicativo. Esto no es un directorio escolar completo. |
aviation_weather | weather_uae_icao, weather_uae_all | Observaciones METAR y pronósticos TAF para seis aeropuertos de los EAU. |
open_meteo | uae_weather, uae_weather_forecast, weather_by_coords, list_uae_weather_cities | Clima actual y pronósticos para ocho ciudades de los EAU o coordenadas proporcionadas. |
currency | currency_rates, currency_convert | Tipos de cambio basados en AED y conversión de divisas. |
air_quality | air_quality_dubai, air_quality_by_coords, air_quality_dubai_stations | Lecturas de calidad del aire WAQI y lista de referencia de estaciones. Las lecturas requieren un token gratuito; la lista no. |
osm_overpass | osm_search_poi, osm_list_categories | Puntos de interés cercanos de OpenStreetMap en 22 categorías. |
holidays | uae_holidays, uae_next_holiday, is_uae_holiday | Festivos federales de los EAU para 2026 y un calendario provisional de 2027, con observancias anunciadas distinguidas de estimaciones. |
dfm | dfm_index, dfm_stock_quote, dfm_list_securities | Instantáneas del índice DFM, cotizaciones y valores de endpoints públicos no documentados. Los datos pueden estar retrasados o incompletos. |
makani | makani_reverse_geocode, makani_details, makani_validate | Búsqueda de direcciones Makani, geocodificación inversa y validación de números. |
gold_rate | dubai_gold_rate | Tarifas sugeridas de oro al por menor del Dubai Jewellery Group en AED por gramo. |
data_dubai | data_dubai_search, data_dubai_themes, data_dubai_entities | Metadatos de conjuntos de datos públicos, temas y editores. El acceso a los registros de los conjuntos de datos es independiente. |
rta (GTFS) | rta_gtfs_static_url | Enlace y metadatos para el archivo GTFS anónimo, incluida su compilación fechada y disponibilidad intermitente. |
Consultas a conjuntos de datos gubernamentales
Estas seis herramientas requieren MCP_DUBAI_PULSE_CLIENT_ID, MCP_DUBAI_PULSE_CLIENT_SECRET y acceso a los conjuntos de datos solicitados. Sin credenciales, devuelven instrucciones de configuración estructuradas. Consulte CREDENTIALS.md.
| Función | Herramientas | Cobertura |
|---|---|---|
dld | dld_search_transactions, dld_search_rent_contracts, dld_lookup_broker | Ventas de propiedades, contratos de alquiler Ejari y corredores registrados. |
rta | rta_search_metro_stations, rta_search_bus_routes, rta_salik_tariff | Estaciones de metro, rutas de autobús y datos de tarifas Salik. |
Conocimiento empresarial
Estas herramientas usan 16 paquetes JSON incluidos y un asesor de configuración que combina registros relevantes. Las respuestas exitosas incluyen metadatos de conocimiento. Los precios, las reglas de elegibilidad y las estimaciones conservan su alcance documentado y sus fechas de verificación.
| Función | Herramientas | Cobertura |
|---|---|---|
setup_advisor | setup_advisor | Compare opciones de configuración en tierra firme, zonas francas y offshore usando presupuesto, actividad, visado, banca e impuestos. |
free_zones | list_free_zones, free_zone_details, compare_free_zones, list_offshore | Doce entradas seleccionadas de zonas francas, opciones offshore, costes indicativos y detalles de paquetes. Los precios desconocidos no pueden satisfacer un filtro de presupuesto. |
visas | list_visa_types, visa_details, visa_recommend, golden_visa_check | Rutas de visado y orientación de elegibilidad por categoría, incluidos requisitos de autoridad y evidencia. |
banking | list_banks, bank_details, bank_recommendation, dul_eligibility | Catorce entradas bancarias, tarifas, estimaciones de incorporación e información fechada de integración con la Licencia Unificada de Dubái. |
founder_essentials | attestation_guide, pro_services_estimate, legal_translation_estimate, chamber_of_commerce_info, setup_timeline_estimate, common_founder_mistakes | Legalización de documentos, estimaciones de costes de proveedores, membresía en la Cámara, plazos de configuración y errores comunes de presentación. |
tax_compliance | corporate_tax_estimate, vat_filing_calendar, qfzp_check, esr_status, einvoicing_timeline, late_payment_penalty_estimate | Estimaciones de impuesto corporativo, condiciones QFZP, calendarios de IVA, historial de ESR, hitos de facturación electrónica y estimaciones de sanciones. |
compliance | aml_requirements, ubo_filing_guide, pdpl_compliance, emiratisation_requirements | Requisitos de AML, titularidad real, protección de datos y emiratización. |
funding | accelerator_search, vc_list, grant_programs | Descubrimiento de aceleradoras e inversores, apoyo gubernamental y ventanas de solicitud fechadas. |
gov_portals | portal_guide | Orientación sobre portales gubernamentales, incluidos UAE Pass, DubaiNow y DubaiPay. |
dcde | dcde_programs, chamber_membership | Programas de la Cámara de Economía Digital de Dubái y orientación sobre membresía en la Cámara. |
events | startup_events, gitex_info, ens_calendar | Eventos de startups, GITEX y fechas y sedes de Expand North Star. |
parkin | parking_zones, nol_card_guide | Zonas de aparcamiento, tarifas y tarifas y pases de la tarjeta Nol. |
ip_trademark | trademark_registration, ip_protection | Registro de marcas, patentes y orientación sobre derechos de autor. La orientación sobre diseño industrial aún no es una categoría de herramienta. |
halal | halal_certification, moiat_requirements | Conformidad Halal, organismos de certificación, uso de la Marca Nacional y requisitos MOIAT. |
createapps | createapps_championship, submission_guide | Reglas del Campeonato Create Apps, orientación de solicitud e hitos de competencia fechados. |
cost_of_living | cost_of_living_overview, rent_estimate, dewa_bill_estimate, salik_toll_estimate, grocery_estimate, school_fee_estimate, fuel_price_guide | Presupuestos domésticos indicativos, cálculos de servicios públicos y peajes, estimaciones de tarifas escolares e instantáneas mensuales de precios de combustible. |
tenancy | ejari_guide, rera_rent_increase, rental_dispute_guide | Registro Ejari, cálculos de aumento de alquiler RERA y procedimientos de disputas de alquiler. |
Redacción y análisis
| Función | Herramientas | Cobertura |
|---|---|---|
arabic_writer | list_honorifics, addressee_block, business_letter_template, list_salutations | Plantillas de cartas comerciales en árabe/inglés, tratamientos honoríficos, destinatarios y saludos. |
data_analyst | plan_query, list_plan_categories, synthesize_report, analyze_setup_decision | Planes de consulta entre herramientas y síntesis de informes en Markdown. El agente que llama ejecuta el plan; estas herramientas no lo ejecutan de forma autónoma. |
Descubrimiento y diagnóstico
| Herramienta | Propósito |
|---|---|
recommend_tools(query, top_k=5) | Clasifica herramientas relevantes para una consulta en lenguaje natural usando búsqueda BM25 y alias. |
list_features() | Lista funciones registradas, niveles, requisitos de autenticación y herramientas. |
get_knowledge_status() | Inspecciona fechas, revisa alcance, volatilidad y enlaces de verificación para los 19 dominios de conocimiento rastreados. |
about() | Comprueba la versión del paquete en ejecución, el número de herramientas, la URL del repositorio y la última actualización de conocimiento registrada. |
get_upstream_status() | Lee el registro de estado de las 16 fuentes y las observaciones del proceso actual. Esto no sondea activamente cada endpoint. |
Configuración
No se requieren variables de entorno para iniciar el servidor. Establezca las credenciales en el entorno del servidor del cliente MCP para habilitar las llamadas 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"
}
}
}
}
| Variable | Valor predeterminado | Propósito |
|---|---|---|
MCP_DUBAI_PULSE_CLIENT_ID | Sin definir | ID de cliente OAuth para las seis herramientas de conjuntos de datos gubernamentales |
MCP_DUBAI_PULSE_CLIENT_SECRET | Sin definir | Secreto del cliente OAuth, utilizado con el ID de cliente |
MCP_DUBAI_WAQI_TOKEN | Sin definir | Token para las dos herramientas de lectura de calidad del aire |
MCP_DUBAI_PULSE_API_BASE | https://apis.data.dubai | URL base de la API de conjuntos de datos gubernamentales |
MCP_DUBAI_DATA_PORTAL_BASE | https://data.dubai | URL base del portal público de metadatos |
MCP_DUBAI_LOG_LEVEL | INFO | Verbosidad del registro |
MCP_DUBAI_HTTP_TIMEOUT | 30.0 | Tiempo de espera HTTP en segundos |
MCP_DUBAI_HTTP_MAX_RETRIES | 3 | Intentos totales por solicitud; solo se reintentan tiempos de espera y errores de red |
Solicite acceso a conjuntos de datos en data.dubai y un token gratuito de WAQI en AQICN. Mantenga las credenciales fuera de los archivos de configuración confirmados. La guía de credenciales cubre la configuración y la resolución de problemas. MCP_DUBAI_CALENDARIFIC_KEY está reservado para una futura integración de actualización de días festivos y actualmente no habilita ninguna herramienta adicional.
Fuentes de datos
| Fuente | Utilizada para | Acceso |
|---|---|---|
| Al-Adhan, Al-Quran Cloud | Horarios de oración, conversión de calendario, texto del Corán | APIs anónimas |
| CBUAE, ExchangeRate-API | Tipos de cambio y conversión de divisas | Endpoints anónimos; los endpoints de CBUAE no están documentados |
| FCSC Open Data | Descubrimiento de conjuntos de datos federales | API CKAN anónima, registrada como bloqueada |
| KHDA | Datos de referencia de escuelas | Muestra incluida |
| Aviation Weather Center, Open-Meteo | Clima de aeropuertos y general | APIs anónimas |
| WAQI / AQICN | Calidad del aire | Token gratuito |
| OpenStreetMap Overpass, Makani | Puntos de interés y búsqueda de direcciones | Servicios anónimos |
| DFM, Dubai City of Gold | Datos de mercado y precios minoristas de oro | Endpoints JSON públicos y HTML; los endpoints de DFM no están documentados |
| data.dubai, API gateway | Descubrimiento de conjuntos de datos, consultas DLD y RTA | Metadatos anónimos; OAuth para registros de conjuntos de datos |
| Anuncios de días festivos federales de los EAU | Días festivos públicos | Calendario incluido con fechas provisionales marcadas |
| Paquetes de conocimiento empresarial | Configuración empresarial y orientación de referencia | JSON incluido con enlaces de origen y metadatos de revisión |
El antiguo portal Dubai Pulse redirige a data.dubai. El proyecto conserva PULSE en los nombres de variables de credenciales; su API gateway predeterminada es apis.data.dubai.
Disponibilidad y limitaciones
La auditoría del 5 de septiembre de 2026 registra comprobaciones de servicios representativas, verificación de fuentes y límites restantes. Estas observaciones son una instantánea fechada:
| Integración | Resultado registrado |
|---|---|
| Tipos de cambio CBUAE | Funcionando; se devolvieron 77 divisas |
| Tasa base CBUAE y cuatro herramientas FCSC | Bloqueadas por protección de acceso ascendente |
| Catálogo data.dubai | Funcionando; 610 conjuntos de datos, 11 temas y 75 emisores |
| DFM | Funcionando; 458 valores, con nombres faltantes ascendentes |
| Archivo GTFS de RTA | Acceso intermitente; el archivo recuperado aún identifica la compilación del 23 de agosto de 2025 |
| Otras integraciones anónimas | Llamadas representativas exitosas para horarios de oración, texto del Corán, clima, divisas, oro, Makani y Overpass |
| Conjuntos de datos OAuth y lecturas WAQI | No probados en vivo en la auditoría sin credenciales representativas |
El conjunto de datos de escuelas contiene 16 registros seleccionados de una instantánea de abril de 2026. Nueve registros recibieron correcciones de atributos específicas el 5 de septiembre; las tarifas escolares no se actualizaron. Los costos empresariales y los plazos de incorporación también pueden ser estimaciones fechadas, como se indica en los registros subyacentes.
Los clientes deben inspeccionar success antes de usar un resultado y leer el error devuelto cuando una llamada falla. Las fallas de credenciales y ascendentes incluyen campos estructurados de estado y motivo cuando corresponda. Use get_upstream_status() para la línea base registrada y las observaciones de las herramientas utilizadas durante la sesión actual.
Frescura del conocimiento
La frescura se rastrea en 19 dominios: 16 paquetes JSON, setup_advisor, data_analyst y arabic_writer. Las respuestas empresariales exitosas incluyen un bloque knowledge; get_knowledge_status() expone el registro completo.
| Campo | Significado |
|---|---|
knowledge_date | Última actualización material del dominio |
full_review_date | Última revisión completa del dominio |
previous_knowledge_date | Fecha de actualización anterior, cuando se registra para una actualización específica |
last_refresh_scope | Campos o temas cubiertos por una actualización específica |
volatility | Categoría de presupuesto de revisión: alta, media o estable |
verify_at | Verificación de dominio o URL de origen |
disclaimer | Alcance específico del dominio y limitaciones de uso |
A partir del 5 de septiembre de 2026, 18 dominios tienen una última actualización de 2026-09-05; arabic_writer permanece en 2026-04-13. Las actualizaciones de septiembre fueron específicas: los campos no tocados y las fechas de revisión completa conservan su alcance de verificación anterior. Las correcciones detalladas y los enlaces de origen están en el informe de auditoría.
El verificador de frescura utiliza la última revisión completa, con presupuestos de alerta de 100 días para dominios de alta volatilidad, 190 para medios y 365 para estables. Los precios mensuales, plazos y eventos aún necesitan revisión en sus propios calendarios. Pasar la verificación de antigüedad no establece que cada hecho esté actualizado.
python scripts/check_knowledge_freshness.py --strict
Verifique los requisitos oficiales vinculados antes de confiar en orientación fiscal, de visa, legal o de precios para una decisión.
Ejemplos de consultas
Pida a un asistente conectado que use MCP-Dubai para solicitudes como:
| Solicitud | Herramientas relevantes |
|---|---|
| ¿A qué hora es Fajr mañana en Dubái? | prayer_times_for |
| Encuentre farmacias a menos de 500 metros de estas coordenadas. | osm_search_poi |
| Encuentre conjuntos de datos públicos sobre el tráfico de Dubái. | data_dubai_search |
| Compare DMCC e IFZA para una consultoría con dos visas. | free_zone_details, compare_free_zones, setup_advisor |
| Estime el impuesto corporativo sobre AED 500,000 de ingresos imponibles y explique la información QFZP necesaria. | corporate_tax_estimate, qfzp_check |
| ¿Cuál es la ruta de apostilla para un certificado de título indio? | attestation_guide |
| Estime los costos de vida mensuales para una familia de cuatro. | cost_of_living_overview, rent_estimate |
| Prepare una carta en árabe/inglés dirigida a un departamento gubernamental. | business_letter_template, addressee_block |
La selección de herramientas y las preguntas de seguimiento dependen del cliente. Estos ejemplos describen búsquedas y estimaciones; el servidor no envía solicitudes ni abre cuentas.
Desarrollo
Desde el entorno de origen activado creado en Inicio rápido:
python -m pip install -e ".[dev,data]"
make check
make check ejecuta comprobaciones de formato y lint de Ruff, mypy estricto, pytest con cobertura y el informe informativo de frescura. Use el comando de frescura --strict anterior para fallar en dominios vencidos.
La auditoría del 5 de septiembre registró 967 pruebas aprobadas en cada versión de Python compatible probada, con 93.61% de cobertura en la ejecución principal. El empaquetado, las comprobaciones de tipos, lint y escaneos de seguridad también pasaron; la auditoría documenta su alcance.
Arquitectura
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
Los módulos de características tools.py implementan la lógica; los módulos server.py exponen envoltorios FastMCP y registran metadatos de descubrimiento. Los modelos de respuesta compartidos llevan resultados, errores y metadatos de conocimiento. El código fuente admite fastmcp>=3.4.7,<4; las dependencias y las versiones de Python compatibles se declaran en pyproject.toml.
Lea CONTRIBUTING.md para conocer las convenciones de características, pruebas y la lista de verificación de revisión. Informe errores reproducibles o correcciones de fuentes a través de problemas de GitHub.
Estado del proyecto
MCP-Dubai es software alfa. La versión 0.4.0 está disponible en este repositorio. Según lo registrado en la auditoría del 5 de septiembre, la publicación en PyPI permanece en 0.2.0 y el manifiesto validado del Registro MCP no tiene un registro publicado.
Prioridades actuales:
- Publicar la versión actual del código fuente en PyPI y el Registro MCP.
- Reconstruir el conjunto de datos KHDA a partir de un libro de trabajo completo autorizado, incluidas las tarifas actuales.
- Agregar comprobaciones de contrato en vivo para conjuntos de datos dependientes de credenciales y mejorar integraciones bloqueadas o intermitentes.
- Ampliar la cobertura de conjuntos de datos gubernamentales cuando se puedan verificar el acceso y los esquemas.
- Continuar con actualizaciones de conocimiento respaldadas por fuentes mientras se preserva el alcance de revisión parcial.
- Mejorar las etiquetas de descubrimiento de herramientas y los alias en árabe/inglés.
Licencia y atribución
Licenciado bajo MIT. Los datos ascendentes siguen sujetos a los términos de sus editores y requisitos de atribución.
Este es un proyecto independiente, no afiliado al Gobierno de Dubái, al gobierno de los EAU ni a las agencias cuyos datos utiliza. Consulte DISCLAIMER.md para conocer el alcance, el manejo de datos y los derechos de terceros.
Construido con FastMCP. La estructura del servidor centrada en el país se inspiró en mcp-brasil.