The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Nutriref API listing page.
Pay-per-call USDA nutrition data for AI agents. Structured FoodData Central via the x402 micropayment protocol — agents pay $0.001–$0.005 in USDC per request, no signup, no API keys, no human auth flows.
Live at https://nutriref.xyz. Spec at /openapi.json · Swagger at /docs · Bazaar discovery at /.well-known/x402.
| Method | Path | Price | Cache |
|---|---|---|---|
GET | /v1/nutrition/search?q=&limit= | $0.001 | 24h |
GET | /v1/nutrition/detail/{fdc_id} | $0.002 | 7d |
POST | /v1/nutrition/compare | $0.003 | derived |
POST | /v1/nutrition/recipe | $0.005 | derived |
All values per 100g. Missing nutrients are null, not 0. compare returns per-nutrient winners (highest protein, lowest sodium, etc.). recipe scales by grams and sums.
NutriRef ships an MCP server that exposes the four endpoints as native tools. Install it from PyPI:
Then add this to your MCP client config (Claude Desktop's claude_desktop_config.json, Claude Code's MCP settings, etc.):
Prefer not to install? Use
uvx nutriref-mcpas thecommandto run it on demand. To work from a clone instead,pip install -e ".[mcp]"and setcommandtopythonwithargs: ["-m", "mcp_server"].
The wallet needs USDC on Base mainnet — gas is sponsored by the facilitator, so you only need stablecoin balance. The agent now has nutrition_search, nutrition_detail, nutrition_compare, nutrition_recipe and auto-pays per call.
Unpaid requests get 402 Payment Required with x402 payment instructions. Any x402-aware client signs a gasless USDC authorization (EIP-3009) and retries automatically:
GET /v1/nutrition/detail/173944:
NutriRef is open source; the live instance at nutriref.xyz is one deployment among many possible. To run your own:
| Var | Required | Default | Purpose |
|---|---|---|---|
USDA_API_KEY | yes | — | Free key from fdc.nal.usda.gov |
USDA_BASE_URL | no | https://api.nal.usda.gov/fdc/v1 | |
REDIS_URL | no | redis://redis:6379/0 | Response cache |
X402_NETWORK | no | base-sepolia | base for mainnet |
X402_RECEIVER_ADDRESS | yes | — | EVM address that receives USDC |
X402_FACILITATOR_URL | no | https://x402.org/facilitator | https://api.cdp.coinbase.com for mainnet |
CDP_API_KEY_ID | mainnet only | — | Coinbase Developer Platform key ID |
CDP_API_KEY_SECRET | mainnet only | — | Coinbase Developer Platform key secret |
LOG_LEVEL | no | INFO |
For mainnet you need a Coinbase CDP account and the public x402 facilitator at https://api.cdp.coinbase.com. Testnet works for free with the community facilitator at https://x402.org/facilitator.
search and detail cache USDA responses directly. compare and recipe compose from the cached detail data — no extra USDA calls when warm. The cache is a meaningful cost lever: warm requests return in <50ms and never hit USDA.
examples/meal-planner/ is a complete, ~150-line agent that gives Claude
the four NutriRef endpoints as tools and asks it to plan a day of meals
hitting a calorie/protein goal. Worth reading if you're wiring NutriRef
into your own agent — the tool schemas and the payment loop are all
there. See examples/meal-planner/README.md.
fastapi-x402 for the server middleware (with a small EIP-712 patch we apply at startup for Base mainnet USDC).