MCP-Server

Starwell: World Data & Statistics

dev.starwell/world-data-statistics
Daten & Analytik Suche & Recherche Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Searches, retrieves, analyzes, and monitors cited official statistics from multiple international agencies, including computed answers, charts, and provenance.

answer
Answer a question from verified data
The flagship: ask a natural-language question about the served official statistics. Returns a COMPUTED answer (real Python runs in a sandbox over the verified store, nothing is estimated by a model), the Plotly chart, the Python code, citations to the official tables, and a verification badge per series. CROSS-SOURCE: one question may join series from DIFFERENT agencies, e.g. unemployment from the US BLS, Statistics Canada and the UK ONS in a single call, for correlations, ratios, and like-for-like comparison. How many series one question may join is set by the caller's plan; asking for more returns a series_limit error naming that cap. Returns a refusal when no served series can answer. Takes 10-40 seconds. Requires a free API key (create at /account on the Starwell host; pass Authorization: Bearer dlk_... or set STARWELL_API_KEY on the starwell-mcp bridge). Keyless calls return key_required.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['question'], 'properties': {'end': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'share': {'type': 'boolean', 'description': 'When true, the answer becomes a permanent public page and meta.permalink carries its URL â\x80\x94 hand it to the user as a citable link'}, 'start': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'series': {'type': 'array', 'items': {'type': 'object', 'required': ['source', 'seriesId'], 'properties': {'source': {'type': 'string'}, 'seriesId': {'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 6, 'description': 'Optional: pin exact series, across sources, and skip AI resolution'}, 'question': {'type': 'string', 'maxLength': 500, 'minLength': 3}}, 'additionalProperties': False}
create_monitor
Watch a series (webhook on movement)
Create a monitor: when the store's refresh lands a new period or a revised value for the series, a series.updated webhook fires to your URL with the new value, verification status, and citation. Requires an API key (free with an account at /account); webhook must be https. Manage with list_monitors / delete_monitor.
Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['source', 'seriesId', 'webhookUrl'], 'properties': {'source': {'type': 'string', 'description': "Source slug, e.g. 'fred'"}, 'seriesId': {'type': 'string', 'description': "Series id, e.g. 'DGS10'"}, 'webhookUrl': {'type': 'string', 'description': 'https URL to receive series.updated events'}}, 'additionalProperties': False}
deep_analysis
Deep multi-angle analysis from verified data
The moat: a PLANNED multi-section report on a question. The engine designs 3-4 orthogonal analyses (trend, statistics, outliers, cross-series relationships), runs real Python for each in the sandbox over the verified store, and synthesizes one decision-ready report. Every number computed, every series cited and verification-badged. Sections can join series from DIFFERENT agencies in one report, up to the caller's plan width; over it, the call returns a series_limit error naming that cap. Slower than answer (60-180 seconds), so use it for "analyze", "break down", "give me a full picture" asks; use the answer tool for a single direct question. Requires a free API key (create at /account on the Starwell host; pass Authorization: Bearer dlk_... or set STARWELL_API_KEY on the starwell-mcp bridge). Keyless calls return key_required.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['question'], 'properties': {'end': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'start': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'series': {'type': 'array', 'items': {'type': 'object', 'required': ['source', 'seriesId'], 'properties': {'source': {'type': 'string'}, 'seriesId': {'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 6, 'description': 'Optional: pin exact series, across sources, and skip AI resolution'}, 'question': {'type': 'string', 'maxLength': 500, 'minLength': 3}}, 'additionalProperties': False}
delete_monitor
Delete one of your monitors
Destruktiv Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Monitor id from list_monitors'}}, 'additionalProperties': False}
get_observations
Get observations (with provenance)
Observation values for one series. Every value carries provenance (the exact source URL it came from, retrieval time, connector version) and the envelope carries the series verification status + citation. Defaults to the latest 60 points; use start/end (YYYY-MM-DD) or latest to control the window.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['source', 'seriesId'], 'properties': {'end': {'type': 'string', 'description': 'YYYY-MM-DD inclusive upper bound'}, 'start': {'type': 'string', 'description': 'YYYY-MM-DD inclusive lower bound'}, 'latest': {'type': 'integer', 'maximum': 2000, 'minimum': 1, 'description': 'Return only the latest N points (default 60 when no start/end given)'}, 'source': {'type': 'string'}, 'seriesId': {'type': 'string'}}, 'additionalProperties': False}
get_series
Get series metadata + verification
Full metadata for one series: indicator, unit, frequency, geography, coverage, its VERIFICATION STATUS (passing/stale/failing/unverified from golden-value + freshness checks against the live source), recent check records, and the citation to the official table.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['source', 'seriesId'], 'properties': {'source': {'type': 'string', 'description': "Source slug, e.g. 'fred'"}, 'seriesId': {'type': 'string', 'description': "Source-native series id, e.g. 'UNRATE' or 'v41690973'"}}, 'additionalProperties': False}
get_series_stats
Summary statistics for a series
Latest value, previous, all-time min/max, mean, and change vs the previous period and vs a year ago — computed over the verified store, with the citation attached. The cheap way to answer "what is it now and how has it moved" without a full analysis run.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['source', 'seriesId'], 'properties': {'source': {'type': 'string', 'description': "Source slug, e.g. 'fred'"}, 'seriesId': {'type': 'string', 'description': "Series id, e.g. 'DGS10'"}}, 'additionalProperties': False}
list_datasets
List datasets in a source
List the datasets (official releases/tables) available in one source, with coverage dates and links to the official table pages.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['source'], 'properties': {'source': {'type': 'string', 'description': "Source slug, e.g. 'fred' or 'statcan'"}}, 'additionalProperties': False}
list_monitors
List your monitors
Monitors on your API key, with delivery health (last fired, failures, active).
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
list_sources
List data sources
List the official statistical sources served by this data layer (e.g. Statistics Canada, FRED), with dataset/series counts, cadence notes, and terms links. Start here to see what exists.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
search_catalog
Search the series catalog
Find series across ALL sources in one call: case-insensitive search over series ids, indicator names, geographies, and dataset titles (e.g. "unemployment canada", "10-year treasury", "CPI"). Returns candidate series with units, coverage, verification status, and license, plus datasetMatches from the wider dataset index — datasets whose series can be requested by source-native id and are fetched from the official source on first call. The fastest path from a question to the exact series id to fetch or pin in the answer tool.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Max results (default 20)'}, 'query': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Search terms, e.g. "unemployment rate canada"'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Skip the first N ranked hits (default 0). When hasMore is true, call again with offset = offset + limit.'}, 'source': {'type': 'string', 'description': "Optional source slug to restrict to, e.g. 'fred'"}}, 'additionalProperties': False}
Hinzugefügt
deep_analysis
17. September 2026 12:39
Hinzugefügt
answer
17. September 2026 12:39
Hinzugefügt
delete_monitor
17. September 2026 12:39
Hinzugefügt
list_monitors
17. September 2026 12:39
Hinzugefügt
create_monitor
17. September 2026 12:39
Hinzugefügt
get_series_stats
17. September 2026 12:39
Hinzugefügt
get_observations
17. September 2026 12:39
Hinzugefügt
get_series
17. September 2026 12:39
Hinzugefügt
list_datasets
17. September 2026 12:39
Hinzugefügt
search_catalog
17. September 2026 12:39
Hinzugefügt
list_sources
17. September 2026 12:39