MCPVault
Faostat MCP Server logo

Faostat MCP Server

Unclaimed

by cyanheads

Global food & agriculture statistics from the UN FAOSTAT bulk-download corpus, served from a local SQLite mirror with a DataCanvas SQL surface, over MCP. STDIO & Streamable HTTP.

agricultureai-agentsbuncyanheadsduckdbfaofaostatfoodfood-securitymcpmcp-servermodel-context-protocolopen-datasqlitestatisticstypescript

Install

$docker run --rm -p 3010:3010 -v faostat-mirror:/usr/src/app/.faostat-mirror faostat-mcp-server

Unclaimed listing

Is this your MCP server?

This listing was auto-indexed from the public record. Claim it to edit the page, set compatibility and unlock growth tools. Takes under two minutes.

Claim this server

Tools (13)

canvas_id

is optional on both tools — omit it to operate on the tables staged in the current session (the common case).

code

for an exact domain lookup (e.g. "RL") — one full record, without a topic search that can match unrelated domains

faostat_commodity_profile

Workflow: assemble top producers, the production trend, and trade flows for one commodity from the production and trade domains in a single call.

faostat_dataframe_describe

List the canvas tables staged this session, each with provenance, row count, and column schema.

faostat_dataframe_query

Run a read-only SQL SELECT against the canvas tables staged by the analytical tools.

faostat_list_domains

Discover FAOSTAT statistical domains with codes, descriptions, last-update date, upstream row count, and local index status. The entry point — every query keys on a domain code.

faostat_query_observations

Query a domain's cube by area(s), item(s), element(s), and year range. Inline preview for small results; large sets spill to a DataCanvas table.

faostat_resolve_codes

Resolve human terms to the opaque integer codes a query needs (areas, items, elements), flagging each area as a country or an aggregate region.

indexed_only

to list just the domains queryable from the local mirror

limit

caps the inline page (default 200, max 1000); a match that outgrows the page is staged to the canvas table in full, and when no table is staged the response reports how many matched — so a low limit trims the response without putting rows out of reach

offset

+ limit to page the catalog; the response reports totalMatches, truncated, and the nextOffset to resume at. Domain descriptions are long, so a browse call is bounded by default — raise limit (max 200) to pull the whole catalog in one response

Read-only.

Writes, DDL, DROP, COPY, PRAGMA, ATTACH, and external-file table functions are rejected by the framework SQL gate. System catalogs (informationschema, sqlitemaster, duckdb) are denied so a caller can't enumerate staged tables it doesn't hold a handle for — list them via faostatdataframedescribe.

topic

substring filter over code, name, and topic (e.g. "trade", "emissions", "QCL")