MCP-Dubai

mcp
Security Audit
Warn
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 6 GitHub stars
Code Warn
  • process.env — Environment variable access in .github/workflows/knowledge-freshness.yml
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

MCP Server for Dubai & UAE public APIs real estate, transport, statistics, education, health, business & more. Connect AI agents to Dubai Pulse, RTA, DLD, KHDA, DHA data. دبي

README.md
UAE

MCP-Dubai

Dubai and UAE public data and business setup knowledge for MCP clients.

خادم MCP للبيانات العامة في دبي والإمارات وللمعرفة العملية لتأسيس الأعمال

PyPI
Python 3.11+
CI
Status: Alpha
License: MIT

Quick start · Tools · Configuration · Data freshness · Development · Latest audit

MCP-Dubai is a Model Context Protocol server that connects AI assistants to public APIs, bundled reference datasets, and curated business knowledge. It runs locally over stdio and returns structured results with source and freshness metadata where available.

The current source includes 120 tools across 37 features:

Area Tools Coverage
Public data and reference datasets 45 Weather, prayer times, currencies, schools, holidays, market data, locations, and dataset discovery
Dubai government dataset queries 6 DLD real estate and RTA transport through data.dubai OAuth
Business knowledge 56 Company setup, free zones, visas, banking, tax, compliance, funding, and living costs
Writing and analysis 8 Arabic/English letter templates, query plans, and report synthesis
Discovery and diagnostics 5 Tool recommendations, feature inventory, version, knowledge dates, and upstream status

112 tools require no credentials. Two air-quality tools need a free WAQI token; six government dataset tools need OAuth credentials and dataset access. Credential-free tools can still depend on an unavailable upstream service; see availability and limitations.

Quick start

Run the current source

Requires Python 3.11 or newer and Git. The October 13 audit tested Python 3.11 through 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 .

On Windows PowerShell, create the environment with py -m venv .venv and activate it with .venv\Scripts\Activate.ps1.

Configure your MCP client to launch the environment's Python executable:

{
  "mcpServers": {
    "dubai": {
      "command": "/absolute/path/to/MCP-Dubai/.venv/bin/python",
      "args": ["-m", "mcp_dubai"]
    }
  }
}

Replace command with your actual absolute path. On Windows, use the environment's .venv\Scripts\python.exe path, escaping backslashes in JSON.

Client Configuration file
Claude Desktop ~/Library/Application Support/Claude/claude_desktop_config.json on macOS; %APPDATA%\Claude\claude_desktop_config.json on Windows
Cursor .cursor/mcp.json in the project, or ~/.cursor/mcp.json globally
Windsurf ~/.codeium/windsurf/mcp_config.json

For VS Code, use .vscode/mcp.json with a servers key:

{
  "servers": {
    "dubai": {
      "command": "/absolute/path/to/MCP-Dubai/.venv/bin/python",
      "args": ["-m", "mcp_dubai"]
    }
  }
}

For another MCP client, use the same command and arguments in its stdio server settings. After connecting, call about() to check the running version and tool count, then recommend_tools(query) to find relevant tools.

To launch the server directly from the activated environment:

python -m mcp_dubai

This starts an MCP stdio process that waits for client messages.

Use the published package

Release snapshot, October 13, 2026: the repository is version 0.4.0 with 120 tools; the public PyPI release is 0.2.0 with 91 tools. Use the source installation above for the catalogue documented here.

To run the published release with uv:

uvx mcp-dubai

In a client configuration, set command to uvx and args to ["mcp-dubai"]. Alternatively, install it in a virtual environment with python -m pip install mcp-dubai and run mcp-dubai.

Tool catalogue

Tools are grouped by purpose below. All names are exposed without a feature prefix. list_features() returns the registered groups, tool counts, tiers, and authentication requirements.

Public data and reference datasets

Feature Tools Coverage
al_adhan prayer_times_for, prayer_times_calendar, qibla_direction, hijri_to_gregorian, gregorian_to_hijri Prayer times, Qibla bearings, and Hijri/Gregorian conversion.
quran_cloud quran_surah, quran_ayah, quran_juz, quran_search Quran text and translations with bounded, paginated search.
cbuae cbuae_exchange_rates, cbuae_base_rate CBUAE exchange rates with English/Arabic labels and currency codes. The base-rate endpoint is recorded as blocked.
fcsc_ckan fcsc_search_dataset, fcsc_get_dataset, fcsc_list_organizations, fca_trade_stats Federal dataset discovery and trade-data search. The CKAN endpoint is recorded as blocked.
khda khda_search_school, khda_list_curricula, khda_list_areas Search a bundled 16-school sample by area, curriculum, rating, or indicative fee ceiling. This is not a complete school directory.
aviation_weather weather_uae_icao, weather_uae_all METAR observations and TAF forecasts for six UAE airports.
open_meteo uae_weather, uae_weather_forecast, weather_by_coords, list_uae_weather_cities Current weather and forecasts for eight UAE cities or supplied coordinates.
currency currency_rates, currency_convert AED-based exchange rates and currency conversion.
air_quality air_quality_dubai, air_quality_by_coords, air_quality_dubai_stations WAQI air-quality readings and a station reference list. Readings require a free token; the list does not.
osm_overpass osm_search_poi, osm_list_categories Nearby OpenStreetMap points of interest across 22 categories.
holidays uae_holidays, uae_next_holiday, is_uae_holiday UAE federal holidays for 2026 and a provisional 2027 calendar, with announced observances distinguished from estimates.
dfm dfm_index, dfm_stock_quote, dfm_list_securities DFM index snapshots, quotes, and securities from undocumented public endpoints. Data may be delayed or incomplete.
makani makani_reverse_geocode, makani_details, makani_validate Makani address lookup, reverse geocoding, and number validation.
gold_rate dubai_gold_rate Dubai Jewellery Group suggested retail gold rates in AED per gram.
data_dubai data_dubai_search, data_dubai_themes, data_dubai_entities Public dataset metadata, themes, and publishers. Access to dataset records is separate.
rta (GTFS) rta_gtfs_static_url Link and metadata for the anonymous GTFS archive, including its dated build and intermittent availability.

Government dataset queries

These six tools require MCP_DUBAI_PULSE_CLIENT_ID, MCP_DUBAI_PULSE_CLIENT_SECRET, and access to the requested datasets. Without credentials, they return structured setup instructions. See CREDENTIALS.md.

Feature Tools Coverage
dld dld_search_transactions, dld_search_rent_contracts, dld_lookup_broker Property sales, Ejari rental contracts, and registered brokers.
rta rta_search_metro_stations, rta_search_bus_routes, rta_salik_tariff Metro stations, bus routes, and Salik tariff data.

Business knowledge

These tools use 16 bundled JSON packs and a setup advisor that combines relevant records. Successful responses include knowledge metadata. Prices, eligibility rules, and estimates retain their documented scope and verification dates.

Feature Tools Coverage
setup_advisor setup_advisor Compare mainland, free-zone, and offshore setup options using budget, activity, visa, banking, and tax considerations.
free_zones list_free_zones, free_zone_details, compare_free_zones, list_offshore Twelve curated free-zone entries, offshore options, indicative costs, and package details. Unknown prices cannot satisfy a budget filter.
visas list_visa_types, visa_details, visa_recommend, golden_visa_check Visa routes and category-specific eligibility guidance, including authority and evidence requirements.
banking list_banks, bank_details, bank_recommendation, dul_eligibility Fourteen bank entries, fees, onboarding estimates, and dated Dubai Unified Licence integration information.
founder_essentials attestation_guide, pro_services_estimate, legal_translation_estimate, chamber_of_commerce_info, setup_timeline_estimate, common_founder_mistakes Document attestation, provider cost estimates, Chamber membership, setup timelines, and common filing mistakes.
tax_compliance corporate_tax_estimate, vat_filing_calendar, qfzp_check, esr_status, einvoicing_timeline, late_payment_penalty_estimate Corporate tax estimates, QFZP conditions, VAT calendars, ESR history, e-invoicing milestones, and penalty estimates.
compliance aml_requirements, ubo_filing_guide, pdpl_compliance, emiratisation_requirements AML, beneficial ownership, data-protection, and Emiratisation requirements.
funding accelerator_search, vc_list, grant_programs Accelerator and investor discovery, government support, and dated application windows.
gov_portals portal_guide Government portal guidance, including UAE Pass, DubaiNow, and DubaiPay.
dcde dcde_programs, chamber_membership Dubai Chamber of Digital Economy programs and Chamber membership guidance.
events startup_events, gitex_info, ens_calendar Startup events, GITEX, and Expand North Star dates and venues.
parkin parking_zones, nol_card_guide Parking zones, tariffs, and Nol card fares and passes.
ip_trademark trademark_registration, ip_protection Trademark registration, patent, and copyright guidance. Industrial-design guidance is not yet a tool category.
halal halal_certification, moiat_requirements Halal conformity, certification bodies, National Mark use, and MOIAT requirements.
createapps createapps_championship, submission_guide Create Apps Championship rules, application guidance, and dated competition milestones.
cost_of_living cost_of_living_overview, rent_estimate, dewa_bill_estimate, salik_toll_estimate, grocery_estimate, school_fee_estimate, fuel_price_guide Indicative household budgets, utility and toll calculations, school fee estimates, and monthly fuel-price snapshots.
tenancy ejari_guide, rera_rent_increase, rental_dispute_guide Ejari registration, RERA rent-increase calculations, and rental-dispute procedures.

Writing and analysis

Feature Tools Coverage
arabic_writer list_honorifics, addressee_block, business_letter_template, list_salutations Arabic/English business letter templates, honorifics, addressees, and salutations.
data_analyst plan_query, list_plan_categories, synthesize_report, analyze_setup_decision Cross-tool query plans and Markdown report synthesis. The calling agent executes the plan; these tools do not run it autonomously.

Discovery and diagnostics

Tool Purpose
recommend_tools(query, top_k=5) Rank tools relevant to a natural-language query using BM25 search and aliases.
list_features() List registered features, tiers, authentication requirements, and tools.
get_knowledge_status() Inspect dates, review scope, volatility, and verification links for all 19 tracked knowledge domains.
about() Find the developer name and contact email, running package version, tool count, repository URL, and latest recorded knowledge update.
get_upstream_status() Read the 16-source status registry and observations from the current process. This does not actively probe every endpoint.

Configuration

No environment variables are required to start the server. Set credentials in the MCP client's server environment to enable the relevant calls.

{
  "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 Default Purpose
MCP_DUBAI_PULSE_CLIENT_ID Unset OAuth client ID for the six government dataset tools
MCP_DUBAI_PULSE_CLIENT_SECRET Unset OAuth client secret, used with the client ID
MCP_DUBAI_WAQI_TOKEN Unset Token for the two air-quality reading tools
MCP_DUBAI_PULSE_API_BASE https://apis.data.dubai Government dataset API base URL
MCP_DUBAI_DATA_PORTAL_BASE https://data.dubai Public metadata portal base URL
MCP_DUBAI_LOG_LEVEL INFO Log verbosity
MCP_DUBAI_HTTP_TIMEOUT 30.0 HTTP timeout in seconds
MCP_DUBAI_HTTP_MAX_RETRIES 3 Total attempts per request; only timeouts and network errors are retried

Request dataset access at data.dubai and a free WAQI token at AQICN. Keep credentials out of committed configuration files. The credential guide covers setup and troubleshooting. MCP_DUBAI_CALENDARIFIC_KEY is reserved for a future holiday refresh integration and currently enables no additional tool.

Data sources

Source Used for Access
Al-Adhan, Al-Quran Cloud Prayer times, calendar conversion, Quran text Anonymous APIs
CBUAE, ExchangeRate-API Exchange rates and currency conversion Anonymous endpoints; CBUAE endpoints are undocumented
FCSC Open Data Federal dataset discovery Anonymous CKAN API, recorded as blocked
KHDA School reference data Bundled sample
Aviation Weather Center, Open-Meteo Airport and general weather Anonymous APIs
WAQI / AQICN Air quality Free token
OpenStreetMap Overpass, Makani Points of interest and address lookup Anonymous services
DFM, Dubai City of Gold Market data and retail gold rates Public JSON endpoints and HTML; DFM endpoints are undocumented
data.dubai, API gateway Dataset discovery, DLD and RTA queries Anonymous metadata; OAuth for dataset records
UAE federal holiday announcements Public holidays Bundled calendar with provisional dates marked
Business knowledge packs Business setup and reference guidance Bundled JSON with source links and review metadata

The former Dubai Pulse portal redirects to data.dubai. The project retains PULSE in credential variable names; its default API gateway is apis.data.dubai.

Availability and limitations

The October 13, 2026 audit records representative service checks, source verification, and remaining limits. These observations are a dated snapshot:

Integration Recorded result
CBUAE exchange rates Working; 77 currencies returned
CBUAE base rate and four FCSC tools Blocked by upstream access protection
data.dubai catalogue Working; 638 datasets, 11 themes, and 75 issuers
DFM Working; 484 securities, with names missing upstream
RTA GTFS archive Intermittent access via the apex host; retrieved archive still identifies the August 23, 2025 build
Other anonymous integrations Successful representative calls for prayer times, Quran text, aviation and general weather, currencies, gold, Makani, and Overpass (Overpass after one transient HTTP 504)
OAuth datasets and WAQI readings Not live-tested in the audit without representative credentials

The school dataset contains 16 selected records from an April 2026 snapshot. Nine records received targeted attribute corrections on September 5; school fees were not refreshed. Business costs and onboarding timelines can also be dated estimates, as indicated in the underlying records.

Clients should inspect success before using a result and read the returned error when a call fails. Credential and upstream failures include structured status and reason fields where applicable. Use get_upstream_status() for the recorded baseline and observations from tools used during the current session.

Knowledge freshness

Freshness is tracked across 19 domains: 16 JSON packs, setup_advisor, data_analyst, and arabic_writer. Successful business responses include a knowledge block; get_knowledge_status() exposes the complete registry.

Field Meaning
knowledge_date Latest material update to the domain
full_review_date Last complete domain review
previous_knowledge_date Prior update date, when recorded for a targeted refresh
last_refresh_scope Fields or topics covered by a targeted update
volatility Review-budget category: high, medium, or stable
verify_at Domain verification or source URL
disclaimer Domain-specific scope and use limitations

As of October 13, 2026, nine domains received a full review (cost_of_living, events, free_zones, visas, setup_advisor, dcde, ip_trademark, founder_essentials, data_analyst) and four more a targeted refresh; the rest keep their earlier stamps, with arabic_writer at 2026-04-13. Targeted updates leave untouched fields and full-review dates at their earlier verification scope. Detailed corrections and source links are in the audit report.

The freshness checker uses the last full review, with alerting budgets of 100 days for high-volatility domains, 190 for medium, and 365 for stable. Monthly prices, deadlines, and events still need review on their own schedules. Passing the age check does not establish that every fact is current.

python scripts/check_knowledge_freshness.py --strict

Verify the linked official requirements before relying on tax, visa, legal, or pricing guidance for a decision.

Example queries

Ask a connected assistant to use MCP-Dubai for requests such as:

Request Relevant tools
What time is Fajr tomorrow in Dubai? prayer_times_for
Find pharmacies within 500 metres of these coordinates. osm_search_poi
Find public datasets about Dubai traffic. data_dubai_search
Compare DMCC and IFZA for a consultancy with two visas. free_zone_details, compare_free_zones, setup_advisor
Estimate corporate tax on AED 500,000 of taxable income and explain the QFZP information needed. corporate_tax_estimate, qfzp_check
What is the attestation route for an Indian degree certificate? attestation_guide
Estimate monthly living costs for a family of four. cost_of_living_overview, rent_estimate
Prepare an Arabic/English letter addressed to a government department. business_letter_template, addressee_block

Tool selection and follow-up questions depend on the client. These examples describe lookups and estimates; the server does not submit applications or open accounts.

Development

From the activated source environment created in Quick start:

python -m pip install -e ".[dev,data]"
make check

make check runs Ruff lint and format checks, strict mypy, pytest with coverage, and the informational freshness report. Use the --strict freshness command above to fail on overdue domains.

The October 13 audit recorded 1004 passing tests on each supported Python version (3.11 to 3.14), with 93.77% coverage in the primary run. Packaging, type checks, lint, and security scans also passed; the audit documents their scope.

Architecture

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

Feature tools.py modules implement the logic; server.py modules expose FastMCP wrappers and register discovery metadata. Shared response models carry results, errors, and knowledge metadata. The source supports fastmcp>=3.4.8,<4; dependencies and supported Python versions are declared in pyproject.toml.

Read CONTRIBUTING.md for feature conventions, tests, and the review checklist. Report reproducible errors or source corrections through GitHub issues.

Project status

MCP-Dubai is alpha software. Version 0.4.0 is available in this repository. As recorded in the October 13 audit, PyPI publication remains at 0.2.0 and the validated MCP Registry manifest has no published registry record.

Current priorities:

  • Publish the current source release to PyPI and the MCP Registry.
  • Rebuild the KHDA dataset from an authoritative full workbook, including current fees.
  • Add live contract checks for credential-dependent datasets and improve blocked or intermittent integrations.
  • Extend government dataset coverage when access and schemas can be verified.
  • Continue source-backed knowledge updates while preserving partial-review scope.
  • Improve tool discovery tags and Arabic/English aliases.

License and attribution

Developed by Mahdi Salmanzadeh. Contact: [email protected]. Connected AI assistants receive this attribution in the server instructions and can call about() to answer who made MCP-Dubai.

Licensed under MIT. Upstream data remains subject to its publishers' terms and attribution requirements.

This is an independent project, unaffiliated with the Government of Dubai, the UAE government, or the agencies whose data it uses. See DISCLAIMER.md for scope, data handling, and third-party rights.

Built with FastMCP. The country-focused server structure was inspired by mcp-brasil.

Reviews (0)

No results found