mcpbeat Sign in

Faostat MCP Server

answering

Faostat MCP Server is answering right now. Last checked 15 min ago. 356 installs a week from npm. It exposes 6 tools. Last commit 4 Nov 2026.

UN FAOSTAT global food & agriculture statistics over a local SQLite mirror, via MCP.

Installs per day peak 337 · avg 51 · -52% w/w
a month agotoday
Uptime history 91 days of history · worst day 92%
91 days agonow
98.9%
Uptime 24h
90 of 91 checks
6
Tools
read from the server
570 ms
Response time
average over 24h
356
Installs / week
npm and PyPI

What changed 29

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 25 August 2026. No other catalogue keeps this.

3 Nov 3 tool descriptions were rewritten faostat_dataframe_query, faostat_query_observations, faostat_resolve_codes
3 Nov 2 tools changed the parameters they ask for faostat_query_observations, faostat_resolve_codes
3 Nov a tool changed version
28 Oct a tool changed version
25 Oct a tool changed version
18 Oct a tool description was rewritten faostat_commodity_profile
18 Oct a tool changed the parameters it asks for faostat_commodity_profile
18 Oct a tool changed version
4 Oct a tool changed version
30 Sep 2 tool descriptions were rewritten faostat_commodity_profile, faostat_query_observations
and 15 more, back to 25 August 2026

Faostat MCP Server missed 2 checks this week

Everything else answered, so this is steady rather than shaky. We check every 15 minutes, which is how a one-off gets told apart from the start of a pattern, and how you hear about the next one within the hour instead of from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 15 min ago.

run in your terminal
claude mcp add faostat-mcp-server --transport http https://faostat.caseyjhand.com/mcp
Settings → Connectors → Add custom connector, then paste this address
https://faostat.caseyjhand.com/mcp
~/.codex/config.toml
[mcp_servers.faostat-mcp-server]
url = "https://faostat.caseyjhand.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "faostat-mcp-server": {
      "url": "https://faostat.caseyjhand.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "faostat-mcp-server": {
      "type": "http",
      "url": "https://faostat.caseyjhand.com/mcp"
    }
  }
}

Available tools 6

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

faostat
faostat_commodity_profile
Assemble a global profile for one QCL item in a single call: top-producing countries, the annual production trend, and trade flows (top exporters and importers). Supply item_code or item_query; code wins when both are supplied. A query selects a unique normalized exact label, otherwise a unique relevance match; ambiguous queries require an explicit code. Each ranking uses the selected item at each country's own latest year with data, grouped by unit. The trend is returned inline as year/value points. Country-level only (aggregates excluded). QCL is required; unavailable TCL yields a production-only profile with a notice. When the merged observation set is too large to inline, it spills to a DataCanvas table (canvas_id + table_name) — call faostat_dataframe_describe for its columns, then faostat_dataframe_query for deeper SQL.
faostat_dataframe_describe
List the canvas tables (faostat_xxxxxxxx) staged by faostat_query_observations and faostat_commodity_profile, each with its source tool, the query parameters that produced it, creation/expiry timestamps, row count, and column schema. Call this before faostat_dataframe_query to discover the exact table and column names to reference in SQL. Tables are listed newest-first and paged: pass `name` to describe one table outright, or page with `offset` + `limit` — when the response reports `truncated`, pass the returned `nextOffset` to fetch the rest.
faostat_dataframe_query
Run a single-statement SELECT against canvas tables staged by faostat_query_observations and faostat_commodity_profile (faostat_xxxxxxxx). Use DuckDB joins, aggregates, window functions, and CTEs for rankings and time-series analysis. Item groups can overlap their members even with matching units; do not sum them together, and resolver kind=null does not establish safe-to-sum. Separate source methodologies and respect bounded values and multi-year periods. Read-only: writes, DDL, DROP, COPY, PRAGMA, ATTACH, and external-file functions are rejected; system catalogs are denied. List tables and columns with faostat_dataframe_describe. Preserve data-quality flags in projections: commonly A=Official, B=time-series break, E=Estimated, I=Imputed, M=Missing, T=Unofficial, X=international organization; unrecognized flags never establish official status.
faostat_list_domains
Discover FAOSTAT statistical domains (production, trade, food balances, food security, land use, agri-emissions, prices, value) with their codes, descriptions, last-update date, upstream row count, and local index status. Every query keys on a domain code from here. The `indexed` flag tells you which domains are queryable right now; un-indexed domains exist in the catalog but must be added to FAOSTAT_DOMAINS and re-synced before faostat_query_observations can read them. The catalog runs to ~69 domains with long descriptions, so responses are paged: narrow with `topic` / `indexed_only`, pass `code` to fetch one domain outright, or page with `offset` + `limit` — when the response reports `truncated`, pass the returned `nextOffset` to fetch the rest.
faostat_query_observations
Query a FAOSTAT domain's data cube by area(s), item(s), element(s), sources, and year range, returning values with units and data-quality flags. Resolve numeric codes or exact alphanumeric item identities with faostat_resolve_codes; element resolution accepts item selectors and returns units. Empty queries with explicit items and elements list available elements for those items across the domain, without establishing area/year/source coverage. Aggregate regions are excluded by default; include_aggregates=true returns roll-ups, and explicit area_codes are honored verbatim. Item groups can overlap their members even with matching units; they remain included, and kind=null does not establish safe-to-sum. Keep source methodologies separate. Small results return inline; large ones spill to a DataCanvas table (canvas_id + table_name); call faostat_dataframe_describe for columns, then faostat_dataframe_query for analysis. Honor every row's flag: commonly A=Official, B=time-series break, E=Estimated, I=Imputed, M=Missing, T=Unofficial, X=international organization; unrecognized flags never establish official status.
faostat_resolve_codes
Resolve labels to the numeric codes or exact alphanumeric item identities faostat_query_observations needs: areas (countries/regions), items (commodities), and elements (metrics). Use query for full-text matching, name_contains for substring matching, code or code_text for exact identity, or omit them to list. Item and element matches occur in the selected domain; areas use shared vocabulary. For elements, optionally pass item_codes or item_codes_text to discover metrics and distinct units observed for those items; this does not establish area/year/source coverage. Empty item selectors match nothing. Page with offset and limit using nextOffset when truncated. Areas carry country/aggregate classification. Verified domain-specific item groups carry aggregate; null means unclassified, not safe-to-sum. Item groups can overlap their members even with matching units. Area aggregates include codes ≥ 5000 and curated roll-ups such as China=351; exclude overlapping regional and country rows when summing.

Endpoints

URLTransportStateLatencyChecked
https://faostat.caseyjhand.com/mcp streamable-http answering 630 ms 15 min ago

Alternatives to Faostat MCP Server

same job, measured the same way
MCP Sqlite Tools
by spences10

MCP server for local SQLite database operations

154 installs/wk local only
Better Stack MCP
by servosity

Every Better Stack Uptime feature, plus an offline SQLite mirror and cross-resource fleet analytics

local only
Domotz MCP
by servosity

Every Domotz endpoint, plus a local SQLite fleet mirror that answers cross-site questions.

local only
Autotask MCP
by servosity

Every Autotask entity at the command line, plus a local SQLite mirror that answers ticket-aging

local only
Datto RMM MCP
by servosity

Every Datto RMM API operation, plus a local SQLite fleet store and fleet-wide analytics no other

local only
Atera MCP
by servosity

Every Atera RMM + PSA endpoint, plus a local SQLite mirror that answers fleet-health, SLA, and

local only
Huntress MCP
by servosity

Every Huntress endpoint, plus a local SQLite mirror that delivers fleet-wide incident, coverage

local only
LLM Kosh
by rastogivaibhav

Local-first AI memory cartridge with persistent MCP memory for Claude via SQLite FTS5.

160 installs/wk local only

Faostat MCP Server — questions

Answers built from our own checks of this server.

What can Faostat MCP Server do?
It exposes 6 tools, read directly from the server on our last check. Among them: faostat_commodity_profile, faostat_dataframe_describe, faostat_dataframe_query, faostat_list_domains, faostat_query_observations, faostat_resolve_codes. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Faostat MCP Server working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 90 of 91 checks got a reply (98.9%), average response time 570 ms. The bar chart above shows every period we have measured.
How do I connect Faostat MCP Server?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Faostat MCP Server need an API key?
No. Faostat MCP Server completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 6 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Faostat MCP Server?
It answers our handshake in 570 ms on average, which is faster than 19% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use Faostat MCP Server?
The npm package @cyanheads/faostat-mcp-server was installed 356 times in the last week. Week over week that is -52%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Faostat MCP Server open source?
The code is open source: it is published under the Apache-2.0 licence, written in TypeScript, 3 stars on GitHub and 7 open issues. The licence covers the code in the repository, not the hosted service at faostat.caseyjhand.com, which runs on its operator's own terms.