StatCite
Economic statistics your AI can actually cite, with a verifier that catches the ones it invents.
[CI] · Live status · AI accuracy benchmark · Licence ledger · Verification guide
[StatCite catching a wrong statistic and citing the correction]
Every figure, verdict and citation above is real output from a live call, captured by tools/make-demo-gif.py at build time. A model recalling 98% is not a strawman: it was roughly right a few years earlier, which is exactly how stale recall sounds.
Free remote MCP server + REST API serving official economic statistics from the World Bank, IMF WEO and Fiscal Monitor (current vintage via the IMF DataMapper API, with a DBnomics fallback), BIS policy rates, ECB reference rates, and two regional central banks (the Eastern Caribbean Central Bank and the Central Bank of Barbados, covering Anguilla and Montserrat, which the World Bank does not report), where every number ships with its full citation: source, dataset, series ID, canonical URL, licence, retrieval date, a ready-to-paste citation sentence, and BibTeX/APA export formats.
The differentiator is verification, not lookup: verify_stat checks a claimed figure against the official series and returns match / close / mismatch / cannot_verify with diagnostics for the classic errors (wrong year, percent-vs-decimal, millions-vs-billions, sign flips). On a mismatch it re-judges the claim against the previous IMF vintage, so "was right when written, since revised" is never confused with "wrong". When the source cannot support a verdict, it says cannot_verify with the reason. It never guesses.
Three things people use it for
- Fact-check a draft. The
fact_check MCP prompt + verify_claims audit every macro figure in a document, in batches of 15, each verdict carrying the citation for the correct number.
- Cited data for agent reports.
get_indicator and country_snapshot return official series with paste-ready citations, honest projection labelling, and machine-readable "no published value exists" instead of silent gaps.
- Resolve source disagreements.
compare_sources fetches one indicator from every official source in its chain and shows the spread (e.g. general-vs-central government debt definitions), each value with its own citation.
Install in one line
No signup, no API key, no OAuth.
Side effects
StatCite is a remote server. Over HTTP, calling it installs nothing and runs nothing on your machine. This is what each kind of call does, and where.
The usage row holds the transport, the tool name, the registry indicator key, the ISO3 country code, the verify verdict kind, the outcome and the duration. Every one of those comes from a closed list, so nothing you type is stored. No IP address, user agent, header, session id, query text or claimed value is recorded. The code is server/src/core/analytics.ts and the policy is at statcite.com/privacy.
Every get_indicator and get_series result also carries a limitations list: codes for what the figure is not, such as a projection, a fallback source's figure, a modelled estimate, a value rounded by the source or a number StatCite computed. A latest value more than 3 years older than the year it was retrieved carries stale_latest. When the primary source served it and the registry lists other sources, it also carries stale_primary, which names the sources StatCite did not query. An IMF value before the projection boundary StatCite infers carries outturn_unconfirmed, because the IMF data StatCite reads does not mark which years are outturns. Each code is read from a structured field of the result or from the indicator registry, and an empty list means none of those conditions was detected.
Make your agent use it without being asked
Connecting a server puts the tools on the shelf. It does not make an agent reach for them, and an agent that is confident about a number will usually answer from memory. One standing rule fixes that. Paste this into CLAUDE.md or AGENTS.md, into Cursor Settings → Rules, or into your ChatGPT project instructions:
Try it in 5 seconds
Tools
get_indicator · verify_stat · verify_claims · compare_sources · get_series · search_indicators · country_snapshot · inflation_adjust · fx_convert · list_sources · search · fetch, plus 3 MCP prompts (fact_check, country_brief, cite_this_stat) and 3 resources (registry, licence ledger, SIDS list). 42 active curated indicators, 200+ economies, ~120 currencies. All read-only. Details: docs, and the verification guide for the method.
Repo layout
Develop
Data & licensing
StatCite does not originate the underlying statistical observations. Derived values and verification verdicts are calculated transparently from cited source data with the method disclosed. World Bank (CC BY 4.0); IMF (published IMF statistical data may be copied, redistributed and used in derivative works with attribution as "Source: International Monetary Fund, <database>, <link>", plus data-integrity, downstream-communication and free-of-charge-disclosure conditions, all carried verbatim in every citation's license field); BIS (reproduction and redistribution with attribution); ECB (attribution; reference rates informational); Eurostat via DBnomics (CC BY 4.0); FRED is not served. Its Services Terms of Use (clauses (p) and (q), https://fred.stlouisfed.org/legal/) reserve FRED content from AI/ML use and from caching or redistribution. IMF WEO/Fiscal Monitor projections are labeled as projections. The primary IMF path is the DataMapper API (current edition, verbatim edition label). If unavailable, StatCite falls back to the newest edition DBnomics has ingested, which can lag the IMF's release calendar, so responses cite the resolved vintage, flag stale ones, and every fallback is disclosed (verify_stat/verify_claims return cannot_verify with the fallback value as indicative when the primary failed transiently, rather than judging against a substitute that may differ by definition or vintage. A series the primary permanently lacks is judged against its stable fallback source with disclosure). Server code: MIT.
Built and curated by a professional economist. Contact: [email protected]