autario-mcp
v2.12.0
Published
MCP server for Autario | search, query, join, and analyze 2,700+ public datasets (World Bank, FRED, Eurostat, OECD, WHO, ECB, US Census, IMF). Cross-dataset joins via shared ontology, statistical analysis (correlation, regression, drivers, lag), and chart
Maintainers
Readme
autario-mcp
Verified data for AI agents. 2,700+ public datasets (World Bank, FRED, Eurostat, OECD, WHO, ECB, US Census, IMF) joined under one ontology, with built-in statistical analysis and chart publishing. Plug it into Claude Desktop, ChatGPT, Cursor, or any MCP-compatible client | your model gets numbers it cannot hallucinate.
autario.com | Documentation | Get an API Key
Why autario-mcp
- No hallucinated numbers. Every value is sourced from a known publisher and cited back to a primary URL. Use
verify_valueto double-check any claim. - Cross-dataset joins, no setup. Indicators across different datasets share
autario_time+autario_entityshadow columns, soget_entity_data(USA, [gdp, unemployment, life_expectancy])returns one wide table, joined automatically. - Statistical primitives built-in.
correlate,regression,find_drivers,lag_analysis,seasonality_decompositionand more, with effect sizes, p-values, and plain-language interpretations. - Charts that persist.
publish_chartwrites a Plotly spec to autario.com. The result is a permanent, embeddable URL likeautario.com/chart/{slug}| the LLM builds the spec, autario pulls real rows for it, no hallucinated data path. - LLM-agnostic. Works with Claude, GPT, Gemini, local models | anything that speaks MCP.
Quick Demo
Install the server, then ask your assistant questions like these. The model picks the right tools and answers with cited data.
Ask: "What drives US inflation? Look at money supply, oil prices, and unemployment."
Tools: list_indicators -> find_drivers
Output: Ranked drivers with r, p-value, R squared per candidate.Ask: "Compare life expectancy in Germany, USA and Japan from 2000 to 2023, then publish a chart."
Tools: compare_entities -> publish_chart
Output: Wide-format table joined on year, plus a permanent autario.com/chart/{slug} URL.Ask: "Is consumer confidence a leading indicator of US retail sales?"
Tools: lag_analysis
Output: Cross-correlation peak at lag k, with interpretation in months.Install
Claude Desktop, Cursor, Cline (stdio)
~/.config/claude/claude_desktop_config.json on Mac/Linux, %APPDATA%\Claude\claude_desktop_config.json on Windows.
{
"mcpServers": {
"autario": {
"command": "npx",
"args": ["autario-mcp"]
}
}
}Restart your client. The server reports tool count to stderr on launch.
Claude Web, OpenAI Custom GPTs, any HTTP MCP client
Point your client at the hosted endpoint. No install needed.
URL: https://autario.com/mcp
Transport: Streamable HTTP (POST /mcp)The hosted endpoint also supports MCP prompts: analyze-dataset, create-chart, compare-countries.
Enable write tools (publish charts, create datasets)
Add API credentials to the stdio config or send them as x-api-key / x-api-secret headers to the HTTP endpoint.
{
"mcpServers": {
"autario": {
"command": "npx",
"args": ["autario-mcp"],
"env": {
"AUTARIO_API_KEY": "your_key",
"AUTARIO_API_SECRET": "your_secret"
}
}
}
}Get keys at autario.com/account.
Tool Reference
55 MCP tools, organized by function.
Discovery & Query
Search the catalog, inspect schemas, pull rows.
| Tool | What it does | Parameters |
| --- | --- | --- |
| search_datasets | Search the Autario data catalog by keyword | thousands of normalized public datasets from World Bank, FRED, Eurostat, OECD, WHO, IMF, ECB, US Census and SEC, plus your own uploads and connector tab... | query (string), category (string), visibility (string), limit (number), page (number), format (string) |
| discover_by_topic | Discover the most relevant verified datasets for a given topic, across the public autario catalog (World Bank, FRED, Eurostat, OECD, IMF, WHO, ECB, US Census, SEC). Use this when starting an articl... | topic (string), depth_pref (string), recency_window (string), limit (number) |
| list_indicators | Browse the Autario indicator registry, the semantic layer over the whole public catalog (World Bank, FRED, Eurostat, OECD, WHO, IMF, ECB, US Census, SEC). Each indicator has a topic (economy, healt... | topic (string), unit (string), frequency (string), entity_type (string), publisher (string), search (string), limit (number) |
| get_entity_profile | Get the indicators available for one entity (country, aggregate, etc.). Returns indicator IDs with metadata + time coverage, sorted by observation count, PAGINATED (default 100 per call) with total... | entity_id (string), topic (string), limit (number), offset (number), format (string) |
| get_dataset_info | Get full metadata for a specific dataset including title, description, publisher (World Bank, FRED, Eurostat, OECD, WHO, IMF, ECB, US Census, SEC, or your own connector), category, keywords, row co... | dataset_id (string), format (string) |
| get_dataset_schema | Get the column names, data types, total row count, AND a machine-legible datasheet for a dataset. Always call this before query_dataset (to know the columns) and before charting (the datasheet te... | dataset_id (string), format (string) |
| query_dataset | Query the rows of ONE dataset | a public table from World Bank, FRED, Eurostat, OECD, WHO, IMF, ECB, US Census or SEC, or one of your own uploads / connector tables (Google Search Console, GA4, Met... | dataset_id (string), limit (number), offset (number), fields (string), sort (string), filter (array), aggregate (string), groupby (string), summary_only (boolean), non_null_only (boolean), format (string) |
| list_charts | List published chart visualizations on Autario, built on the public catalog (World Bank, FRED, Eurostat, OECD, WHO, IMF, SEC) and rendered with Plotly. Returns chart IDs, titles, insights, linked d... | q (string), limit (number), offset (number), format (string) |
| get_chart | Get a specific chart by ID or slug. Returns a COMPACT, token-bounded summary (NOT the raw Plotly spec or full data arrays, which can be megabytes): title, insight/narration, datasets_used (with pub... | chart_id (string), format (string) |
| chart_instructions | Get the Builder spec schema reference. Returns chart_type enum, required/optional fields per type, palette options, axis-override shape, annotation format, and concrete examples. Call this ONCE at... | none |
Cross-Dataset Joins (Ontology)
The differentiator. Join indicators across datasets via shared time + entity shadow columns. No manual relationship setup.
| Tool | What it does | Parameters |
| --- | --- | --- |
| get_entity_data | Fetch data for ONE entity across MULTIPLE indicators, joined automatically on time via shadow columns, even when the indicators come from different publishers (World Bank GDP next to FRED unemploym... | entity_id (string), indicators (array), time (string), full (boolean), format (string) |
| compare_entities | Compare ONE indicator across MULTIPLE entities (e.g. World Bank GDP of DEU vs USA vs CHN, or a FRED / Eurostat / OECD series across countries). BY DEFAULT returns a per-entity summary (first/latest... | entities (array), indicator (string), time (string), full (boolean), format (string) |
| verify_value | Verify that a claimed value is correct against the primary source (World Bank, FRED, Eurostat, OECD, WHO, IMF, ECB, US Census, SEC). Use this when a user asks "did you hallucinate that?" or when yo... | indicator (string), entity (string), time (string), expected (number) |
Statistical Analysis
Run analyses against verified data. Outputs include effect sizes, p-values, and plain-language interpretations.
| Tool | What it does | Parameters |
| --- | --- | --- |
| describe | Summary statistics for a single indicator+entity: n, mean, median, std, min/max, quartiles, skew, histogram. Use FIRST before running any test so you know what the data looks like (sample size, com... | indicator (string), entity (string), time (string) |
| correlate | Compute Pearson + Spearman correlation between two indicators for one entity. Returns r, p-value, n, and human-readable interpretation. Use for "does X move with Y?" questions. Includes causation d... | entity (string), a (string), b (string), time (string), full (boolean) |
| regression | Linear regression of y ~ x for one entity. Returns slope, intercept, R² and interpretation. Use for "how does X predict Y?" questions. Runs on any verified autario indicator (World Bank, FRED, Euro... | entity (string), y (string), x (string), time (string), full (boolean) |
| pct_change | Period-over-period percentage change for an indicator. Use for growth rates (YoY, QoQ, MoM) | "how fast did German GDP grow", "what is US CPI doing month over month". Runs on any verified autario i... | entity (string), indicator (string), time (string), period (string), full (boolean) |
| rolling_stats | Rolling window statistics (mean/std/min/max/sum) for an indicator. Smooths noise, reveals trends | use it before claiming a turning point in a monthly FRED or Eurostat series. Runs on any verified... | entity (string), indicator (string), window (number), op (string), time (string), full (boolean) |
| calculate | Create a derived series from two indicators using an Excel-style op: ratio (A/B), ratio_pct (A/B100), diff (A-B), sum (A+B), product (AB). Returns the per-timepoint result + summary. Use for thin... | a (string), b (string), entity (string), op (string), time (string), full (boolean) |
| lag_analysis | Cross-correlation at multiple lags. Answers "does A lead or lag B?". Peak |r| at positive lag means A precedes B by that many periods. Common use: "is consumer confidence a leading indicator of ret... | a (string), b (string), entity (string), max_lag (number), time (string) |
| seasonality_decomposition | Additive decomposition Y = trend + seasonal + residual. Use this to strip the seasonal cycle from a series and reveal the underlying trend | great for monthly or quarterly data (retail sales, unemp... | indicator (string), entity (string), period (number), time (string), full (boolean) |
| find_drivers | Rank candidate drivers of a KPI one at a time: given a target indicator + multiple candidates, order them by correlation strength. Perfect for "what moves my KPI?" questions. Returns ranked list wi... | entity (string), target_indicator (string), candidates (array), time (string) |
| decompose_drivers | CONFOUNDER-AWARE DRIVER ANALYSIS: fits ONE multiple regression of the target on ALL candidates jointly, so each effect is estimated holding the other candidates constant. Distinguishes "it was the... | entity (string), target_indicator (string), candidates (array), time (string), max_lag (number) |
| what_matters | Answer "what explains this?" in one call: given an outcome metric + entity, rank which other metrics best explain the outcome. Auto-selects candidates from the ontology if candidates is omitted (... | entity (string), outcome (string), candidates (string), time (string) |
Live Markets
Current quotes for public companies. Beats stale training-data answers.
| Tool | What it does | Parameters |
| --- | --- | --- |
| get_company_snapshot | Get current stock metrics for a public company, from live market data joined with its SEC filings. Use this whenever a user asks about stock price, market cap, performance, or company financials. R... | ticker (string), metrics (array) |
Connectors (requires AUTARIO_API_KEY)
Hosted, auto-refreshing REST-API tables. The account owner sets a connector up in the Autario UI; agents list and refresh them (never handle credentials).
| Tool | What it does | Parameters |
| --- | --- | --- |
| list_connectors | List the platform connectors set up on this Autario account | Google Search Console, Google Analytics 4 (GA4), Google Ads, Meta Ads, Facebook Pages, Instagram, TikTok, TikTok Ads, YouTube, LinkedIn... | none |
| refresh_connector | Pull the latest numbers from one connected platform right now (Google Search Console, GA4, Google Ads, Meta Ads, Facebook, Instagram, TikTok, YouTube, LinkedIn, Shopify, Stripe, Bing Webmaster Tool... | connector_id (string) |
Charts on Demand
Browse datasets that want a chart and request one for a dataset.
| Tool | What it does | Parameters |
| --- | --- | --- |
| list_chart_candidates | AUTARIO-INTERNAL chart queue (admin only): list catalog datasets (World Bank, FRED, Eurostat, OECD, WHO, IMF, SEC) that have NO published chart yet, ranked by relevance, so the content pipeline can... | limit (number) |
| request_chart | AUTARIO-INTERNAL high-level chart request (admin only): the server builds the Plotly chart from a catalog dataset (World Bank, FRED, Eurostat, OECD, WHO, IMF, SEC), you do NOT build a spec, but you... | dataset_id (string), query (string), insight (string), chart_type (string), region (string), time (string) |
Data Apps
Run an autario data-app and get a verifiable result + the live interactive chart (shareable URL + embeddable iframe). Navigate app-first: get_my_workspace (every app YOU use, one call) -> get_app_context (one app's data map incl. its KPI catalog, agent_surface) -> get_app_artifact (the exact saved view) ground the assistant in the same data the user sees. audience_360 returns the caller's own computed audience report, section-selective.
| Tool | What it does | Parameters |
| --- | --- | --- |
| list_apps | List the autario data apps (the app catalog): id, name, what each app does, its live page URL, and data_scope (private = the app works on the caller's own connected data from Google Search Console,... | format (string) |
| get_my_workspace | YOUR data-app workspace in ONE call: every autario app the calling user has activated or connected, each with its platforms (Google Search Console, GA4, Google Ads, Meta Ads, YouTube, TikTok, Insta... | format (string) |
| get_app_context | The data map behind ONE autario app, so you can query app-first instead of guessing across thousands of datasets. Returns the app manifest (what it consumes, which connector providers it reads | Go... | app_id (string), format (string) |
| get_app_artifact | Load ONE saved artifact from an autario data app | the EXACT view state the user saved there (a saved SEO 360 / Audience 360 / Social 360 / AI Visibility 360 report configuration, a Plotly chart sp... | app_id (string), slug (string), format (string) |
| audience_360 | Audience 360 | the caller's OWN audience report over their connected Google Search Console + GA4 + social (Facebook Page, Instagram, TikTok) connector data, computed deterministically server-side (... | sections (array), range (string), from (string), to (string), channel (string), countries (string), brand (string), format (string) |
| seo_360 | SEO 360 | the caller's OWN deterministic Google Search Console ACTION report, computed server-side from their connected GSC data (the exact numbers the user sees in the app | nothing re-derived, no... | sections (array), days (integer), format (string) |
| social_360 | Social 360 | the caller's OWN deterministic social performance report over their connected Facebook Page, Instagram, TikTok and YouTube data, computed server-side (the exact numbers the user sees i... | sections (array), days (integer), sort (string), format (string) |
| ai_visibility_360 | AI Visibility 360 | the caller's OWN brand-visibility report across the AI assistants (ChatGPT, Claude, Gemini, Perplexity, optionally Grok/DeepSeek/Mistral), read deterministically from stored run... | brand (string), sections (array), days (integer), format (string) |
| bubble_or_not | Bubble Or Not? | Check whether a public US stock's price is running ahead of (or backed by) its fundamentals. Overlays the share price against ONE SEC-reported fundamental (Revenue, Net Income, Dil... | ticker (string), metric (string), range (string), chart_type (string), scale (string) |
Build and Ship a Data App (requires AUTARIO_API_KEY)
Build an app that runs ON autario and publish it yourself, with no review queue and nobody to ask. The path is create_app -> update_app_manifest -> upload_app_bundle (or write_app_artifact) -> get_app_preview_url -> publish_app, and every response carries a next_step. Each tool is a thin wrapper over the same REST endpoint an outside developer calls directly, so an agent is exactly its owner and never more.
| Tool | What it does | Parameters |
| --- | --- | --- |
| create_app | Create a data app on autario in ONE call, owned by you. You give it a name and an entry: either an https URL where the app already runs, or the app's HTML itself (a single self-contained document,... | name (string), tagline (string), entry_kind (string), entry_url (string), content (string), content_type (string), source_url (string) |
| update_app_manifest | Update the manifest of an app YOU own: its name, tagline, entry URL, version, source repository and the autario datasets or operations it is allowed to read (consumed_datasets, which is what the sa... | app_id (string), name (string), tagline (string), entry_url (string), version (string), source_url (string), consumed_datasets (array), tier (integer) |
| upload_app_bundle | Upload or replace the code of an app YOU own: one self-contained entry document (HTML or JavaScript, max 512 KB, no binary). autario stores it and serves it inside a locked sandbox with no outbound... | app_id (string), content (string), content_type (string), version (string) |
| write_app_artifact | Save an ARTIFACT into an app: the app's own output or saved state, owned by you. An artifact is what get_app_artifact reads back later | a Plotly chart specification, a saved report configuration,... | app_id (string), artifact_id (string), type (string), title (string), spec (object), data (object), visibility (string) |
| get_app_preview_url | The link to OPEN an app you own, plus where it stands. Returns preview_url (a private, never-indexed page where only you can run the app, reading World Bank, FRED, Eurostat or your own connector da... | app_id (string) |
| publish_app | Publish an app YOU own. Takes effect immediately, with no review queue and nobody to ask. Two ways to publish: "public" gives it a tile in the autario app store under Community apps, next to AI Vis... | app_id (string), visibility (string) |
| unpublish_app | Take an app YOU own back to private: it leaves the autario app store, its public URL stops working for everyone else, and only you can still open it at its preview URL, where it keeps reading World... | app_id (string) |
Write (requires AUTARIO_API_KEY)
Publish charts, create + populate datasets. Get keys at autario.com/account.
| Tool | What it does | Parameters |
| --- | --- | --- |
| create_chart_from_spec | PREFERRED chart-creation path, for any autario dataset (World Bank, FRED, Eurostat, OECD, SEC, or your own upload / connector table). Send a structured Builder spec (chart_type + x_col + y_col[s] +... | builder_spec (object), title (string), insight (string), narration (string), dataset_ids (array) |
| publish_chart | Publish a chart via freeform Plotly spec. Use create_chart_from_spec instead unless you need a Plotly feature the Builder spec doesn't cover (custom shapes, multi-axis layouts, animation frames). R... | title (string), plotly_spec (object), insight (string), narration (string), dataset_ids (array) |
| update_chart | Update an existing chart you own. Only the API key that created the chart can update it. Use this to modify the Plotly spec, title, or insight of a previously published chart. | chart_id (string), plotly_spec (object), title (string), insight (string), narration (string) |
| create_dataset | Create a new empty dataset on Autario, alongside the public catalog (World Bank, FRED, Eurostat, OECD, SEC) but private to you unless you set is_public. Returns a dataset_id you can populate with w... | title (string), description (string), category (string), is_public (boolean) |
| write_rows | Append rows of data to an existing dataset you own (from create_dataset) | your own numbers, a derived table you computed, or a series you scraped together from World Bank / FRED / Eurostat results... | dataset_id (string), rows (array) |
| clear_rows | Delete all rows from a dataset you own while keeping the schema and columns intact. Useful for refreshing your own uploaded table before re-importing. Only your own datasets are reachable | the pub... | dataset_id (string) |
| delete_dataset | Permanently delete a dataset you own, and all its data. This action cannot be undone. Only the dataset owner can delete it | the public catalog (World Bank, FRED, Eurostat, OECD, SEC) is a permanen... | dataset_id (string) |
| report_data_issue | Report a data-quality problem you found in an autario dataset or chart (World Bank, FRED, Eurostat, OECD, WHO, IMF, ECB, US Census, SEC or any other publisher in the catalog), so the engine can fix... | dataset_id (string), finding_type (string), severity (string), evidence (object), detail (string) |
Admin
Curator-only; invisible to other callers.
| Tool | What it does | Parameters |
| --- | --- | --- |
| get_traction_overview | ADMIN/CURATOR ONLY, autario's own traction. ONE report uniting the three real signal sources: real human reach (GA4-humans), the MCP/agent channel (mcp_tool_call volume + success-rate + top tools),... | none |
| get_engine_report | ADMIN/CURATOR ONLY, autario's own ingest engine. The machine-readable health of the pipeline that pulls World Bank, FRED, Eurostat, OECD, WHO, IMF, ECB, US Census and SEC into the catalog, in ONE s... | trends (boolean), trend_days (integer), format (string) |
Environment Variables
| Variable | Default | Purpose |
| --- | --- | --- |
| AUTARIO_API_URL | https://autario.com | API base. Override only for self-hosting. |
| AUTARIO_API_KEY | unset | Required for write tools. Read tools work anonymously. |
| AUTARIO_API_SECRET | unset | Companion secret for the API key. |
Data Sources
World Bank, FRED, Eurostat, OECD, IMF, ECB, WHO, US Census Bureau, plus user-contributed datasets. Every dataset record includes a source_url pointing back to the primary publisher. Live catalog: autario.com/data.
Development
This package is part of the autario monorepo. Tool definitions live in tools.js (single source of truth, shared with the HTTP transport in remote.js). The Tool Reference section above is auto-generated.
# regenerate the README Tool Reference from tools.js
npm run build-readme
# verify README is in sync (used in CI)
npm run check-readmeLinks
- autario.com | datasets, charts, ontology
- Documentation | API + MCP reference
- Agent Guide | machine-readable description of every tool and endpoint
- Issues | bug reports + feature requests
License
MIT.
