LeashIndex Get the report

Index / data

io.github.malkreide/zurich-opendata-mcp

io-github-malkreide-zurich-opendata-mcp declares 26 capabilities across 26 tools, with 1 critical issue. One of them, no-revocation, is recorded for every server in the index because MCP has no field in which to declare a way to switch a tool off; a missing declaration is not evidence that the control is missing.

39/100 exposureModerate

Manifest recorded 2026-10-27 from tools/list answered by the PyPI package zurich-opendata-mcp==0.8.0 (published to PyPI as zurich-opendata-mcp, listed in the official MCP registry as io.github.malkreide/zurich-opendata-mcp 0.8.0), run in an isolated container with no network access and no credentials. The date changes only when the manifest does. Not verified by a maintainer.

Issues

These describe what this server's manifest declares. A product can provide controls that MCP has no way to express — token revocation, an admin console, audit logs — and this page cannot see them. The absence of a declaration is not evidence that a control is absent.

critical · no-revocation · All 26 tools

26 of 26 tools declare no way for the customer to switch them off once granted. This applies to every tool because MCP has no field in which to declare a revocation mechanism; the product may provide one outside MCP that a manifest cannot show.

high · no-expiry · All 26 tools

26 of 26 tools declare no expiry. This applies to every tool because MCP has no field in which to declare an expiry; the product may provide one outside MCP that a manifest cannot show.

high · no-audit-trail · All 26 tools

26 of 26 tools declare no record of their actions that the customer can read. This applies to every tool because MCP has no field in which to declare an audit requirement; the product may provide one outside MCP that a manifest cannot show.

low · uncapped-read · All 26 tools

26 tools can read data and declare no limit.

Declared capabilities

How each tool was read. declared means the server's own annotation said so — self-reported and unverified. inferred is from the tool's name. assumed means nothing indicated either way.

ToolRead asBasis
zurich_search_datasetsread declared
zurich_get_datasetread declared
zurich_list_categoriesread declared
zurich_list_tagsread declared
zurich_analyze_datasetsread declared
zurich_catalog_statsread declared
zurich_find_school_dataread declared
zurich_datastore_queryread declared
zurich_datastore_sqlread declared
zurich_geo_layersread declared
zurich_geo_featuresread declared
zurich_parliament_searchread declared
zurich_parliament_membersread declared
zurich_parking_liveread declared
zurich_weather_liveread declared
zurich_air_qualityread declared
zurich_water_weatherread declared
zurich_pedestrian_trafficread declared
zurich_vbz_passengersread declared
zurich_strb_searchread declared
search_stadtratsbeschluesseread declared
zurich_strb_by_departmentread declared
get_beschluesse_by_departementread declared
zurich_strb_detailread declared
get_stadtratsbeschluss_detailread declared
zurich_tourismread declared
Answering this question about your own agent? The self-serve stack report applies the same reading to your own stack or server and gives you a dated document you can hand to a customer's security review. It is generated in your browser, with nobody to wait for. Buying one does not change this page, its score or its place in the index — see Independence.
Maintain this server? If this page misreads your manifest, or your server has changed, submit its current tools/list response and it will be re-scored and dated. Corrections are published alongside the original, not in place of it.