MCP Dubai
PYPI · MCP-DUBAI
Dubai and UAE public data plus curated business setup knowledge across 120 MCP tools.
Available components
Last scanned (4 hours ago)
Scores higher than 70% of PyPI servers
Category Maps and Location
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security50
- Malware scan not yet available for this package.Unverified
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
- 2 of 41 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to mahdi-salmanzade/MCP-Dubai). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 15 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability73
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 10451 tokens (~87/item across 120 items; 120 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management53
- Stability observed for 16 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 95% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 120 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 121 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Checks we ran (15)
- Known CVEs
- Install scripts
- Dependency health
- Source repository
- Provenance
- License
- Maintenance
- Security disclosure
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Checks we could not complete (1)
These are gaps on our side, not findings about this package. We only credit what we can confirm, so a category made up entirely of them scores 0.
- Malware scan in Supply Chain SecurityMalware scan not yet available for this package.
Does not apply to this package (2)
- Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
- Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
The score does not measure everything. What the score does not measure →
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 −14
- Malware scan: pass → unverified ▼ security
- 4 Nov 26 +15
- Malware scan: unverified → pass ▲ security
- 3 Nov 26 −14
- Malware scan: pass → unverified ▼ security
- 1 Nov 26 +6
- Stability: unverified → 0.40 ▲ functional
- 31 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 30 Oct 26 −15
- Malware scan: pass → unverified ▼ security
- 22 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 20 Oct 26 65
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed pypi/mcp-dubai@0.4.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | pypi |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | mahdi-salmanzade/MCP-Dubai |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/mahdi-salmanzade/MCP-Dubai/.github/workflows/publish.yml@refs/tags/v0.4.0 |
| Rekor log index | 3339024028 |
| Predicate type | PyPI publish attestation https://docs.pypi.org/attestations/publish/v1 |
| Subject digest | sha256:e7e95775e092a9791743f8bf81d5c389521400a3636ab95c5f09b32527423b2b |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | Known build tool | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 41 packages
| Packages resolved | 41 |
|---|---|
| Stale | 2 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
salik_toll_estimate ~108
Deterministic Salik toll (AED) for a time of day using the official variable-pricing windows. Figures are VAT-inclusive (5% VAT applies at the point of use from 2026-06-01).
| Name | Type | Req | Description |
|---|---|---|---|
| day | string | – | 'weekday' or 'sunday' (Sunday has a flat toll outside the free window). |
| time_of_day | string | – | 24-hour HH:MM, e.g. '08:00'. |
Structured output declared, but exposes no named fields.
No examples provided.
school_fee_estimate ~57
British-curriculum annual school fee range plus the KHDA fee rules, including the 2026-27 fee freeze (no increase allowed that year).
| Name | Type | Req | Description |
|---|---|---|---|
| stage | string | – | One of: foundation_primary, primary, secondary. |
Structured output declared, but exposes no named fields.
No examples provided.
setup_advisor ~297
Recommend the best jurisdiction for setting up a business in Dubai. Cross-references curated free zones, visas, banks, and tax rules (the headline biz/* feature). Returns a ToolResponse envelope with a structured recommendation: jurisdiction (mainland, an eligible free zone with the applicable DET licence or permit, or offshore), candidate free zones, reasoning, warnings, estimated cost range, timeline, and next steps. Always returns a `knowledge` block with its latest recorded date, any targeted scope, volatility, verify_at, and disclaimer.
| Name | Type | Req | Description |
|---|---|---|---|
| activity | string | yes | Business activity description (e.g., "SaaS", "consulting", "trading", "ecommerce"). |
| budget_aed | integer | yes | Total first-year budget in AED for setup, license, visas, and bank account. |
| industry | string | – | Industry category. One of: general, saas, tech, ecommerce, consulting, fintech, ai, blockchain, crypto, trading, import_export, manufacturing, logistics, healthcare, media, education, real_estate, fb… |
| needs_local_trade | boolean | – | True if the business expects to conduct customer-facing or other licensed activity onshore in Dubai. |
| needs_visa | boolean | – | True if the founder needs a UAE residence visa from this license. |
| visa_count | integer | – | How many visas the company needs in total. |
Structured output declared, but exposes no named fields.
No examples provided.
setup_timeline_estimate ~22
Return realistic end-to-end timelines for a Dubai setup.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
startup_events ~30
List Dubai and UAE startup and tech events.
| Name | Type | Req | Description |
|---|---|---|---|
| category | – | – | Optional substring filter on event type or name. |
Structured output declared, but exposes no named fields.
No examples provided.
submission_guide ~42
Return submission guidance for Create Apps Championship. Includes evaluation criteria, application URL, and the full program list (Championship, Emirati Training Academy, Learning Lab).
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
synthesize_report ~93
Build a structured Markdown report from named sections. The freshness footer lists only caller-declared source domains with their recorded update and full-review dates. Omitted sources leave report freshness unverified.
| Name | Type | Req | Description |
|---|---|---|---|
| domains_referenced | – | – | Knowledge domain names actually used in the report. |
| sections | – | – | List of {heading, body} dicts. Each becomes an H2 section. |
| title | string | yes | Report title. |
Structured output declared, but exposes no named fields.
No examples provided.
trademark_registration ~129
Return UAE trademark registration steps, fees, and timeline. The IP authority is MOET (Ministry of Economy and Tourism, formerly Ministry of Economy). Cabinet Resolution 102 of 2025 introduced new fees with a 50% reduction for members of the UAE National Programme for SMEs.
| Name | Type | Req | Description |
|---|---|---|---|
| expedited | boolean | – | True to replace the AED 750 regular examination with the AED 2,250 one-day expedited examination (AED 1,500 net surcharge). |
| is_sme | boolean | – | True only for a qualifying member of the UAE National Programme for SMEs. |
Structured output declared, but exposes no named fields.
No examples provided.
uae_holidays ~143
List all UAE federal public holidays for a Gregorian year. Lunar holidays (Eid al-Fitr, Eid al-Adha, Hijri New Year, Mawlid, Arafat Day) are returned with `provisional: true` until the relevant MOHRE and FAHR observance circulars are published. Every lunar record carries `official_observance_announced`; false identifies a religious- date candidate rather than a confirmed day off.
| Name | Type | Req | Description |
|---|---|---|---|
| year | – | – | Gregorian year. Defaults to the current year in Asia/Dubai. Currently 2026 and 2027 are shipped (2027 lunar dates are astronomical expectations). |
Structured output declared, but exposes no named fields.
No examples provided.
uae_next_holiday ~70
Find the next confirmed UAE public holiday on or after a reference date. An earlier unannounced lunar-date candidate is returned separately as `next_provisional_candidate`; it is not presented as a confirmed day off.
| Name | Type | Req | Description |
|---|---|---|---|
| from_date_str | – | – | ISO date YYYY-MM-DD. Defaults to today. |
Structured output declared, but exposes no named fields.
No examples provided.
uae_weather ~110
Current weather and today's high/low for a UAE city (no API key needed). Covers plain temperature, feels-like, humidity, wind, and conditions, the everyday weather that the METAR/TAF `aviation_weather` tools do not present in a human-friendly way.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | – | A UAE city. Supported: Dubai, Abu Dhabi, Sharjah, Ajman, Ras Al Khaimah, Fujairah, Umm Al Quwain, Al Ain. |
Structured output declared, but exposes no named fields.
No examples provided.
uae_weather_forecast ~65
Multi-day daily weather forecast for a UAE city (no API key needed).
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | – | A UAE city (see `uae_weather`). |
| days | integer | – | Number of forecast days, 1 to 16 (clamped to range). |
Structured output declared, but exposes no named fields.
No examples provided.
ubo_filing_guide ~107
Return UBO (Ultimate Beneficial Owner) filing requirements. Cabinet Decision 109 of 2023, in force since 16 November 2023 (it superseded Cabinet Decision 58 of 2020). 25% threshold. 15-day update window. Administrative penalties come from Cabinet Decision 132 of 2023 and are graduated: warning, then up to AED 50,000, then up to AED 100,000.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
vat_filing_calendar ~127
Determine the UAE VAT registration requirement and filing frequency. Treats the input as taxable supplies and imports in the past 12 months: mandatory above AED 375,000, voluntary above AED 187,500. Filing frequency is indicative; the FTA assigns the actual period. Standard rate is 5%. Includes the Federal Decree-Law 16 of 2025 amendments effective 1 January 2026 (reverse-charge invoicing, 5-year VAT credit carry-forward cap, evasion-linked input VAT denial).
| Name | Type | Req | Description |
|---|---|---|---|
| annual_revenue_aed | integer | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
vc_list ~64
List active UAE / MENA VCs by stage and sector.
| Name | Type | Req | Description |
|---|---|---|---|
| sector | – | – | Optional sector substring (e.g., "fintech", "saas"). |
| stage | – | – | Optional stage focus, one of: pre_seed, seed, series_a, series_b, growth. |
Structured output declared, but exposes no named fields.
No examples provided.
visa_details ~127
Get the full curated record for a single UAE visa type.
| Name | Type | Req | Description |
|---|---|---|---|
| visa_id | string | yes | Visa id slug. Examples: "investor_partner", "property_investor_2yr", "employment", "golden_specialized_talent", "golden_investor_real_estate", "golden_entrepreneur", "green_skilled_employee", "green_… |
Structured output declared, but exposes no named fields.
No examples provided.
visa_recommend ~165
Recommend a UAE visa type for a given founder/employee profile.
| Name | Type | Req | Description |
|---|---|---|---|
| age | – | – | Age in years (used for retirement visa). |
| annual_income_aed | – | – | Annual income in AED for freelancer profiles. |
| duration_years_min | – | – | Optional minimum residency duration. |
| has_uae_employer | boolean | – | True if there is a UAE-registered employer. |
| has_uae_trade_license | boolean | – | True if the user already holds a UAE trade license. |
| monthly_salary_aed | – | – | Monthly salary in AED for preliminary screening. |
| profile | string | yes | One of: founder, salaried_employee, freelancer, remote_worker, investor, real_estate_investor, specialized_talent, spouse_or_dependent, retiree, tourist. |
Structured output declared, but exposes no named fields.
No examples provided.
weather_by_coords ~71
Current weather plus a short forecast for any latitude/longitude.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | Number of forecast days, 1 to 16 (clamped to range). |
| latitude | number | yes | Latitude, -90 to 90. |
| longitude | number | yes | Longitude, -180 to 180. |
Structured output declared, but exposes no named fields.
No examples provided.
weather_uae_all ~46
Get METAR observations for all 6 UAE airports in a single call.
| Name | Type | Req | Description |
|---|---|---|---|
| include_taf | boolean | – | If True, also fetch TAF forecasts (slower). |
Structured output declared, but exposes no named fields.
No examples provided.
weather_uae_icao ~110
Get METAR (current weather observation) and optional TAF (forecast) for a UAE airport.
| Name | Type | Req | Description |
|---|---|---|---|
| icao | string | yes | ICAO code. Valid: OMDB (Dubai International), OMDW (Al Maktoum), OMSJ (Sharjah), OMAA (Zayed International), OMAL (Al Ain), OMRK (Ras Al Khaimah). |
| include_taf | boolean | – | If True, fetch the TAF forecast as well. |
Structured output declared, but exposes no named fields.
No examples provided.
How do I install the MCP Dubai server?
MCP Dubai runs locally as a PyPI package, launched with uvx mcp-dubai. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · mcp-dubai
claude mcp add mahdi-salmanzade-mcp-dubai -- uvx mcp-dubai
What is the MCP Dubai server?
MCP Dubai is listed in the public MCP registry as io.github.mahdi-salmanzade/mcp-dubai. Dubai and UAE public data plus curated business setup knowledge across 120 MCP tools. This page covers its PyPI package (mcp-dubai).
Is the MCP Dubai server safe to use?
MCP Dubai scores 73 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the MCP Dubai server expose?
MCP Dubai exposes 120 tools: recommend_tools, list_features, get_knowledge_status, about, get_upstream_status, and 115 more. Their descriptions and schemas cost roughly 10,279 tokens of context every time the server is loaded.
Is the MCP Dubai server still maintained?
MCP Dubai is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the MCP Dubai server under?
MCP Dubai declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.
What did VerifyMCP test on the MCP Dubai server?
VerifyMCP ran 15 checks on MCP Dubai, covering Known CVEs, Install scripts, Dependency health, Source repository and 11 more. One item could not be completed, a gap on our side rather than a finding about MCP Dubai: Malware scan. Endpoint Security and Transport & Reachability do not apply to a PyPI package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.