Younghef/nutriref-api

๐Ÿ“Š Data Platforms
0 Views
0 Installs

๐Ÿ โ˜๏ธ ๐ŸŽ ๐ŸชŸ ๐Ÿง - USDA FoodData Central nutrition for AI agents โ€” pay-per-call in USDC on Base via x402. Four tools (search, detail, compare, recipe) at $0.001โ€“$0.005 per call. No signup, no API keys; MCPB-packaged for one-click install.

Quick Install

One-Click IDE Configuration
claude_desktop_config.json
{
  "mcpServers": {
    "younghef-nutriref-api": {
      "command": "npx",
      "args": [
        "-y",
        "younghef-nutriref-api"
      ]
    }
  }
}
Or

Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.

Documentation Overview

NutriRef

NutriRef MCP server

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

MethodPathPriceCache
GET/v1/nutrition/search?q=&limit=$0.00124h
GET/v1/nutrition/detail/{fdc_id}$0.0027d
POST/v1/nutrition/compare$0.003derived
POST/v1/nutrition/recipe$0.005derived

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-mcp as the command to run it on demand. To work from a clone instead, pip install -e ".[mcp]" and set command to python with args: ["-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

VarRequiredDefaultPurpose
USDA_API_KEYyesโ€”Free key from fdc.nal.usda.gov
USDA_BASE_URLnohttps://api.nal.usda.gov/fdc/v1
REDIS_URLnoredis://redis:6379/0Response cache
X402_NETWORKnobase-sepoliabase for mainnet
X402_RECEIVER_ADDRESSyesโ€”EVM address that receives USDC
X402_FACILITATOR_URLnohttps://x402.org/facilitatorhttps://api.cdp.coinbase.com for mainnet
CDP_API_KEY_IDmainnet onlyโ€”Coinbase Developer Platform key ID
CDP_API_KEY_SECRETmainnet onlyโ€”Coinbase Developer Platform key secret
LOG_LEVELnoINFO

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

Related MCP Servers

1luvc0d3/metabase-mcp

๐Ÿ“‡ ๐Ÿ  - MCP server connecting Claude to Metabase with 28 tools for natural language data analysis, dashboard management, SQL queries, and automated insights. Features SQL guardrails, rate limiting, and audit logging.

๐Ÿ“Š Data Platforms0 views
aegis-dq/aegis-dq

๐Ÿ ๐Ÿ  ๐ŸŽ ๐ŸชŸ ๐Ÿง - Agentic data quality framework that runs structured rules against warehouses (DuckDB, BigQuery, Athena, Databricks, Postgres), diagnoses failures with LLM root cause analysis, and proposes SQL remediations. Every LLM decision is audit-logged with cost and latency.

๐Ÿ“Š Data Platforms0 views
alanpcf/brasil-data-mcp

๐Ÿ“‡ ๐Ÿ  ๐ŸŽ ๐ŸชŸ ๐Ÿง - Brazilian public data for AI agents โ€” companies (CNPJ), addresses (CEP), banks (BACEN), national holidays โ€” via BrasilAPI. No auth, no API key. Install: npx -y brasil-data-mcp.

๐Ÿ“Š Data Platforms0 views
Alessandro114/scala-mcp-server

๐Ÿ“‡ โ˜๏ธ ๐ŸŽ ๐ŸชŸ ๐Ÿง - Search and enrich data from 250M+ companies across 50+ countries. Company lookup by name, VAT, or ID, NACE sector search, and financial data from official EU business registries. Free tier: 50 lookups/month. Install: npx scala-mcp-server.

๐Ÿ“Š Data Platforms0 views

Engagement

Views
0
Installs
0
Upvotes
0

Views and upvotes are unique per visitor network (hashed IP). Installs count copy actions.

Status

Health: Not checked yet

We have not completed a health check for this listing yet.

No check timestamp yet.

Unclaimed listing (imported or pending owner verification). Claim it โ†’
โ˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Claim this listing

Promote this listing

Optional paid placement. Free listings stay free forever.

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.