MCP Dubai

Open-source MCP server for Dubai and UAE public data and business setup knowledge. Current source: 120 tools covering weather, prayer times, currencies, locations, dataset discovery, free zones, visas, banking and Arabic/English writing. Python, stdio, MIT.

Documentation

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:

AreaToolsCoverage
Public data and reference datasets45Weather, prayer times, currencies, schools, holidays, market data, locations, and dataset discovery
Dubai government dataset queries6DLD real estate and RTA transport through data.dubai OAuth
Business knowledge56Company setup, free zones, visas, banking, tax, compliance, funding, and living costs
Writing and analysis8Arabic/English letter templates, query plans, and report synthesis
Discovery and diagnostics5Tool 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 September 5 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.

ClientConfiguration 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, September 5, 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

FeatureToolsCoverage
al_adhanprayer_times_for, prayer_times_calendar, qibla_direction, hijri_to_gregorian, gregorian_to_hijriPrayer times, Qibla bearings, and Hijri/Gregorian conversion.
quran_cloudquran_surah, quran_ayah, quran_juz, quran_searchQuran text and translations with bounded, paginated search.
cbuaecbuae_exchange_rates, cbuae_base_rateCBUAE exchange rates with English/Arabic labels and currency codes. The base-rate endpoint is recorded as blocked.
fcsc_ckanfcsc_search_dataset, fcsc_get_dataset, fcsc_list_organizations, fca_trade_statsFederal dataset discovery and trade-data search. The CKAN endpoint is recorded as blocked.
khdakhda_search_school, khda_list_curricula, khda_list_areasSearch a bundled 16-school sample by area, curriculum, rating, or indicative fee ceiling. This is not a complete school directory.
aviation_weatherweather_uae_icao, weather_uae_allMETAR observations and TAF forecasts for six UAE airports.
open_meteouae_weather, uae_weather_forecast, weather_by_coords, list_uae_weather_citiesCurrent weather and forecasts for eight UAE cities or supplied coordinates.
currencycurrency_rates, currency_convertAED-based exchange rates and currency conversion.
air_qualityair_quality_dubai, air_quality_by_coords, air_quality_dubai_stationsWAQI air-quality readings and a station reference list. Readings require a free token; the list does not.
osm_overpassosm_search_poi, osm_list_categoriesNearby OpenStreetMap points of interest across 22 categories.
holidaysuae_holidays, uae_next_holiday, is_uae_holidayUAE federal holidays for 2026 and a provisional 2027 calendar, with announced observances distinguished from estimates.
dfmdfm_index, dfm_stock_quote, dfm_list_securitiesDFM index snapshots, quotes, and securities from undocumented public endpoints. Data may be delayed or incomplete.
makanimakani_reverse_geocode, makani_details, makani_validateMakani address lookup, reverse geocoding, and number validation.
gold_ratedubai_gold_rateDubai Jewellery Group suggested retail gold rates in AED per gram.
data_dubaidata_dubai_search, data_dubai_themes, data_dubai_entitiesPublic dataset metadata, themes, and publishers. Access to dataset records is separate.
rta (GTFS)rta_gtfs_static_urlLink 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.

FeatureToolsCoverage
dlddld_search_transactions, dld_search_rent_contracts, dld_lookup_brokerProperty sales, Ejari rental contracts, and registered brokers.
rtarta_search_metro_stations, rta_search_bus_routes, rta_salik_tariffMetro 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.

FeatureToolsCoverage
setup_advisorsetup_advisorCompare mainland, free-zone, and offshore setup options using budget, activity, visa, banking, and tax considerations.
free_zoneslist_free_zones, free_zone_details, compare_free_zones, list_offshoreTwelve curated free-zone entries, offshore options, indicative costs, and package details. Unknown prices cannot satisfy a budget filter.
visaslist_visa_types, visa_details, visa_recommend, golden_visa_checkVisa routes and category-specific eligibility guidance, including authority and evidence requirements.
bankinglist_banks, bank_details, bank_recommendation, dul_eligibilityFourteen bank entries, fees, onboarding estimates, and dated Dubai Unified Licence integration information.
founder_essentialsattestation_guide, pro_services_estimate, legal_translation_estimate, chamber_of_commerce_info, setup_timeline_estimate, common_founder_mistakesDocument attestation, provider cost estimates, Chamber membership, setup timelines, and common filing mistakes.
tax_compliancecorporate_tax_estimate, vat_filing_calendar, qfzp_check, esr_status, einvoicing_timeline, late_payment_penalty_estimateCorporate tax estimates, QFZP conditions, VAT calendars, ESR history, e-invoicing milestones, and penalty estimates.
complianceaml_requirements, ubo_filing_guide, pdpl_compliance, emiratisation_requirementsAML, beneficial ownership, data-protection, and Emiratisation requirements.
fundingaccelerator_search, vc_list, grant_programsAccelerator and investor discovery, government support, and dated application windows.
gov_portalsportal_guideGovernment portal guidance, including UAE Pass, DubaiNow, and DubaiPay.
dcdedcde_programs, chamber_membershipDubai Chamber of Digital Economy programs and Chamber membership guidance.
eventsstartup_events, gitex_info, ens_calendarStartup events, GITEX, and Expand North Star dates and venues.
parkinparking_zones, nol_card_guideParking zones, tariffs, and Nol card fares and passes.
ip_trademarktrademark_registration, ip_protectionTrademark registration, patent, and copyright guidance. Industrial-design guidance is not yet a tool category.
halalhalal_certification, moiat_requirementsHalal conformity, certification bodies, National Mark use, and MOIAT requirements.
createappscreateapps_championship, submission_guideCreate Apps Championship rules, application guidance, and dated competition milestones.
cost_of_livingcost_of_living_overview, rent_estimate, dewa_bill_estimate, salik_toll_estimate, grocery_estimate, school_fee_estimate, fuel_price_guideIndicative household budgets, utility and toll calculations, school fee estimates, and monthly fuel-price snapshots.
tenancyejari_guide, rera_rent_increase, rental_dispute_guideEjari registration, RERA rent-increase calculations, and rental-dispute procedures.

Writing and analysis

FeatureToolsCoverage
arabic_writerlist_honorifics, addressee_block, business_letter_template, list_salutationsArabic/English business letter templates, honorifics, addressees, and salutations.
data_analystplan_query, list_plan_categories, synthesize_report, analyze_setup_decisionCross-tool query plans and Markdown report synthesis. The calling agent executes the plan; these tools do not run it autonomously.

Discovery and diagnostics

ToolPurpose
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()Check the 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"
      }
    }
  }
}
VariableDefaultPurpose
MCP_DUBAI_PULSE_CLIENT_IDUnsetOAuth client ID for the six government dataset tools
MCP_DUBAI_PULSE_CLIENT_SECRETUnsetOAuth client secret, used with the client ID
MCP_DUBAI_WAQI_TOKENUnsetToken for the two air-quality reading tools
MCP_DUBAI_PULSE_API_BASEhttps://apis.data.dubaiGovernment dataset API base URL
MCP_DUBAI_DATA_PORTAL_BASEhttps://data.dubaiPublic metadata portal base URL
MCP_DUBAI_LOG_LEVELINFOLog verbosity
MCP_DUBAI_HTTP_TIMEOUT30.0HTTP timeout in seconds
MCP_DUBAI_HTTP_MAX_RETRIES3Total 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

SourceUsed forAccess
Al-Adhan, Al-Quran CloudPrayer times, calendar conversion, Quran textAnonymous APIs
CBUAE, ExchangeRate-APIExchange rates and currency conversionAnonymous endpoints; CBUAE endpoints are undocumented
FCSC Open DataFederal dataset discoveryAnonymous CKAN API, recorded as blocked
KHDASchool reference dataBundled sample
Aviation Weather Center, Open-MeteoAirport and general weatherAnonymous APIs
WAQI / AQICNAir qualityFree token
OpenStreetMap Overpass, MakaniPoints of interest and address lookupAnonymous services
DFM, Dubai City of GoldMarket data and retail gold ratesPublic JSON endpoints and HTML; DFM endpoints are undocumented
data.dubai, API gatewayDataset discovery, DLD and RTA queriesAnonymous metadata; OAuth for dataset records
UAE federal holiday announcementsPublic holidaysBundled calendar with provisional dates marked
Business knowledge packsBusiness setup and reference guidanceBundled 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 September 5, 2026 audit records representative service checks, source verification, and remaining limits. These observations are a dated snapshot:

IntegrationRecorded result
CBUAE exchange ratesWorking; 77 currencies returned
CBUAE base rate and four FCSC toolsBlocked by upstream access protection
data.dubai catalogueWorking; 610 datasets, 11 themes, and 75 issuers
DFMWorking; 458 securities, with names missing upstream
RTA GTFS archiveIntermittent access; retrieved archive still identifies the August 23, 2025 build
Other anonymous integrationsSuccessful representative calls for prayer times, Quran text, weather, currencies, gold, Makani, and Overpass
OAuth datasets and WAQI readingsNot 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.

FieldMeaning
knowledge_dateLatest material update to the domain
full_review_dateLast complete domain review
previous_knowledge_datePrior update date, when recorded for a targeted refresh
last_refresh_scopeFields or topics covered by a targeted update
volatilityReview-budget category: high, medium, or stable
verify_atDomain verification or source URL
disclaimerDomain-specific scope and use limitations

As of September 5, 2026, 18 domains have a latest update of 2026-09-05; arabic_writer remains at 2026-04-13. September updates were targeted: untouched fields and full-review dates retain 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:

RequestRelevant 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 September 5 audit recorded 967 passing tests on each supported Python version tested, with 93.61% 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.7,<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 September 5 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

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.