npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

uaemcp

v0.2.2

Published

Open Emirates Intelligence — a standalone MCP server for official UAE open data. Source-cited tools, PII redaction, SSRF-guarded fetches, stdio + HTTP transports.

Readme

uaemcp — Open Emirates Intelligence

npm version npm downloads License: MIT MCP

A standalone MCP server that gives any MCP client (Claude Desktop, Cursor, Claude Code) source-cited access to official UAE open data — with direct-contact PII redacted, every server-side fetch SSRF-guarded, and both stdio and HTTP transports. Zero external services.

This TypeScript build is at feature parity with the hosted Python server at uaemcp.zad.tools — the same 11 tools, MCP resources, and prompts.

Run it (no install)

npx uaemcp            # stdio MCP server (for an MCP client)
npx uaemcp http       # Streamable-HTTP server at /mcp

Add to Claude Desktop

Self-host with npx (claude_desktop_config.json):

{
  "mcpServers": {
    "uae-intelligence": {
      "command": "npx",
      "args": ["-y", "uaemcp"]
    }
  }
}

Or skip hosting entirely and use the public instance over HTTP:

{
  "mcpServers": {
    "uae-intelligence": {
      "type": "http",
      "url": "https://uaemcp.zad.tools/mcp"
    }
  }
}

Tools

| Tool | Kind | Description | |------|------|-------------| | uae_sources_list | read | List every registered official source (32) | | uae_source_get | read | Full metadata for one source | | uae_source_health | read | Live, timeout-bounded health probe | | uae_source_datasets | read | Discover datasets inside a portal (CKAN/ODS/ArcGIS) | | uae_source_records | read | Live, redacted, cited records (per dataset) | | uae_search | read | Federated bilingual search across the catalog | | uae_source_geo | read | Spatially-filtered records as GeoJSON (maps) | | uae_source_aggregate | read | group_by + count/sum/avg/min/max | | uae_market_snapshot | read | Counts by emirate / area / product | | uae_dashboard_summary | read | Concurrent, cached health across all sources | | uae_source_add_metadata | write | Add a metadata source (token required) |

Every data-returning tool returns { ok, data, error, meta } with source_id, license, citation, fetched_at, and a data_quality block. Also exposes MCP resources (uae://sources, uae://source/{id}, …/datasets) and reusable prompts (profile_sector, compare_emirates, discover_datasets). Records export as json · csv · geojson · xlsx.

Live record sources: MOIAT (industrial licenses) and Ajman (OpenDataSoft, 211 datasets). Others are catalogued honestly — key-gated official APIs (Dubai Pulse/DLD, Abu Dhabi) are flagged requires_api_key; nothing is ever faked.

Examples

Once connected, just ask your MCP client — it picks the right tool:

  • "List UAE industrial factories licensed in Abu Dhabi."uae_source_records
  • "Find official UAE datasets about real estate."uae_search
  • "Map licensed factories within 60 km of Abu Dhabi."uae_source_geo
  • "Break down industrial licenses by emirate."uae_source_aggregate
  • "Which official UAE open-data sources can you access?"uae_sources_list

The HTTP transport (npx uaemcp http) also serves /health, /ready, and /metrics (Prometheus) next to /mcp.

Interactive API docs (hosted): https://uaemcp.zad.tools/docs · full API reference

Data & safety

  • 32 official sources, typed by what they actually return — live record connectors (MOIAT http_json, Ajman ods with 211 datasets), key-gated official APIs, and discovery-only metadata portals. Data is never fabricated.
  • PII redaction — phone/email fields redacted by name and value pattern.
  • SSRF guard — every fetch rejects private, loopback, link-local, and cloud-metadata addresses.
  • Writes gated — reads are open; mutating tools need UAEMCP_WRITE_TOKEN (writes disabled entirely when unset).

Configuration (env)

| Variable | Default | Purpose | |----------|---------|---------| | UAEMCP_WRITE_TOKEN | (unset) | Enable + gate write tools | | UAEMCP_HTTP_TIMEOUT | 8 | Per-request timeout (s) | | UAEMCP_HEALTH_TIMEOUT | 5 | Per-source health timeout (s) | | UAEMCP_CACHE_TTL | 300 | Response/health cache TTL (s) | | UAEMCP_ALLOWED_HOSTS | (unset) | Allow-list for HTTP transport behind a proxy |

License

MIT. Data served is open government data — verify each source's terms before redistribution.