Search / com.statsmapped/public-data
StatsMapped Public Data
R0· no sign-inPublic statistics for Ireland and the UK: housing, crime, health, economy, welfare, with caveats.
v0.3.2 · active · repository · website · descriptor JSON · versions
Search / com.statsmapped/public-data
R0· no sign-inPublic statistics for Ireland and the UK: housing, crime, health, economy, welfare, with caveats.
v0.3.2 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"public-data": {
"type": "http",
"url": "https://mcp.statsmapped.com/mcp"
}
}
}claude mcp add --transport http public-data https://mcp.statsmapped.com/mcp[mcp_servers.public-data]
url = "https://mcp.statsmapped.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"public-data": {
"type": "remote",
"url": "https://mcp.statsmapped.com/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"public-data": {
"type": "http",
"url": "https://mcp.statsmapped.com/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=public-data&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLnN0YXRzbWFwcGVkLmNvbS9tY3AifQ%3D%3D"
}{
"servers": {
"public-data": {
"type": "http",
"url": "https://mcp.statsmapped.com/mcp"
}
}
}{
"mcpServers": {
"public-data": {
"httpUrl": "https://mcp.statsmapped.com/mcp"
}
}
}extensions:
"public-data":
enabled: true
name: "public-data"
type: streamable_http
uri: "https://mcp.statsmapped.com/mcp"
timeout: 300
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every useauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_length2 tools have descriptions over 1,024 characters, which crowds the contexttools.schemasevery tool has an object input schematools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky onestools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: query_data (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_areas (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); compare (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …tools.token_costabout 2,206 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changesno tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same nameNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +dns-namespace +website +reachable +uptime-100% +updated-9d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
[email protected] PyPIthis version is not known to the dependency resolver
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://mcp.statsmapped.com/mcp streamable-http | none | yes | 100% | 406 ms | 2026-07-28 | 2026-10-19 |
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
statsmapped-mcp | pypi | 0.3.2 | uvx |
compare | Four modes, depending on which arguments are given -- consolidates what were four separate tools (rank_areas, list_comparisons, get_comparison, check_comparability) behind one, since they are all really "how does this stat compare" at different scopes. Exactly one mode's arguments should be given; mixing arguments from different modes (e.g. both `stat_key` and `pair_key`, or only one of `stat_key_a`/`stat_key_b`) raises an error rather than silently guessing which mode was meant. 1. `stat_key` alone (no `pair_key`, no `stat_key_a`/`stat_key_b`): ranks every area at one geography level by its latest figure for that stat, for one country -- e.g. "which counties have the highest median sale price" (country="ireland"). `stat_key` comes from `query_data`'s dataset-listing mode, for the SAME country. `level` omitted uses this ranking's own default level; pass one of that dataset's own `compatible_levels` for a different one -- a level this ranking doesn't have registered returns an empty list rather than an error. Where the underlying stat has no honest per-area denominator (crime, homelessness, live_register and similar -- StatsMapped's own RANKING_NO_DENOMINATOR_STATS), each row's `rate_per_1000` is the real figure to rank/compare by, not `latest_value`, which is a raw count dominated by area population size. Always carry forward every entry in `caveats` when using a row in an answer. 2. `pair_key` alone: full detail for one registered comparison pair -- each axis's label, unit and publisher, the correlation stats (r, rho, and a leave-one-out sensitivity range naming the single most influential area), and caveats. `pair_key` comes from mode 4's own response, for the SAME country. 3. Both `stat_key_a` and `stat_key_b` given: does StatsMapped have a registered, hand-vetted comparison between these two stats? Registry- backed only -- never computes a fresh correlation for an arbitrary pair. Both stat_keys come from `query_data`'s dataset-listing mode, for the SAME country. `verdict` is one of `"SUPPORT"` (a real, hand-vetted registered pair with no open caveats -- may be treated as a confirmed relationship), `"QUALIFY"` (hand-vetted, but the evidence carries real caveats -- e.g. no robustness check for outliers, or an unverified geography-level join; read `uncertainty` and `reasons` before presenting it as confirmed), `"REJECT"` (a real structural impossibility or a human-vetted "no" -- the two stats share no geography level at all, or a reviewer rejected this exact pairing), or `"INSUFFICIENT"` (not registered, not ruled out either -- StatsMapped genuinely hasn't vetted this pair; never treat this as "probably comparable"). `uncertainty` names 4 separate dimensions (data_quality, comparability, statistical_strength, causal_strength) -- `causal_strength` is always `"not_established"`, since no comparison here implies causation regardless of verdict. `comparable` (DEPRECATED, kept only for callers that haven't migrated) collapses `verdict` to the old 3-way yes/no/unknown -- `"yes"` for both `SUPPORT` and `QUALIFY` (both mean "hand-vetted", the old `comparable` meaning this field has always carried; the caveats a `QUALIFY` pair carries live in `uncertainty`/`reasons`, not in demoting `comparable`), `"no"` for `REJECT`, `"unknown"` for `INSUFFICIENT`. Prefer `verdict` directly when you need to distinguish a fully-confirmed `SUPPORT` from a caveated `QUALIFY`. Read `reasons` before presenting any answer other than `"SUPPORT"` as unqualified. 4. None of the above given: lists every registered cross-dataset comparison pair for one country -- e.g. "median sale price vs new dwelling completions per 1,000 residents". A small, hand-curated set, not an arbitrary-pair engine: pass one of the returned `pair_key` values to mode 2 for the real correlation and axis detail. `level` is only meaningful together with `stat_key` (mode 1); giving it without `stat_key` raises rather than silently dropping it and falling through to mode 4's unrelated pair listing. |
explain_metric | Definition, methodology and standing caveats for ONE stat ('ireland' or 'united-kingdom') -- never a current figure. Call this when the question is about what a metric MEANS or how it's measured ("how is the claimant count defined", "is this a mean or a median"), not about a specific area's value -- `query_data`/`compare` already answer that. `stat_key` comes from `query_data(country=...)` for the SAME country. |
list_areas | List every geography at one boundary level, for one country ('ireland' or 'united-kingdom'). `level` defaults to "county" (Ireland's 26 counties); the UK's own primary level is "lad" (local authority districts), not "county". Other levels exist per country (e.g. Ireland's "local_authority", "garda_division") -- see a dataset's own `compatible_levels` from `query_data` for which levels a given stat is actually published at. Returns each area's `id` (used by `query_data`'s area-scoped modes, always paired with the SAME `country`) and `name`. |
query_data | Three modes, depending on which of `area_id`/`dataset` are given -- consolidates what were three separate tools (list_datasets, list_area_datasets, get_dataset_for_area) behind one, since they are all really "how do I get data" at different levels of specificity: 1. Neither `area_id` nor `dataset`: lists every dataset (stat) StatsMapped tracks for one country ('ireland' or 'united-kingdom'), with its key, human label, and which geography levels it can be shown at. Ireland and the UK track genuinely different datasets -- call this first for the right country before assuming a stat_key exists there, to find the right `stat_key` for `compare`'s ranking mode. 2. `area_id` given, `dataset` omitted: lists every dataset available for that one area (e.g. "county:kerry" for Ireland, "uk:lad:e09000033" for the UK), with its latest figure, year-on-year change, and caveat labels only (not full caveat text -- use mode 3 for the full detail on any one dataset that matters). `area_id` comes from `list_areas`; `country` must match whichever country that call used, or this simply 404s ("unknown geography"). 3. Both `area_id` and `dataset` given: full detail for one dataset in one area -- the latest figure, a written summary, full caveat text, and (if `history_months` is set) recent history. `dataset` is a `series_key` from mode 2's own response. `history_months` means actual months of history (0 = everything) -- e.g. 24 returns 2 years of an annual series, not 24 years. `country` must match `area_id`'s own country. `dataset` and `history_months` are only meaningful together with `area_id` (and, for `history_months`, `dataset` too, since it only applies to mode 3); giving either without its real precondition raises rather than silently dropping the argument and dispatching to the wrong mode. |
Schemas: list_tools.
{
"name": "com.statsmapped/public-data",
"title": "StatsMapped Public Data",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://mcp.statsmapped.com/mcp",
"type": "streamable-http"
}
],
"version": "0.3.2",
"packages": [
{
"version": "0.3.2",
"transport": {
"type": "stdio"
},
"identifier": "statsmapped-mcp",
"runtimeHint": "uvx",
"registryType": "pypi",
"registryBaseUrl": "https://pypi.org"
}
],
"repository": {
"url": "https://github.com/ActiveGuy/statsmapped-mcp",
"source": "github"
},
"websiteUrl": "https://statsmapped.com",
"description": "Public statistics for Ireland and the UK: housing, crime, health, economy, welfare, with caveats."
}