AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Capetown Opendata Mcp

mcp-richardwooding-capetown-opendata-mcp · by richardwooding

A comprehensive MCP server for accessing Capetown Opendata

No reviews yet
0 installs
6 views
0.0% view→install

Install

$ agentstack add mcp-richardwooding-capetown-opendata-mcp

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-richardwooding-capetown-opendata-mcp)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Capetown Opendata Mcp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

capetown-opendata-mcp

A comprehensive Model Context Protocol (MCP) server that exposes the City of Cape Town Open Data Portal to MCP clients such as Claude Desktop, Claude Code, and any other MCP-compatible host.

It wraps capetown-opendata and go-arcgis, turning the City's ArcGIS Feature Service into a set of LLM-callable tools with discovery, a generic query escape hatch, spatial and attribute filtering, and in-memory response caching.

Website: richardwooding.github.io/capetown-opendata-mcp

Tools

| Tool | Description | | --- | --- | | load_shedding_blocks | Load shedding block polygons (block geometry and ID). | | wards | Municipal ward boundaries (ward name, key, year). | | land_parcels | Cadastral land parcels (erven); optional suburb filter. | | taxi_routes | Registered minibus taxi routes. | | water_quality | Inland water quality sampling results, newest first. | | public_lighting | Public street lighting assets. | | heritage_inventory | Heritage inventory sites and features. | | query_layer | Generic query over any layer by ID (where/fields/order/bbox/offset/count-only). | | field_values | List the distinct values of a field on a layer (discover valid filter values). | | service_info | List the service's layers and tables with their IDs; name_contains filters the listing. | | layer_info | Describe a layer's fields, geometry type, and page size. |

Every feature-returning tool accepts a shared set of filters: limit (default 200, max 2000), offset (skip N features; pair with the next_offset in the response to page through a layer), where (extra SQL filter, AND-combined), bbox ([minLon, minLat, maxLon, maxLat] in WGS84), polygon (rings [[[lon,lat],…],…] in WGS84, for irregular areas like a ward boundary), include_geometry (default false), omit_nulls (drop null-valued attributes), and use_aliases (rename raw column names to their human-readable field aliases). Spatial filters are sent as WGS84 (inSR=4326), so they work against layers stored in any projection.

> Note: Published ArcGIS layer IDs occasionally drift. Use service_info / layer_info to > discover current IDs and field names, and query_layer to query a layer whose dedicated tool's > ID has changed.

Install

MCP Bundle (Claude Desktop, one-click)

Every release attaches MCP Bundles (.mcpb) — one per platform. Download the bundle matching your OS and architecture (e.g. capetown-opendata-mcp__darwin_arm64.mcpb) and open it with Claude Desktop to install. The bundle's settings screen lets you set an optional ArcGIS token, request timeout, and cache TTL.

Homebrew (macOS / Linux)

brew install richardwooding/tap/capetown-opendata-mcp

Container image

docker run -i --rm ghcr.io/richardwooding/capetown-opendata-mcp:latest

From source

go install github.com/richardwooding/capetown-opendata-mcp@latest

Usage

By default the server speaks the MCP stdio transport:

capetown-opendata-mcp

Claude Desktop / Claude Code config

{
  "mcpServers": {
    "capetown-opendata": {
      "command": "capetown-opendata-mcp"
    }
  }
}

HTTP transport

For remote or containerized deployments, run the streamable-HTTP transport:

capetown-opendata-mcp --transport http --http-addr :8080

Configuration

All flags can also be set via environment variables (prefix CAPETOWN_MCP_):

| Flag | Env | Default | Description | | --- | --- | --- | --- | | --transport | CAPETOWN_MCP_TRANSPORT | stdio | stdio or http. | | --http-addr | CAPETOWN_MCP_HTTP_ADDR | :8080 | Listen address for the HTTP transport. | | --timeout | CAPETOWN_MCP_TIMEOUT | 30s | Per-request upstream timeout. | | --cache-ttl | CAPETOWN_MCP_CACHE_TTL | 5m | Response cache TTL (0 disables caching). | | --arcgis-token | CAPETOWN_MCP_ARCGIS_TOKEN | (none) | Optional ArcGIS token for authenticated services. |

Development

go build ./...
go test -race ./...
golangci-lint run
goreleaser release --snapshot --clean   # local dry run

Releasing

Pushing a vX.Y.Z tag triggers the release workflow, which uses GoReleaser to:

  • build binaries for linux/darwin/windows (amd64 + arm64),
  • pack each binary into an MCP Bundle (.mcpb) and attach all six to the release,
  • build and push a multi-arch OCI image to GHCR with ko,
  • publish a Homebrew cask to richardwooding/homebrew-tap.

The release requires a HOMEBREW_TAP_GITHUB_TOKEN repository secret (a PAT with repo scope on the tap). GHCR uses the built-in GITHUB_TOKEN.

MCP Bundles

tools/mcpb is a small, dependency-free (Go stdlib) packer that zips the server binary and a generated manifest.json into a .mcpb. GoReleaser invokes it per build target, but you can build a bundle for your current platform locally (no Node required):

go build -o capetown-opendata-mcp .
go run ./tools/mcpb pack -version dev

Because the manifest format selects a binary by OS only (not architecture), each release ships one bundle per OS+arch.

License

MIT — see [LICENSE](LICENSE).

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.