Supabase
Supabase’s official server lets AI create tables, query data and review project settings in your Supabase database.
Description from the maker (original English)
UN FAOSTAT global food & agriculture statistics over a local SQLite mirror, via MCP.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
FAOSTAT_DOMAINS, FAOSTAT_MIRROR_PATH, FAOSTAT_BULK_BASE_URL, CANVAS_PROVIDER_TYPE, FAOSTAT_DATAFRAME_DROP_ENABLED, MCP_LOG_LEVELYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://faostat.caseyjhand.com/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"faostat": {
"command": "npx",
"args": [
"-y",
"@cyanheads/faostat-mcp-server"
],
"env": {
"FAOSTAT_DOMAINS": "your-value",
"FAOSTAT_MIRROR_PATH": "your-value",
"FAOSTAT_BULK_BASE_URL": "your-value",
"CANVAS_PROVIDER_TYPE": "your-value",
"FAOSTAT_DATAFRAME_DROP_ENABLED": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http faostat https://faostat.caseyjhand.com/mcpclaude mcp add faostat --env FAOSTAT_DOMAINS=your-value --env FAOSTAT_MIRROR_PATH=your-value --env FAOSTAT_BULK_BASE_URL=your-value --env CANVAS_PROVIDER_TYPE=your-value --env FAOSTAT_DATAFRAME_DROP_ENABLED=your-value --env MCP_LOG_LEVEL=your-value -- npx -y @cyanheads/faostat-mcp-serverFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"faostat": {
"url": "https://faostat.caseyjhand.com/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"faostat": {
"command": "npx",
"args": [
"-y",
"@cyanheads/faostat-mcp-server"
],
"env": {
"FAOSTAT_DOMAINS": "your-value",
"FAOSTAT_MIRROR_PATH": "your-value",
"FAOSTAT_BULK_BASE_URL": "your-value",
"CANVAS_PROVIDER_TYPE": "your-value",
"FAOSTAT_DATAFRAME_DROP_ENABLED": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"faostat": {
"type": "http",
"url": "https://faostat.caseyjhand.com/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"faostat": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/faostat-mcp-server"
],
"env": {
"FAOSTAT_DOMAINS": "your-value",
"FAOSTAT_MIRROR_PATH": "your-value",
"FAOSTAT_BULK_BASE_URL": "your-value",
"CANVAS_PROVIDER_TYPE": "your-value",
"FAOSTAT_DATAFRAME_DROP_ENABLED": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://faostat.caseyjhand.com/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
FAOSTAT_DOMAINS envFAOSTAT_MIRROR_PATH envFAOSTAT_BULK_BASE_URL envCANVAS_PROVIDER_TYPE envFAOSTAT_DATAFRAME_DROP_ENABLED envMCP_LOG_LEVEL envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 6, 2026. The maker wrote them, not us; we show them as plain text.
faostat_list_domainsDiscover 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`
faostat_resolve_codesResolve 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
faostat_query_observationsQuery 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 r
faostat_commodity_profileAssemble 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, oth
faostat_dataframe_queryRun 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 wi
faostat_dataframe_describeList 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 di
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account cyanheads, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 202 ms (HTTP 200)
No sign-in needed
Read 6 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (0.6.0) reached the registry 4 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Supabase, MongoDB MCP Server, Elasticsearch MCP Server
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Supabase’s official server lets AI create tables, query data and review project settings in your Supabase database.
MongoDB Model Context Protocol Server
MCP server for interacting with Elasticsearch
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
@cyanheads/faostat-mcp-server Global food & agriculture statistics from the UN FAOSTAT bulk-download corpus, served from a local SQLite mirror with a DataCanvas SQL surface, via MCP. STDIO or Streamable HTTP. 7 Tools • 1 Skill Resource • 0 Prompts
Public Hosted Server: https://faostat.caseyjhand.com/mcp
Global food and agriculture statistics from the UN's FAOSTAT: production, trade, food balances, food security, land use, fertilizer, and emissions for 245+ countries and territories since 1961. Resolve commodity and country codes, query the data, and run SQL over large results.
| Tool | Description |
|---|---|
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_resolve_codes | Resolve human terms to the codes a query needs (areas, items, elements), flagging each area as a country or an aggregate region. |
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_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_query | Run a read-only SQL SELECT against the canvas tables staged by the analytical tools. |
faostat_dataframe_describe | List the canvas tables staged this session, each with provenance, row count, and column schema. |
faostat_dataframe_drop | Drop one staged canvas table before its 2-hour TTL. Opt-in — callable only with FAOSTAT_DATAFRAME_DROP_ENABLED=true. |
faostat_list_domains toolcode for an exact domain lookup; topic substring filter over code/name/topic; indexed_only to list only domains queryable from the local mirroroffset + limit (max 200, default 20) page the catalog — response reports totalMatches, truncated, and nextOffsetindexed / index_ready flags, local row count, and last completed syncfaostat_resolve_codes toolquery, substring name_contains, or exact code lookup within a dimension: area, item, or element; code_text looks up alphanumeric itemsdomain's cube; area codes are shared across domainsunits; item_codes or item_codes_text restrict element discovery and units to selected items. Item/element lookups require that domain to be readycountry or aggregate (codes ≥ 5000, plus curated sub-threshold roll-ups such as China=351)aggregate by domain. Classification is incomplete: kind: null does not mean items can safely be summed togetherlimit (max 200, default 50) + offset page the match setunknown_domain, index_not_ready, invalid_text_selector, invalid_item_scope, query_timeoutfaostat_query_observations toolarea_codes / item_codes / item_codes_text / element_codes / source_codes and an inclusive year_start / year_end rangeitem_code_text with item_code: null; numeric items retain their integer codeperiod (e.g. 2000-2002) and use its midpoint as year for filtering. Censored values retain the numeric bound plus value_qualifier (e.g. < with 2.5)source_code and source; omitting source_codes returns all sources, which must be compared separately rather than summedavailable_elements with labels and units for those items; this does not establish coverage for the requested areas, years, or sourcesinclude_aggregates: false); explicit area_codes bypass the exclusionlimit caps the inline page (default 200, max 1000); a match that exceeds it spills in full to a DataCanvas table (50,000-row staging cap) — faostat_dataframe_describe for its columns, then SQL via faostat_dataframe_queryflag (A/E/I/B/M/T/X, others per domain) — never droppeddomain_not_indexed, index_not_ready, canvas_disabled, canvas_not_found, invalid_year_range, conflicting_item_selectors, query_timeoutfaostat_commodity_profile toolitem_code or item_query (code takes precedence), then ranks top producers/exporters/importers and returns an annual production trendmaize or milk, call faostat_resolve_codes with domain: "QCL", dimension: "item", and the query, then pass the selected item_code (e.g. 56 for maize grain)top_n caps each ranked list (max 50); when the merged observation set is too large to inline it spills to a DataCanvas table — faostat_dataframe_describe for its columns, then faostat_dataframe_query for further SQLmissing_item, ambiguous_item, no_match, domain_not_indexed, index_not_ready, invalid_year_range, canvas_not_found, query_timeoutfaostat_dataframe_query toolSELECT over staged faostat_xxxxxxxx tables — joins, aggregates, window functions, and CTEs all workDROP, COPY, PRAGMA, ATTACH, external-file functions, and system catalogs (information_schema, sqlite_master, duckdb_*) are rejectedquery_table, dynamic query() SQL, and file table references are rejected; query() with a single literal read-only SELECT remains supportedrow_limit caps the response (default 1000, max 10000); truncated means more rows exist, with no exact total computed on this pathcanvas_disabled, canvas_not_found, missing_table, system_catalog_access, invalid_sqlfaostat_dataframe_describe toolname describes one table outright; otherwise offset + limit (max 100, default 20) page the listing newest-firstcanvas_disabled, canvas_not_found, missing_tablefaostat_dataframe_drop tooltools/list — unless FAOSTAT_DATAFRAME_DROP_ENABLED=truefaostat_xxxxxxxx table and its provenance from the session canvas, or from the canvas a canvas_id namesdropped: false with a notice and changes nothingcanvas_disabled, canvas_not_foundThe faostat-guide covers reporting periods, censored values, source estimates, country versus regional totals, units, coverage, and complete SQL analysis across staged results. It ships with plugin, npm, Docker, and MCPB installs and is served through the MCP Skills extension as a skill resource.
Built on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.
FAOSTAT-specific:
MirrorService, with FTS5 over the dimension labels driving code resolutionFAOSTAT_DOMAINS) — the indexed set can grow without code changes, and the full catalog stays browsable regardlessGROUP BY, ranking, and time-series analysis over spilled result setsAgent-friendly output:
A/E/I/B/M/T/X, others per domain), never dropped from outputfaostat_commodity_profile returns a production-only profile with a notice, rather than failing, when the trade domain isn't indexedindex_not_ready, domain_not_indexed, canvas_disabled, and others each carry a concrete recovery hintConnect to the hosted instance, no install:
claude mcp add --transport http faostat-mcp-server https://faostat.caseyjhand.com/mcp
Or run it locally after building the mirror:
claude mcp add faostat-mcp-server -- npx -y @cyanheads/faostat-mcp-server
For other clients, add this to the MCP config file:
{
"mcpServers": { "faostat-mcp-server": { "command": "
Only the beginning is shown; read the rest in the repo