Open Emirates Intelligence
Provides a connector to ArcGIS services, enabling spatial queries and data retrieval from ArcGIS-based UAE data sources.
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 Intelligencesearch for Dubai real estate datasets"
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.
The server keeps the public uaemcp contract and extends it to 28 source-cited
MCP tools, nine 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.
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 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.
Hosted endpoint
{
"mcpServers": {
"uae-intelligence": {
"type": "http",
"url": "https://uaemcp.zad.tools/mcp"
}
}
}Related MCP server: MCP-Dubai
Run with Bun
Requires Bun 1.3 or newer.
bun install
bun src/index.ts stdioThe 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 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 originUAE 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— bilingual official place-name search and mapped FGIC evidenceUAE Health Indicators:
GET /health-indicators— 111 official MOHAP indicator rows with source-native 2016–2023 series and explicit scale limitationsUAE 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.
Tools
Tool | Purpose |
| Read the accredited 2023/2024 national education snapshot and separate Ministry resource catalogue with reconciliation and source SHA-256 |
| Explore official Golden Residency pathways or assess non-identifying evidence readiness without determining eligibility |
| Discover all public evidence products with bilingual scope, routes and limitations |
| List the 40 registered official sources |
| Read source metadata |
| Probe one source |
| Discover portal datasets |
| Fetch redacted, cited records |
| Infer fields, types, examples and semantic meaning |
| Search the bilingual catalog |
| Return spatially filtered GeoJSON |
| Join two bounded point datasets by radius |
| List or calculate explainable national-data indicators |
| Resolve normalized entities across two bounded sources |
| Read national reliability, incidents and source profiles |
| Build a bounded industrial evidence slice ( |
| Read the official FTA 2025 service-activity report with methodology and explicit non-revenue limits |
| Read the source-native FTA 2017–2022, 2024 and 2025 workbooks without unsafe cross-year comparison |
| Analyze bounded Ajman export and re-export certificate records without presenting counts as trade value |
| Search official MOHAP health indicators while preserving the workbook's published values and limits |
| Group and aggregate records |
| Build a source-backed market snapshot |
| Summarize source health concurrently |
| Create, list and compare historical snapshots |
| Run coverage, freshness, history, emirate-comparison and trend recipes |
| Add metadata with a write token |
| Register a custom source for any installed connector (write token required) |
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 40 official sources indexed, 8 live record connectors, 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/sources/fgic_national_gazetteer/records?query=%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 |
|
| 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.
Latest Blog Posts
- 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/ahmedvnabil/Open-Emirates-Intelligence-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server