原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Faostat MCP Server

作者:cyanheads版本 0.6.0i★ –i电脑或云端
注册名称io.github.cyanheads/faostat-mcp-server

安装

概览

作者提供的说明(英文原文)

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

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:3 项中通过 3 项
  • 在作者的服务器上运行:你向它提出的内容会经过他们的服务器。
  • 可以做 6 件事(工具) faostat_list_domains, faostat_resolve_codes, faostat_query_observations, faostat_commodity_profile …
  • 需要你自己填写: FAOSTAT_DOMAINS, FAOSTAT_MIRROR_PATH, FAOSTAT_BULK_BASE_URL, CANVAS_PROVIDER_TYPE, FAOSTAT_DATAFRAME_DROP_ENABLED, MCP_LOG_LEVEL

你需要

  • 在云端运行无需安装任何东西,通过互联网连接
  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

适用于网页版、桌面版和手机版 Claude:

  1. 打开 Settings → Connectors
  2. 点击 Add custom connector
  3. 粘贴下面的地址,然后点击 Add
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Add2https://…3
https://faostat.caseyjhand.com/mcp

或者在你的电脑上运行

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 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"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add --transport http faostat https://faostat.caseyjhand.com/mcp

或者在你的电脑上运行

claude 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-server

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "faostat": {
      "url": "https://faostat.caseyjhand.com/mcp"
    }
  }
}

或者在你的电脑上运行

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.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"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "faostat": {
      "type": "http",
      "url": "https://faostat.caseyjhand.com/mcp"
    }
  }
}

或者在你的电脑上运行

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "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"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

ChatGPT 只能连接互联网上的服务器:

  1. 打开网页版 ChatGPT → Settings → Connectors (Apps)
  2. 点击 Create 或 Add(部分套餐需要先在 Advanced 中开启 Developer mode)
  3. 粘贴下面的地址,起个名字,然后保存
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Create2https://…3
https://faostat.caseyjhand.com/mcp

菜单名称可能因套餐和版本不同而略有差异。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • FAOSTAT_DOMAINS env
    Comma-separated FAOSTAT domain codes to index into the local mirror.
  • FAOSTAT_MIRROR_PATH env
    Directory holding the per-domain SQLite mirror databases and the shared dimension database.
  • FAOSTAT_BULK_BASE_URL env
    FAOSTAT bulk-download service base URL (manifest + per-domain ZIPs).
  • CANVAS_PROVIDER_TYPE env
    DataCanvas engine for SQL over large result sets. Defaults to 'duckdb'; set 'none' to disable analytical staging.
  • FAOSTAT_DATAFRAME_DROP_ENABLED env
    Set to 'true' to make faostat_dataframe_drop callable, so a staged table can be dropped before its 2-hour TTL. Off by default: the tool is registered disabled.
  • MCP_LOG_LEVEL env
    Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

工具名称和描述与服务器在 2026年11月6日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。

  • 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`

  • 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

  • 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 r

  • 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, oth

  • 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 wi

  • 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 di

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 cyanheads 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • ✓ 通过

    端点有响应

    在 202 毫秒内响应(HTTP 200)

  • – 不适用

    使用 OAuth 登录

    无需登录

  • ✓ 通过

    工具描述中没有隐藏指令

    已读取 6 个工具描述,未发现针对 AI 的隐藏指令

与“数据库与数据集”中的其他服务器比较i

  • 星标数多于此分类中其他 1144 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 1144 个服务器的 88% 更新
  • 基础检查结果等于或优于此分类中其他 1144 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Faostat MCP Server 安全吗?

它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

两种方式都可以:安装在你的电脑上,或者连接云端版本。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.6.0)于4天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。

有什么可以替代它?

同一分类中有:Supabase, MongoDB MCP Server, Elasticsearch MCP Server

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Supabase

作者:supabase

MCP server for interacting with the Supabase platform

电脑或云端★ 2,993Apache-2.0昨天更新
安装

MongoDB MCP Server

作者:mongodb-js

MongoDB Model Context Protocol Server

在你的电脑上运行★ 1,157Apache-2.03天前更新
安装

MCP server for interacting with Elasticsearch

在你的电脑上运行★ 315Apache-2.014个月前更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

@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


Overview

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.

Tools
ToolDescription
faostat_list_domainsDiscover 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_codesResolve human terms to the codes a query needs (areas, items, elements), flagging each area as a country or an aggregate region.
faostat_query_observationsQuery 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_profileWorkflow: assemble top producers, the production trend, and trade flows for one commodity from the production and trade domains in a single call.
faostat_dataframe_queryRun a read-only SQL SELECT against the canvas tables staged by the analytical tools.
faostat_dataframe_describeList the canvas tables staged this session, each with provenance, row count, and column schema.
faostat_dataframe_dropDrop one staged canvas table before its 2-hour TTL. Opt-in — callable only with FAOSTAT_DATAFRAME_DROP_ENABLED=true.

Capability reference

faostat_list_domains tool
  • Full FAOSTAT catalog (~69 domains) read live from the bulk manifest, annotated with local mirror status
  • code for an exact domain lookup; topic substring filter over code/name/topic; indexed_only to list only domains queryable from the local mirror
  • offset + limit (max 200, default 20) page the catalog — response reports totalMatches, truncated, and nextOffset
  • Each entry reports indexed / index_ready flags, local row count, and last completed sync

faostat_resolve_codes tool
  • FTS5 full-text query, substring name_contains, or exact code lookup within a dimension: area, item, or element; code_text looks up alphanumeric items
  • Item/element matches are scoped to codes present in the given domain's cube; area codes are shared across domains
  • Element matches include observed units; item_codes or item_codes_text restrict element discovery and units to selected items. Item/element lookups require that domain to be ready
  • Every area match is flagged country or aggregate (codes ≥ 5000, plus curated sub-threshold roll-ups such as China=351)
  • Verified item groups are marked aggregate by domain. Classification is incomplete: kind: null does not mean items can safely be summed together
  • limit (max 200, default 50) + offset page the match set
  • Typed errors: unknown_domain, index_not_ready, invalid_text_selector, invalid_item_scope, query_timeout

faostat_query_observations tool
  • Filters by area_codes / item_codes / item_codes_text / element_codes / source_codes and an inclusive year_start / year_end range
  • Alphanumeric items retain their exact item_code_text with item_code: null; numeric items retain their integer code
  • Period observations retain period (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-specific rows carry source_code and source; omitting source_codes returns all sources, which must be compared separately rather than summed
  • An empty query with explicit item and element selections returns available_elements with labels and units for those items; this does not establish coverage for the requested areas, years, or sources
  • Aggregate regions excluded by default (include_aggregates: false); explicit area_codes bypass the exclusion
  • limit 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_query
  • Every row carries its data-quality flag (A/E/I/B/M/T/X, others per domain) — never dropped
  • Typed errors: domain_not_indexed, index_not_ready, canvas_disabled, canvas_not_found, invalid_year_range, conflicting_item_selectors, query_timeout

faostat_commodity_profile tool
  • Selects one QCL item with item_code or item_query (code takes precedence), then ranks top producers/exporters/importers and returns an annual production trend
  • Query selection prefers a unique exact label after trimming, collapsing whitespace, and case folding; otherwise requires a unique relevance match. For ambiguous terms such as maize 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)
  • Rankings are per-country sums grouped by unit, each country at its own latest reporting year; countries only (aggregates excluded)
  • Returns a partial, production-only profile with a notice — rather than failing — when the trade domain (TCL) isn't indexed or still syncing
  • 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 SQL
  • Every staging outcome is stated in the notice: the staged table, a set that fit inline, a staging failure, or a disabled canvas
  • Typed errors: missing_item, ambiguous_item, no_match, domain_not_indexed, index_not_ready, invalid_year_range, canvas_not_found, query_timeout

faostat_dataframe_query tool
  • Single-statement read-only SELECT over staged faostat_xxxxxxxx tables — joins, aggregates, window functions, and CTEs all work
  • Writes, DDL, DROP, COPY, PRAGMA, ATTACH, external-file functions, and system catalogs (information_schema, sqlite_master, duckdb_*) are rejected
  • Engine-setting introspection, query_table, dynamic query() SQL, and file table references are rejected; query() with a single literal read-only SELECT remains supported
  • row_limit caps the response (default 1000, max 10000); truncated means more rows exist, with no exact total computed on this path
  • Typed errors: canvas_disabled, canvas_not_found, missing_table, system_catalog_access, invalid_sql

faostat_dataframe_describe tool
  • Lists staged tables with source tool, query params, row count, column schema, and recorded creation/expiry timestamps
  • name describes one table outright; otherwise offset + limit (max 100, default 20) page the listing newest-first
  • Typed errors: canvas_disabled, canvas_not_found, missing_table

faostat_dataframe_drop tool
  • Opt-in: registered disabled — listed on the landing page with its enable hint, absent from tools/list — unless FAOSTAT_DATAFRAME_DROP_ENABLED=true
  • Drops one staged faostat_xxxxxxxx table and its provenance from the session canvas, or from the canvas a canvas_id names
  • Idempotent: a name not staged on that canvas returns dropped: false with a notice and changes nothing
  • Typed errors: canvas_disabled, canvas_not_found

Features

The 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:

  • Persistent local SQLite mirror of the FAOSTAT bulk corpus via the framework MirrorService, with FTS5 over the dimension labels driving code resolution
  • Streaming bulk-ZIP ingester — skips domains whose upstream update date hasn't advanced, and stream-parses the normalized CSV into SQLite without materializing the full file in memory
  • Config-driven domain selection (FAOSTAT_DOMAINS) — the indexed set can grow without code changes, and the full catalog stays browsable regardless
  • DataCanvas SQL surface (DuckDB) for GROUP BY, ranking, and time-series analysis over spilled result sets

Agent-friendly output:

  • Country-vs-aggregate classification on every area, with aggregates excluded from sums by default — guards against double-counting World/continent rows with their member countries
  • Data-quality provenance — every observation carries its FAOSTAT flag (A/E/I/B/M/T/X, others per domain), never dropped from output
  • Graceful partial results — faostat_commodity_profile returns a production-only profile with a notice, rather than failing, when the trade domain isn't indexed
  • Typed error contracts — index_not_ready, domain_not_indexed, canvas_disabled, and others each carry a concrete recovery hint

Getting started

Connect 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": "

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx