Skip to main content
ClaudeWave

Pay-per-call USDA nutrition API for AI agents. x402 + USDC on Base.

MCP ServersRegistry oficial0 estrellas0 forksPythonMITActualizado 2d ago
ClaudeWave Trust Score
87/100
Trusted
Passed
  • Open-source license (MIT)
  • Actively maintained (<30d)
  • Clear description
  • Topics declared
Last scanned: 6/11/2026
Install in Claude Code / Claude Desktop
Method: UVX (Python) · nutriref-mcp
Claude Code CLI
claude mcp add nutriref-api -- uvx nutriref-mcp
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "nutriref-api": {
      "command": "uvx",
      "args": ["nutriref-mcp"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Casos de uso

Resumen de MCP Servers

# NutriRef

[![NutriRef MCP server](https://glama.ai/mcp/servers/Younghef/nutriref-api/badges/score.svg)](https://glama.ai/mcp/servers/Younghef/nutriref-api)

**Pay-per-call USDA nutrition data for AI agents.** Structured FoodData Central via the [x402](https://www.x402.org/) 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](https://nutriref.xyz/openapi.json) · Swagger at [/docs](https://nutriref.xyz/docs) · Bazaar discovery at [/.well-known/x402](https://nutriref.xyz/.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:

```bash
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.):

```json
{
  "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:

```python
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`:

```json
{
  "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:

```bash
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](https://fdc.nal.usda.gov/api-key-signup.html) |
| `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

```bash
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](https://fdc.nal.usda.gov/) for the data.
- [x402](https://www.x402.org/) for the payment protocol.
- [`fastapi-x402`](https://pypi.org/project/fastapi-x402/) for the server middleware (with a small EIP-712 patch we apply at startup for Base mainnet USDC).
ai-agentscdpcoinbasefastapimcpnutritionusdax402

Lo que la gente pregunta sobre nutriref-api

¿Qué es Younghef/nutriref-api?

+

Younghef/nutriref-api es mcp servers para el ecosistema de Claude AI. Pay-per-call USDA nutrition API for AI agents. x402 + USDC on Base. Tiene 0 estrellas en GitHub y se actualizó por última vez 2d ago.

¿Cómo se instala nutriref-api?

+

Puedes instalar nutriref-api clonando el repositorio (https://github.com/Younghef/nutriref-api) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar Younghef/nutriref-api?

+

Nuestro agente de seguridad ha analizado Younghef/nutriref-api y le ha asignado un Trust Score de 87/100 (tier: Trusted). Revisa el desglose completo de comprobaciones superadas y flags en esta página.

¿Quién mantiene Younghef/nutriref-api?

+

Younghef/nutriref-api es mantenido por Younghef. La última actividad registrada en GitHub es de 2d ago, con 0 issues abiertos.

¿Hay alternativas a nutriref-api?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega nutriref-api en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: Younghef/nutriref-api
[![Featured on ClaudeWave](https://claudewave.com/api/badge/younghef-nutriref-api)](https://claudewave.com/repo/younghef-nutriref-api)
<a href="https://claudewave.com/repo/younghef-nutriref-api"><img src="https://claudewave.com/api/badge/younghef-nutriref-api" alt="Featured on ClaudeWave: Younghef/nutriref-api" width="320" height="64" /></a>

Más MCP Servers

Alternativas a nutriref-api