StatCite is a free remote MCP server and REST API serving official economic statistics where every number carries a full citation, plus verification and conversion utilities. Base URL: https://statcite.com.
MCP endpoint: https://statcite.com/mcp — Streamable HTTP, stateless, no authentication. Protocol revisions 2025-03-26 / 2025-06-18 / 2025-11-25.
claude mcp add --transport http statcite https://statcite.com/mcpsearch/fetch tool pair required by deep-research connectors is implemented.{"mcpServers":{"statcite":{"url":"https://statcite.com/mcp"}}} in mcp.json.{"servers":{"statcite":{"type":"http","url":"https://statcite.com/mcp"}}} in .vscode/mcp.json.npx -y mcp-remote@latest https://statcite.com/mcp (mcp-remote ≥ 0.1.16).Registry indicators are friendly keys (inflation_cpi, gdp_growth, govt_debt_gdp, …) curated by an economist and mapped to authoritative series with fallbacks: World Bank WDI for cross-country annual data, IMF WEO (via DBnomics) for fiscal series and gap-filling, FRED for US high-frequency series.
Explicit series ids address any supported series directly: worldbank/NY.GDP.MKTP.KD.ZG (needs country), fred/CPIAUCSL, dbnomics/IMF/WEO:latest/BRB.NGDP_RPCH.pcent_change.
Projections are labeled. IMF WEO forward-year values carry a per-observation note and a series-level note; “latest” semantics prefer published outturns over projections.
Errors are advice. Failed calls return actionable messages (closest country matches, available year ranges, alternative series) as tool errors — never bare stack traces.
Every numeric payload includes:
{
"source": "World Bank",
"dataset": "World Development Indicators",
"series_id": "FP.CPI.TOTL.ZG",
"series_name": "Inflation, consumer prices (annual %)",
"source_url": "https://data.worldbank.org/indicator/FP.CPI.TOTL.ZG?locations=BB",
"api_url": "…exact API call for reproducibility…",
"license": "CC BY 4.0",
"attribution": "The World Bank: World Development Indicators: Inflation, consumer prices (annual %)",
"retrieved_at": "2026-07-25",
"citation_text": "World Bank, World Development Indicators, series FP.CPI.TOTL.ZG (…), data last updated 2026-07-13. Retrieved 2026-07-25 via StatCite. https://…",
"notices": ["…source-mandated disclaimers when applicable (e.g. FRED)…"]
}
Agents should reproduce citation_text (or construct a citation from the fields) whenever presenting the number. These fields are stable API surface.
Official values for a registry indicator, any country. Params: indicator (required), country (required, ISO3/ISO2/name), start_year, end_year, transform (none|yoy|pct_change|index), latest_only (bool). Returns observations + citation + notes.
Verdict on a claimed figure vs. the official series. Params: indicator (registry key or series id), country, period (usually a year, "2024"; quarters accepted as "2024-Q1", "2024Q1", or "2024 Q1", months as "2024-05" or "202405"), claimed_value (number), optional tolerance_abs (series units) / tolerance_pct (relative %).
Verdicts: match (within rounding: ≤0.06 pp or ≤0.5% relative for percent-kind series, ≤0.5% relative for levels), close (≤0.3 pp or ≤2% relative for percent-kind, ≤5% relative for levels), mismatch, cannot_verify (no observation for that period — response lists the available range and nearby values). When the official observation is a zero, only the absolute band applies. Responses include is_projection: true when the matched official observation is an IMF WEO estimate/projection rather than a final outturn, in which case the explanation is qualified accordingly. Diagnostics flag year misattribution (claim matches an adjacent year), percent-vs-decimal slips (~100× ratio), scale confusion (10³/10⁶/10⁹/10¹² ratios), and sign flips (claim ≈ −official, the classic fiscal-balance sign-convention slip). Every response repeats the revision caveat: the official value is the source's currently published figure.
Batch verification — fact-check a whole draft in one call instead of calling verify_stat once per figure. Workflow: extract every checkable macro claim from the text (indicator + country + period + claimed value), then submit them together. Param: claims — an array of 1–15 objects, each { indicator, country?, period, claimed_value, tolerance_abs?, tolerance_pct? } (the same fields as verify_stat). The 15-claim cap exists because each claim costs upstream subrequests within the free-tier budget; split larger drafts into batches of up to 15 and call once per batch.
Each claim runs through the same verdict engine as verify_stat. The response is { summary, results, note? }: summary counts verdicts across the batch (total, match, close, mismatch, cannot_verify, error); results come back in input order, each either { ok: true, claim, verification } — where verification is the full verify_stat payload (verdict, official value, difference, diagnostics, is_projection, citation) — or { ok: false, claim, error }. Errors are isolated per claim: an unresolvable claim (unknown indicator or country, upstream trouble) reports its error in place and counts under summary.error without sinking the rest of the batch. When any claim was verified against IMF WEO projections rather than outturns, a top-level note says how many.
Over REST this is the API's only non-GET route — POST /v1/verify_claims with a JSON body:
curl -X POST "https://statcite.com/v1/verify_claims" \
-H "content-type: application/json" \
-d '{"claims":[
{"indicator":"inflation_cpi","country":"USA","period":"2023","claimed_value":4.1},
{"indicator":"govt_debt_gdp","country":"JPN","period":"2024","claimed_value":250}
]}'
A GET on the endpoint returns 405 with usage advice; a non-JSON content-type returns 415; a malformed body or invalid claims array returns 422.
Raw series by explicit id. Params: series_id (required), country (for worldbank/*), start_year, end_year, transform. FRED series require the server operator's FRED key and are otherwise declined with cross-country alternatives suggested.
Free-text search over the registry, plus DBnomics dataset discovery (IMF, OECD, Eurostat, BIS…). Param: query.
Headline picture in one call: GDP, growth, GDP per capita, inflation, unemployment, population, current account, trade, FDI, life expectancy (World Bank, single batched request) + general government debt (IMF WEO). Param: country. Items each carry their own citation; unavailable indicators are listed in missing.
Params: amount, from_year, to_year, country (default USA). Method: CPI ratio on World Bank FP.CPI.TOTL (base-invariant); formula and both index values are disclosed. Annual-average precision, with the CPI-vs-deflator caveat noted.
Params: amount, from, to (ISO 4217), date (YYYY-MM-DD daily / YYYY annual / omit for latest). Rails: ECB daily reference rates (~30 currencies, since 1999) via Frankfurter; World Bank official annual-average rates (PA.NUS.FCRF) for ~90 more currencies via a USD bridge. precision field reports daily, annual_average, or mixed; the method string shows the arithmetic.
Sources, coverage, licenses, required attribution lines.
Deep-research compatibility pair (OpenAI connector schema). search(query) returns {results:[{id,title,url}]} with ids like indicator/inflation_cpi/BRB; fetch(id) returns {id,title,text,url,metadata} where text contains recent observations and the full citation.
Same engine over plain GET — for scripts, notebooks, spreadsheets, and Custom GPT Actions. Machine-readable spec: /openapi.json. CORS: open. Responses are cacheable (Cache-Control: public).
GET /v1 → endpoint index
GET /v1/indicators → the 42-indicator registry
GET /v1/indicator/{key}?country=BRB&start_year=2015&transform=yoy&latest_only=true
GET /v1/series?id=worldbank/NY.GDP.MKTP.KD.ZG&country=USA
GET /v1/search?q=government+debt
GET /v1/snapshot/{country}
GET /v1/verify?indicator=inflation_cpi&country=USA&period=2023&value=4.1
POST /v1/verify_claims → JSON body { claims: [...] }, 1–15 claims (the only non-GET route)
GET /v1/inflation?amount=100&from_year=1995&to_year=2025&country=USA
GET /v1/fx?amount=100&from=USD&to=BBD&date=2024
GET /v1/sources
GET /health
Errors: 400 missing/invalid parameters, 422 resolvable-but-failed requests (unknown country, out-of-range year — message includes suggestions), 502 upstream source trouble, 404 unknown endpoint. On /v1/verify_claims: 405 for GET (use POST), 415 for a non-JSON content-type, 422 for a malformed body.
42 curated indicators. Keys are stable; new indicators are added without breaking existing ones.
| Key | Series | Unit | Sources (order = fallback chain) |
|---|---|---|---|
gdp_growth | GDP growth (annual %) | % (annual, real) | World Bank WDI; IMF WEO (via DBnomics) |
gdp_current_usd | GDP (current US$) | current US$ | World Bank WDI |
gdp_per_capita_usd | GDP per capita (current US$) | current US$ | World Bank WDI |
gdp_per_capita_ppp | GDP per capita, PPP (current international $) | current international $ (PPP) | World Bank WDI |
gni_per_capita_atlas | GNI per capita, Atlas method (current US$) | current US$ | World Bank WDI |
inflation_cpi | Inflation, consumer prices (annual %) | % (annual average) | World Bank WDI; FRED (US) |
cpi_index | Consumer price index (2010 = 100) | index, 2010 = 100 | World Bank WDI; FRED (US) |
gdp_deflator_growth | Inflation, GDP deflator (annual %) | % | World Bank WDI |
unemployment_rate | Unemployment, total (% of labor force, modeled ILO estimate) | % of labor force | World Bank WDI; FRED (US) |
labor_force_participation | Labor force participation rate (% of population 15+, modeled ILO) | % of population ages 15+ | World Bank WDI |
population | Population, total | people | World Bank WDI |
population_growth | Population growth (annual %) | % | World Bank WDI |
current_account_gdp | Current account balance (% of GDP) | % of GDP | World Bank WDI; IMF WEO (via DBnomics) |
govt_debt_gdp | General government gross debt (% of GDP) | % of GDP | World Bank WDI; IMF WEO (via DBnomics) |
fiscal_balance_gdp | General government net lending/borrowing (% of GDP) | % of GDP | IMF WEO (via DBnomics) |
govt_revenue_gdp | General government revenue (% of GDP) | % of GDP | IMF WEO (via DBnomics) |
govt_expenditure_gdp | General government total expenditure (% of GDP) | % of GDP | IMF WEO (via DBnomics) |
tax_revenue_gdp | Tax revenue (% of GDP) | % of GDP | World Bank WDI |
trade_gdp | Trade (% of GDP) | % of GDP | World Bank WDI |
exports_gdp | Exports of goods and services (% of GDP) | % of GDP | World Bank WDI |
imports_gdp | Imports of goods and services (% of GDP) | % of GDP | World Bank WDI |
fdi_inflows_gdp | Foreign direct investment, net inflows (% of GDP) | % of GDP | World Bank WDI |
remittances_gdp | Personal remittances, received (% of GDP) | % of GDP | World Bank WDI |
gross_capital_formation_gdp | Gross capital formation (% of GDP) | % of GDP | World Bank WDI |
gross_savings_gdp | Gross savings (% of GDP) | % of GDP | World Bank WDI |
official_fx_rate | Official exchange rate (LCU per US$, period average) | LCU per US$ | World Bank WDI |
reserves_months_imports | Total reserves in months of imports | months of imports | World Bank WDI |
reserves_total_usd | Total reserves (includes gold, current US$) | current US$ | World Bank WDI |
lending_rate | Lending interest rate (%) | % | World Bank WDI |
deposit_rate | Deposit interest rate (%) | % | World Bank WDI |
real_interest_rate | Real interest rate (%) | % | World Bank WDI |
broad_money_gdp | Broad money (% of GDP) | % of GDP | World Bank WDI |
gini | Gini index | index (0–100) | World Bank WDI |
poverty_headcount_intl | Poverty headcount ratio at $2.15/day, 2017 PPP (% of population) | % of population | World Bank WDI |
life_expectancy | Life expectancy at birth, total (years) | years | World Bank WDI |
urban_population_share | Urban population (% of total population) | % of population | World Bank WDI |
us_fed_funds_rate | US federal funds effective rate (monthly, %) | % | FRED (US) |
us_10y_treasury | US 10-year Treasury constant maturity yield (daily, %) | % | FRED (US) |
us_cpi_monthly | US CPI for all urban consumers (monthly index, 1982–84 = 100) | index, 1982–84 = 100 | FRED (US) |
us_unemployment_monthly | US unemployment rate (monthly, %) | % | FRED (US) |
us_nonfarm_payrolls | US total nonfarm payrolls (monthly, thousands of persons) | thousands of persons | FRED (US) |
us_real_gdp | US real GDP (quarterly, chained 2017 dollars, SAAR) | billions of chained 2017 US$ | FRED (US) |
govt_debt_gdp, fiscal_balance_gdp, govt_revenue_gdp, govt_expenditure_gdp) intentionally use IMF WEO general-government series as primary — the World Bank WDI central-government debt series has far patchier coverage. US-prefixed keys are FRED-backed high-frequency series available when the deployment has a FRED key.Pass ISO3 (USA, BRB), ISO2 (US, BB), or English names — common aliases resolve (UK, South Korea, Ivory Coast, Türkiye). Aggregates: WLD (world), EUU (EU), EMU (euro area), OED (OECD), income groups (HIC, LIC, LMC, UMC), and World Bank regions. Unresolvable names return suggestions.
StatCite relays official statistics with attribution; it adds no numbers of its own. Underlying licenses: World Bank CC BY 4.0; IMF terms (free reuse/redistribution with attribution); ECB reference rates (informational, attribution); Eurostat CC BY 4.0 via DBnomics; FRED per its API terms (the mandated disclaimer ships in every FRED citation; FRED series owned by third parties are the user's responsibility to license for redistribution). The license and attribution fields in each citation state what applies to that exact number.
verify_claims batch verification (MCP + POST /v1/verify_claims), FRED end-to-end test coverage.© 2026 StatCite · Privacy · Terms · hello@statcite.com