Open Emirates Intelligence
Connects to ArcGIS data sources, enabling querying and retrieval of geographic and spatial data layers.
Connects to GraphQL APIs, enabling querying of GraphQL endpoints.
Exposes metrics in Prometheus format for monitoring the server's health and readiness.
Connects to RSS feeds, enabling retrieval and analysis of feed content.
Connects to XML data sources, allowing retrieval and processing of XML-structured data.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Open Emirates Intelligencewhat is the current population of Dubai?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Maintained by Ahmed Morsy. Released under the MIT license and built on the original open-source UAEMCP work credited in LICENSE.
Open Emirates is an independent open-source initiative. It is not affiliated with or endorsed by the UAE Government. Every data product identifies its official source, evidence boundary, retrieval date and available licence terms.
Independent packages
The repository is now a monorepo with separate release lines:
@open-emirates/contractsfor dependency-free response contracts.@open-emirates/sdkfor a hybrid TypeScript client with generated tool types, runtime Schema 2.1 discovery, local validation, bounded retries and pagination.@open-emirates/mcpfor the MCP stdio and Streamable HTTP entry point.uaemcpremains the compatible engine and existing CLI during migration.
The SDK has no MCP dependency. Package boundaries and publishing instructions are documented in docs/PACKAGES.md.
import { OpenEmiratesClient } from "@open-emirates/sdk";
const client = new OpenEmiratesClient();
const result = await client.tools.call("uae_golden_residency", { action: "list" });Known tools receive compile-time autocomplete; newer server tools remain callable through dynamic discovery. Golden Residency output is informational official-route guidance, not an eligibility or residence decision.
The server keeps the public uaemcp contract and extends it to 46 source-cited
MCP tools, seventeen resources, three prompts, bilingual catalog search, CKAN,
OpenDataSoft, ArcGIS, Socrata, JSON, CSV, XLSX, XML, RSS, GraphQL, SDMX and
SPARQL connectors, geo queries,
aggregation, PII redaction, SSRF protection, and
health/readiness/Prometheus endpoints. Bun SQLite stores health history and
bounded dataset snapshots for repeatable comparisons.
Agents can start with three stable facades instead of learning the complete
specialist surface: uae_discover finds local catalog evidence without live
fan-out by default, uae_query reads and shapes source data, and uae_analyze
composes methodology-backed indicators, recipes and dossiers. Existing tools
remain available. Set UAEMCP_TOOL_PROFILE=core to publish only the six core
agent tools, or use research, geo and full profiles.
The public gateway is fully bilingual: navigation, product evidence, catalog, connectors, dataset discovery, playground controls and runtime states switch between English and Arabic. Every public application uses Dubai Font with native RTL composition.
The MOHRE Employment by Gender ledger publishes ten validated annual ratio
observations for employees registered in MOHRE private-sector systems from
2020–2024. It keeps male and female shares separate, never converts ratios into
employee counts, and does not claim whole-workforce coverage, pay equity,
causality or forecasts. Use the
hosted ledger,
GET /api/v1/employment-gender, or the uae_employment_gender MCP tool.
The UAE Tourism Pulse presents five official national annual aggregates as
separate source-native series with metric and year-range filters. Guest counts
are not presented as unique tourists, year-to-year movement is descriptive—not
causal—and occupancy is transparently displayed as a percentage by multiplying
the published source fraction by 100. It does not create a tourism score or
infer emirate, hotel, traveller or market-segment detail. Use the
hosted pulse,
GET /api/v1/tourism-pulse, or the uae_tourism_pulse MCP tool.
The UAE Aeronautical Publications ledger reads the current GCAA eAIP
publication index and keeps each package, publication and effective date tied to
its source description. AIRAC amendments and supplements can be filtered
without interpreting regulatory effect, airspace, routes or safety. This is a
discovery index—not NOTAM, flight-planning guidance or a substitute for the
current official AIP package. Use the
hosted ledger,
GET /api/v1/aeronautical-publications, or the
uae_aeronautical_publications MCP tool.
The UAE Health Facilities Map exposes the second GIS sheet in MOHAP's
official 2026 workbook: 15,326 published rows, of which 7,471 contain
coordinates inside a conservative UAE frame. It reports and excludes the other
7,855 rows—2,671 blank coordinates, 1,102 90,90 sentinels and 4,082 malformed
or out-of-frame values—instead of guessing locations. Names and coordinates do
not establish facility type, licence, ownership, current operation, services,
capacity, accessibility or quality. Use the
hosted map,
GET /api/v1/health-facilities-map, or uae_health_facilities_map.
The UAE Connectivity Pulse publishes three separate official TDRA monthly
series from January 2011 through December 2025: active mobile subscriptions,
broadband internet subscriptions per 100 inhabitants, and fixed lines per 100
inhabitants. It does not add unlike units or create a connectivity score.
Subscriptions are not unique people, and per-100 observations do not measure
coverage, speed, quality, affordability or digital inclusion. Use the
hosted ledger, REST, or the
uae_connectivity_pulse MCP tool.
The Ajman Parks Footfall product reads the complete official 2017–2023
monthly observation dataset, groups valid published visits by year and
source-native park label, and exposes malformed exclusions. Visits are never
presented as unique people, resident demand, tourism performance, satisfaction,
capacity or park quality. Use the
hosted explorer, REST, or the
uae_ajman_parks_footfall MCP tool.
The UAE Policy Evidence Watch checks five audited official legislation,
resolution and announcement surfaces. It retains SHA-256 fingerprints, bounded
excerpts and check observations—not full government pages. A detected page
content change is evidence for review; it is never presented as a legal change,
effective date or eligibility decision. Use the
hosted watch, REST, or the
uae_policy_evidence_watch MCP tool.
The UAE Evidence Studio turns two to five existing official evidence pillars
into one bilingual research dossier. Every card keeps its period, unit, scope,
delivery mode, citation and limitations. It uses no generative model, stores no
question or selection, and never adds unlike units, ranks pillars or invents a
composite score. Use the hosted studio,
POST /api/v1/evidence-dossier, or the uae_evidence_dossier MCP tool; print or
download Markdown and JSON locally in the browser.
The UAE National Evidence Brief brings education, health, industry and FTA
service activity into one evidence surface while keeping each source's original
period, unit and limitations. It never adds the pillars together, ranks them or
invents a composite national score. Use the hosted page,
the REST endpoint, or the uae_national_evidence_brief MCP tool. See the
MCP client setup guide for tested connection patterns.
The UAE Health Facilities Atlas exposes 950 official MOHAP aggregate rows
covering 2015–2024, all seven emirates, government/private sectors and 42 raw
facility-type labels. The default 2024 slice contains 120 rows and a reported
count of 7,392. These are not individual facility locations, beds, capacity,
workforce, accessibility or quality measurements. Use the
hosted atlas, REST, or
uae_health_facilities_atlas.
The UAE Founder Pathway composes three evidence products into one ordered, privacy-bounded action dossier: route to the competent setup authority, discover relevant government-backed support, then prepare entrepreneur Golden Residency evidence. Every task links to its official action, starts honestly as not begun, and can be checked in-memory, printed or downloaded as JSON without sending the checklist state to the server. It is planning—not licensing, programme acceptance or an eligibility decision.
The UAE Startup Support Navigator matches a founder's current stage, support need and location preference against nine official or government-backed programmes. It sends no name, email, phone, financial data, pitch deck or passport details, and treats every match as discovery—not eligibility, acceptance or funding approval.
The UAE Business Setup Navigator routes founders to the competent official mainland authority or federal free-zone directory across all seven emirates. It does not collect names, phone numbers, emails or passport data, and never pretends to choose a licence, calculate final fees or guarantee approval.
The Ajman Business Evidence Explorer turns three large official open-data views into bounded rankings for activities, areas, licence types and published status. It keeps every dataset separate: sampled rows are not added together as unique companies, market size, survival or investment performance.
The Ajman Urban Evidence Explorer publishes bounded observations from six official building, certified rent-contract and road datasets as separate source-native annual series. Units never collapse into a composite property score, investment return or growth claim.
Related MCP server: MCP-Dubai
Hosted endpoint
{
"mcpServers": {
"uae-intelligence": {
"type": "http",
"url": "https://uaemcp.zad.tools/mcp"
}
}
}Open Emirates Pro (hosted plan)
The public endpoint above is free with a per-IP rate limit — it always stays that way. Open Emirates Pro adds a personal API key with a metered monthly quota (10,000 calls/month) and no per-IP throttling, for agents and applications in production. The code stays MIT: self-hosting always remains free and unmetered.
Subscribe: zadstack.com — Open Emirates Pro
Your key and live usage: zadstack.com/my-key
Use it by sending
X-API-Key: oe_…on/mcpand every REST route; check usage anytime viaGET /pro/usage(never billed).
Self-hosters can run the same metering layer against their own control plane —
see the SAASPRESS_* and UAEMCP_PRO_* variables in .env.example; leaving
them unset disables the paid layer entirely.
Run with Bun
Requires Bun 1.3 or newer.
The signed npm package is published from GitHub Actions through npm Trusted Publishing, with provenance and no long-lived release token:
bunx --bun uaemcp@latest --version
bunx --bun uaemcp@latest doctor
bunx --bun uaemcp@latest # stdio MCP server
bunx --bun uaemcp@latest http # HTTP server at /mcpThe npm badge at the top of this README is the authoritative registry version.
MCP client configuration:
{
"mcpServers": {
"uae-intelligence": {
"command": "bunx",
"args": ["--bun", "uaemcp@latest"]
}
}
}From source:
bun install
bun src/index.ts stdioRun the signed container
Prebuilt linux/amd64 and linux/arm64 images are published to GitHub Container
Registry with an SBOM and build provenance:
docker run --rm -p 127.0.0.1:8080:8080 \
-e UAEMCP_ALLOWED_HOSTS=127.0.0.1,localhost \
ghcr.io/zad-tools/uaemcp:edgeOr use the hardened registry Compose file with a persistent SQLite volume, read-only root filesystem, dropped Linux capabilities and no-new-privileges:
docker compose -f compose.ghcr.yml up -d
curl http://127.0.0.1:8080/readyRelease tags such as :1.84.0 and :latest are produced from verified Git tags;
:edge tracks the tested main branch.
The installed CLI also provides deployment diagnostics and shell completion:
uaemcp doctor
source <(uaemcp completion zsh)
uaemcp --helpFor Streamable HTTP:
bun src/index.ts http --host 0.0.0.0 --port 8080Endpoints:
MCP:
POST /mcpLiveness:
GET /healthor/healthzReadiness:
GET /readyor/readyzPrometheus metrics:
GET /metricsREST API:
GET /api/v1/sources,/api/v1/search, and source capability routesVector maps:
GET /api/v1/sources/{sourceId}/tilejsonand/tiles/{z}/{x}/{y}.pbfPublic Observatory:
GET /observatory— source reliability, incidents and evidence reportsUAE Policy Evidence Watch:
GET /policy-watch— retained hashes, bounded excerpts and change observations for five audited official surfaces; API atGET /api/v1/policy-watchand bounded checks atPOST /api/v1/policy-watch/checkUAE Evidence Studio:
GET /evidence-studio— compose two to five official evidence pillars into a source-cited dossier; API atPOST /api/v1/evidence-dossierUAE Founder Pathway:
GET /founder-pathway— build, track, print and export a privacy-bounded action dossier across official setup, startup support and entrepreneur residency readinessUAE Startup Support Navigator:
GET /startup-support— privacy-first matching across nine official or government-backed support programmes by stage, support need and emirateUAE Industry Atlas:
GET /industry-atlas— bounded industrial-establishment evidence by emirate, area and product labelUAE Trade Flow Radar:
GET /trade-flow— bounded Ajman 2023 certificate-of-origin evidence by destination, transport, product code and originAjman Business Evidence:
GET /ajman-business— three separately ranked official licence-data views with bounded sampling, citations and explicit non-market limitationsAjman Urban Evidence:
GET /ajman-urban— six separate building, certified-rent and road series in source-native units with no composite scoreAjman Parks Footfall:
GET /ajman-parks— official 2017–2023 monthly park-visit observations with complete pagination and a visits-not-people boundary; API atGET /api/v1/ajman-parksUAE Tax Service Activity:
GET /tax-services— official FTA 2025 service-activity totals and quarterly evidence, explicitly not revenue or taxpayer countsFTA Archive Explorer:
GET /tax-services/archive— source-native 2017–2022, 2024 and 2025 workbooks with comparison disabled when scopes are incompatibleUAE Place Names Explorer:
GET /places— normalized bilingual official place-name search and mapped FGIC evidence; API atGET /api/v1/placesUAE Health Indicators:
GET /health-indicators— 111 official MOHAP indicator rows with source-native 2016–2023 series and explicit scale limitationsUAE Health Facilities Atlas:
GET /health-facilities— 950 aggregate MOHAP rows for 2015–2024, explicitly not a facility directory, beds, capacity or qualityUAE Education Ledger:
GET /education— FCSC-accredited 2023/2024 national totals, reconciliation checks and the separate seven-resource Ministry of Education catalogueUAE Golden Residency Navigator:
GET /golden-residency— 14 official routes with direct category pages at ICP/GDRFA/ADRO, federal-vs-local criteria warnings and a printable non-identifying readiness dossier
MCP client configuration
{
"mcpServers": {
"uae-intelligence": {
"command": "bun",
"args": ["/absolute/path/to/uaemcp/src/index.ts", "stdio"]
}
}
}TypeScript SDK
The same Bun package includes a zero-dependency typed REST client:
import { UaemcpClient } from "uaemcp";
const uae = new UaemcpClient();
const matches = await uae.search("عقارات دبي", { deep: true });
const records = await uae.records("moiat_industrial_licenses", { limit: 10 });Point baseUrl at the hosted endpoint or any self-hosted instance. Structured
API failures throw UaemcpClientError with the HTTP status and public error code.
Generated SDKs
The repository also ships generated clients for Python, Go, Rust, Java and C#
under sdk/. All clients are generated from the live OpenAPI 3.1
contract at /openapi.json:
bun run generate:sdks
bun run check:sdksThe second command fails when an API change has not been propagated to every language. It is included in the main release check.
MCP tools
The authoritative tool catalogue is generated directly from the registered runtime, so names, descriptions and access kinds cannot silently drift from the server:
MCP resource:
uae://toolsPublic bilingual MCP Developer Console (also
/mcp/tools) with schemas, examples, safe Try-it and client configurationREST contracts:
GET /api/v1/tools·GET /api/v1/tools/{toolName}·POST /api/v1/tools/{toolName}/call
bun run generate:tools
bun run check:toolsThe second command is part of the release gate and fails when either generated catalogue is stale.
FTA archive REST mirror: GET /api/v1/tax-services/archive. It returns the
2017–2022 selected-services table, the source-native 2024 monthly table, and the
2025 quarterly table as separate cited views. comparison.status is
unavailable: 2023 is missing and the published scopes and schemas are not
equivalent, so UAEMCP does not manufacture a trend or annual total.
Unified catalog and coverage
The project does not present every indexed portal as live data. Use:
GET /api/v1/coveragefor live, blocked, key-required and metadata-only totals.GET /api/v1/catalogfor explicit portal, organization, connector, license and capability models.GET /.well-known/uaemcp.jsonfor the operator and trust manifest.GET /api/v1/sources/{sourceId}/schemaoruae_dataset_schemabefore aggregation.GET /api/v1/sources/{sourceId}/health-historyfor uptime and latency history.GET|POST /api/v1/sources/{sourceId}/snapshotsandGET /api/v1/snapshots/difffor dataset history.GET /api/v1/intelligence/recipesto discover analytical recipes and run them by id.
Current conservative coverage is 48 official sources indexed, 16 live record connectors, at least 222 known queryable datasets, 1 blocked connector, and 3 key-required portals. Counts never imply that metadata-only portals are queryable.
One live connector is the official FGIC National Gazetteer. It exposes bilingual UAE place names and coordinates through ArcGIS while omitting a known placeholder English-description field and retaining FGIC's informational-use disclaimer:
curl 'https://uaemcp.zad.tools/api/v1/places?q=%D8%AF%D8%A8%D9%8A&limit=5'Tool results use { ok, data, error, meta }. Data responses include source,
license, citation, fetch time, completeness, sample coverage, source trust,
freshness, schema stability, record-count trend and a composite quality score.
Unknown measurements stay explicitly unknown until history can prove them.
Configuration
Variable | Default | Meaning |
|
| HTTP bind host |
|
| HTTP port |
| unset | Enables the write tool |
|
| Upstream timeout in seconds |
|
| Health timeout in seconds |
|
| Dashboard cache TTL in seconds |
|
| Serve stale health/snapshots immediately while one background refresh runs |
|
| MCP surface: |
|
| Maximum upstream response size |
|
| Allow private upstream hosts |
| unset | Comma-separated public host allowlist |
| unset | Browser origin allowlist; use |
|
| Per-client public request limit; |
|
| Durable health-history and snapshot database |
|
| Maximum stored health checks per source |
|
| Periodic Observatory scan; hosted deployment uses |
|
| Maximum changed snapshots per source/dataset |
|
| Snapshot schedule; |
| unset | Comma-separated |
|
| Records captured per scheduled target |
| unset | Optional OpenAI-compatible |
|
| Embedding model sent to that endpoint |
| unset | Optional bearer token for the embedding endpoint |
The scheduler starts with the HTTP server, runs immediately and then at the
configured interval. Identical payloads are deduplicated. Inspect its state at
GET /api/v1/operations/snapshot-scheduler.
Hosted public proxy
The same server can be offered as a public MCP endpoint for users who cannot
self-host. Put it behind Nginx using deploy/nginx.conf,
set the public host/origin allowlists, keep write tools disabled, and expose:
https://your-domain.example/mcpThe Nginx configuration disables buffering, caching, and compression on /mcp
so Streamable HTTP responses are not delayed or rewritten.
Verify
bun run check
bun run benchmark
docker compose up --buildMIT licensed. See CONTRIBUTING.md and SECURITY.md. Connector authors should start with docs/CONNECTORS.md. See docs/API.md, docs/RECIPES.md, docs/DEPLOYMENT.md, docs/FAQ.md, and the runnable examples for the complete developer path. The security review is in docs/THREAT_MODEL.md, and the evidence-backed release audit is in docs/COMPLETENESS.md. The requirement-by-requirement status is tracked in docs/COMPLETENESS.md.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceConnects open data to LLMs via MCP, enabling easy access to public datasets and publishing new datasets with community help.MIT
- AlicenseAqualityCmaintenanceAn MCP server that provides AI agents with access to Dubai and UAE public data (prayer times, exchange rates, school ratings, etc.) and curated business setup knowledge for entrepreneurs.1004MIT
- AlicenseAqualityDmaintenanceMCP server that enables AI chatbots to search, explore, and obtain download links for datasets from the Republic of Azerbaijan's Open Data Portal (opendata.az).31MIT
- AlicenseAqualityBmaintenanceUnifies 24 Dutch public-sector data sources into a single MCP interface, enabling AI assistants to search, combine, and retrieve structured data with provenance and cross-source linking.6410Apache 2.0
Related MCP Connectors
This MCP server provides seamless access to Malaysia's government open data, including datasets, w…
Official Microsoft MCP Server to query Microsoft Entra data using natural language
Keyless MCP access to official Luxembourg public data: laws, statistics, mobility, and more.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zad-tools/uaemcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server