MCP server that exposes the full FAOSTAT API as tools for AI assistants — query UNFAO Food & Agriculture Statistics in natural language via Claude, Cursor, or any MCP-compatible client.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add faostat --env FAOSTAT_API_TOKEN='<FAOSTAT_API_TOKEN>' --env FAOSTAT_USERNAME='<FAOSTAT_USERNAME>' --env FAOSTAT_PASSWORD='<FAOSTAT_PASSWORD>' --env FAOSTAT_BASE_URL='<FAOSTAT_BASE_URL>' --env FAOSTAT_DEFAULT_LANG='<FAOSTAT_DEFAULT_LANG>' -- uvx faostat-mcp~/.codex/config.toml
[mcp_servers.faostat]
command = "uvx"
args = ["faostat-mcp"]
env = { FAOSTAT_API_TOKEN = "<FAOSTAT_API_TOKEN>", FAOSTAT_USERNAME = "<FAOSTAT_USERNAME>", FAOSTAT_PASSWORD = "<FAOSTAT_PASSWORD>", FAOSTAT_BASE_URL = "<FAOSTAT_BASE_URL>", FAOSTAT_DEFAULT_LANG = "<FAOSTAT_DEFAULT_LANG>" }
# codex mcp add faostat --env FAOSTAT_API_TOKEN='<FAOSTAT_API_TOKEN>' --env FAOSTAT_USERNAME='<FAOSTAT_USERNAME>' --env FAOSTAT_PASSWORD='<FAOSTAT_PASSWORD>' --env FAOSTAT_BASE_URL='<FAOSTAT_BASE_URL>' --env FAOSTAT_DEFAULT_LANG='<FAOSTAT_DEFAULT_LANG>' -- uvx faostat-mcp~/.cursor/mcp.json
{
"mcpServers": {
"faostat": {
"command": "uvx",
"args": [
"faostat-mcp"
],
"env": {
"FAOSTAT_API_TOKEN": "<FAOSTAT_API_TOKEN>",
"FAOSTAT_USERNAME": "<FAOSTAT_USERNAME>",
"FAOSTAT_PASSWORD": "<FAOSTAT_PASSWORD>",
"FAOSTAT_BASE_URL": "<FAOSTAT_BASE_URL>",
"FAOSTAT_DEFAULT_LANG": "<FAOSTAT_DEFAULT_LANG>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"faostat": {
"type": "stdio",
"command": "uvx",
"args": [
"faostat-mcp"
],
"env": {
"FAOSTAT_API_TOKEN": "<FAOSTAT_API_TOKEN>",
"FAOSTAT_USERNAME": "<FAOSTAT_USERNAME>",
"FAOSTAT_PASSWORD": "<FAOSTAT_PASSWORD>",
"FAOSTAT_BASE_URL": "<FAOSTAT_BASE_URL>",
"FAOSTAT_DEFAULT_LANG": "<FAOSTAT_DEFAULT_LANG>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"faostat": {
"command": "uvx",
"args": [
"faostat-mcp"
],
"env": {
"FAOSTAT_API_TOKEN": "<FAOSTAT_API_TOKEN>",
"FAOSTAT_USERNAME": "<FAOSTAT_USERNAME>",
"FAOSTAT_PASSWORD": "<FAOSTAT_PASSWORD>",
"FAOSTAT_BASE_URL": "<FAOSTAT_BASE_URL>",
"FAOSTAT_DEFAULT_LANG": "<FAOSTAT_DEFAULT_LANG>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"faostat": {
"command": "uvx",
"args": [
"faostat-mcp"
],
"env": {
"FAOSTAT_API_TOKEN": "<FAOSTAT_API_TOKEN>",
"FAOSTAT_USERNAME": "<FAOSTAT_USERNAME>",
"FAOSTAT_PASSWORD": "<FAOSTAT_PASSWORD>",
"FAOSTAT_BASE_URL": "<FAOSTAT_BASE_URL>",
"FAOSTAT_DEFAULT_LANG": "<FAOSTAT_DEFAULT_LANG>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"faostat": {
"command": "uvx",
"args": [
"faostat-mcp"
],
"env": {
"FAOSTAT_API_TOKEN": "<FAOSTAT_API_TOKEN>",
"FAOSTAT_USERNAME": "<FAOSTAT_USERNAME>",
"FAOSTAT_PASSWORD": "<FAOSTAT_PASSWORD>",
"FAOSTAT_BASE_URL": "<FAOSTAT_BASE_URL>",
"FAOSTAT_DEFAULT_LANG": "<FAOSTAT_DEFAULT_LANG>"
}
}
}
}Environment variables
FAOSTAT_API_TOKENFAOSTAT_USERNAMEFAOSTAT_PASSWORDFAOSTAT_BASE_URLFAOSTAT_DEFAULT_LANG
Replace the placeholders with your own credentials and keep them out of version control.