npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

autario-mcp

v2.5.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

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_value to double-check any claim.
  • Cross-dataset joins, no setup. Indicators across different datasets share autario_time + autario_entity shadow columns, so get_entity_data(USA, [gdp, unemployment, life_expectancy]) returns one wide table, joined automatically.
  • Statistical primitives built-in. correlate, regression, find_drivers, lag_analysis, seasonality_decomposition and more, with effect sizes, p-values, and plain-language interpretations.
  • Charts that persist. publish_chart writes a Plotly spec to autario.com. The result is a permanent, embeddable URL like autario.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

41 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. Returns dataset IDs, titles, descriptions, categories, publishers, row counts, last_refreshed_at, AND trusted ontology fields (topic, subtopic, unit, frequency, ent... | 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. Use this when starting an article, dashboard, or analysis on a topic | it returns a quality-ranked list weighted by topic-relevance,... | topic (string), depth_pref (string), recency_window (string), limit (number) | | list_indicators | Browse the Autario indicator registry — semantic layer over all 2600+ datasets. Each indicator has a topic (economy, health, energy, …), unit (USD, %, years, …), frequency (year/month/day), and ent... | 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, category, keywords, row count, creation date, AND ontology fields (topic, subtopic, unit, frequency, entity_type, i... | 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 data from a dataset with optional filtering, sorting, and field selection. Supports server-side aggregations (avg/sum/count/min/max/stddev/median) with optional GROUP BY for token-efficient q... | 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. Returns chart IDs, titles, insights, linked datasets, and creation dates. Use to discover existing analyses. | 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. This is the "cross-dataset join" capability: no manual relationship setup needed. BY DEFAULT... | entity_id (string), indicators (array), time (string), full (boolean), format (string) | | compare_entities | Compare ONE indicator across MULTIPLE entities (e.g. GDP of DEU vs USA vs CHN). BY DEFAULT returns a per-entity summary (first/latest/min/max/avg/count) — enough to say who is highest and how curre... | entities (array), indicator (string), time (string), full (boolean), format (string) | | verify_value | Verify that a claimed value is correct. Use this when a user asks "did you hallucinate that?" or when you want to double-check your cited numbers before presenting. Pass the indicator, entity, time... | 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. | 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). | 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. | 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 | KILLER ANALYSIS: given a target KPI + multiple candidate indicators, rank which candidates best predict the target by correlation strength. Perfect for "what moves my KPI?" questions. Returns ranke... | 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 | HEADLINE OP: given an outcome metric + entity, rank which other metrics best explain the outcome. Auto-selects candidates from the ontology if candidates is omitted (same topic + entity_type). Re... | 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. Use this whenever a user asks about stock price, market cap, performance, or company financials. Returns the latest verified data from autario.com in... | 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 REST API connectors set up on this Autario account, each with its live dataset_id (queryable via query_dataset), datasets[] (ALL datasets the connector materialized | multi-report connecto... | none | | refresh_connector | Pull the latest data from a connector's source REST API now and refresh its hosted Postgres table on Autario. Returns the new row count and the dataset_id you can then read with query_dataset / get... | 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 (admin only). List datasets that have NO published chart yet, ranked by relevance, so the content pipeline can fill the gap. Every returned dataset is pre-filtered to be CHARTABLE... | limit (number) | | request_chart | AUTARIO-INTERNAL (admin only). HIGH-LEVEL chart request: you do NOT build a spec, but you DO write the insight. TWO-STEP FLOW for a first-try hit: (1) PREPARE - call with dataset_id/query and NO in... | 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). list_apps + get_app_context navigate app-first: the app's manifest plus YOUR connected tables and artifacts behind it.

| Tool | What it does | Parameters | | --- | --- | --- | | list_apps | List the autario data apps (the app catalog): id, name, what each app does, and its live page URL. When the caller is authenticated (API key or OAuth) each app also carries connected=true/false, wh... | 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) and... | app_id (string), 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) |

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. Send a structured Builder spec (chart_type + x_col + y_col[s] + optional group_by, palette, axis overrides, annotations) and Autario builds the chart with the same te... | 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. Returns a dataset_id you can populate with write_rows. Only create new datasets if the data does not already exist on Autario. Requires AUTARIO_API_KEY. | title (string), description (string), category (string), is_public (boolean) | | write_rows | Append rows of data to an existing dataset. The schema is automatically inferred from the first batch. All values are stored as text. Maximum 10,000 rows per call; use multiple calls for larger dat... | dataset_id (string), rows (array) | | clear_rows | Delete all rows from a dataset while keeping the schema and columns intact. Useful for refreshing data before re-importing. Requires AUTARIO_API_KEY. | dataset_id (string) | | delete_dataset | Permanently delete a dataset and all its data. This action cannot be undone. Only the dataset owner can delete it. Requires AUTARIO_API_KEY. | dataset_id (string) | | report_data_issue | Report a data-quality problem you found in a dataset or chart, so the engine can fix it. Use this during a QA pass when you spot: a dataset that looks truncated / only partially ingested (far fewer... | 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. Fetch the autario traction overview | ONE report uniting the three real signal sources: real human reach (GA4-humans), the MCP/agent channel (mcp_tool_call volume + success-rate... | none |

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-readme

Links

License

MIT.