
Nutriref
- 1 repo stars
- Updated June 15, 2026
- Younghef/nutriref-api
Nutriref MCP is a MCP server that provides pay-per-call USDA nutrition data to agents via x402 USDC on Base.
About
Nutriref MCP packages USDA nutrition reference data for AI agents and charges per call through x402 micropayments in USDC on the Base network. developers shipping health, fitness, meal-planning, or grocery assistants can give Claude Code or similar clients a grounded food-nutrient tool instead of trusting the model’s memory for calories and macros. The published mcpb release runs over stdio, which fits local agent workflows where you control keys and wallets. You should plan for Base USDC funding and x402-aware clients when you enable the server. It is a specialized integration MCP: strong when your prototype needs authoritative nutrition facts and agent-native billing, narrow when you only need static recipe content without USDA alignment.
- USDA nutrition data exposed for AI agents via MCP stdio mcpb bundle v0.2.2
- Pay-per-call pricing using x402 micropayments in USDC on Base
- GitHub release artifact nutriref.mcpb with published fileSha256
- stdio transport package for local agent registration
Nutriref by the numbers
- Data as of Jul 7, 2026 (Skillselion catalog sync)
claude mcp add Nutriref -- npx -y Younghef/nutriref-apiAdd your badge
Show developers this MCP server is listed on Skillselion. Paste this into your README.
| repo stars | ★ 1 |
|---|---|
| Last updated | June 15, 2026 |
| Repository | Younghef/nutriref-api ↗ |
What it does
Wire USDA-backed nutrition lookups into an agent or app with pay-per-call x402 micropayments in USDC on Base.
Who is it for?
Best when you're prototyping nutrition coaches, macro trackers, or agent marketplaces that bill per tool invocation on Base.
Skip if: Static content sites with no agent runtime, or teams unwilling to handle crypto micropayments and wallet setup.
What you get
After you install the nutriref mcpb stdio server and fund x402 USDC on Base, agents can return USDA-aligned nutrition facts per paid call.
- Agent tools returning USDA-backed nutrition reference data
- Per-call metering via x402 USDC on Base
By the numbers
- Package version 0.2.2
- stdio mcpb transport from GitHub releases
- Pay-per-call x402 micropayments in USDC on Base
README.md
NutriRef
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.
Endpoints
| 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.
Use it from Claude (or any MCP agent)
NutriRef ships an MCP server that exposes the four endpoints as native tools. Install it from PyPI:
pip install nutriref-mcp
Then add this to your MCP client config (Claude Desktop's claude_desktop_config.json, Claude Code's MCP settings, etc.):
{
"mcpServers": {
"nutriref": {
"command": "nutriref-mcp",
"env": {
"PAYER_PRIVATE_KEY": "0x...your-funded-wallet-key...",
"NUTRIREF_BASE_URL": "https://nutriref.xyz"
}
}
}
}
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.
Use it from any HTTP client
Unpaid requests get 402 Payment Required with x402 payment instructions. Any x402-aware client signs a gasless USDC authorization (EIP-3009) and retries automatically:
import asyncio
from eth_account import Account
from x402.client import x402Client
from x402.http.clients.httpx import wrapHttpxWithPayment
from x402.mechanisms.evm.exact import register_exact_evm_client
account = Account.from_key("0x...funded-wallet-key...")
client = x402Client(); register_exact_evm_client(client, account)
async def main():
async with wrapHttpxWithPayment(client, base_url="https://nutriref.xyz") as http:
r = await http.get("/v1/nutrition/detail/2012128")
print(r.json())
asyncio.run(main())
Response example
GET /v1/nutrition/detail/173944:
{
"fdc_id": 173944,
"description": "Banana, raw",
"data_type": "Foundation",
"serving_size": 100, "serving_size_unit": "g",
"calories": 89.0, "protein": 1.1, "fat": 0.3,
"carbs": 22.8, "fiber": 2.6, "sugar": 12.2,
"sodium": 1.0, "cholesterol": null, "saturated_fat": 0.1,
"vitamin_c": 8.7, "calcium": 5.0, "iron": 0.3, "potassium": 358.0
}
Self-hosting
NutriRef is open source; the live instance at nutriref.xyz is one deployment among many possible. To run your own:
cp .env.example .env
# fill in USDA_API_KEY (free at https://fdc.nal.usda.gov/api-key-signup.html)
# and X402_RECEIVER_ADDRESS (an EVM address that should receive payments)
docker compose up --build
curl http://localhost:8000/health
Configuration
| 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.
Architecture
agent → x402 middleware → route handler → cache (Redis) → USDA FDC API
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.
Tests
pip install -e ".[dev]"
pytest
Example: Claude agent that uses NutriRef
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.
Repo layout
app/ # FastAPI service
main.py # app factory + x402 init
routes/ # search, detail, compare, recipe
landing.py # / (public landing page)
discovery.py # /.well-known/x402, /llms.txt, /.well-known/ai-plugin.json, /logo.svg
usda.py # async USDA client
cache.py # Redis wrapper
normalize.py # USDA → flat 13-nutrient schema
mcp_server/ # MCP server wrapper for agent use
examples/ # worked agent examples (meal planner)
scripts/ # CDP wallet bootstrap + payer-side test
tests/ # pytest + respx + fakeredis
Acknowledgments
- USDA FoodData Central for the data.
- x402 for the payment protocol.
fastapi-x402for the server middleware (with a small EIP-712 patch we apply at startup for Base mainnet USDC).
Recommended MCP Servers
How it compares
USDA nutrition plus x402 billing MCP, not a general web search or brand data server.
FAQ
Who is Nutriref MCP for?
Developers building AI agents or APIs that need USDA nutrition lookups with per-call USDC micropayments on Base.
When should I use Nutriref MCP?
Use it in Build when you integrate meal analysis, macro logging, or shopping features that must cite USDA data and meter usage per call.
How do I add Nutriref MCP to my agent?
Install the mcpb release v0.2.2 from the nutriref-api GitHub release, register stdio transport in your MCP client, and configure x402 USDC on Base for pay-per-call access.