MCP server de NutriRef
Proporciona datos nutricionales estructurados del USDA a agentes de IA mediante micropagos por llamada usando el protocolo x402.
También conocido como Younghef/nutriref-api, nutriref-api
- Stars
- 1
- Herramientas
- —
- Descargas, 30 días
- —
- Última versión
- 0.2.3
- Último commit
- 15 jun 2026
- Licencia
- MIT
¿Qué es NutriRef MCP?
NutriRef es un MCP server. Proporciona datos nutricionales estructurados del USDA a agentes de IA mediante micropagos por llamada usando el protocolo x402.
Resumen generado a partir del README del proyecto
Acerca del MCP server de NutriRef
NutriRef proporciona información nutricional estructurada de USDA FoodData Central a agentes de IA a través de un sistema de micropagos único. En lugar de las tradicionales API keys o la autenticación humana, utiliza el protocolo x402 para facilitar pagos automatizados en USDC. Esto permite que los agentes paguen pequeñas cantidades, que van desde $0.001 hasta $0.005 por solicitud, directamente desde una wallet con fondos en la mainnet de Base.
Los desarrolladores pueden integrar este MCP server en clientes MCP como Claude Desktop o Claude Code instalando el paquete nutriref-mcp vía PyPI. El servidor expone cuatro herramientas específicas: nutrition_search, nutrition_detail, nutrition_compare y nutrition_recipe. Los usuarios deben proporcionar una clave privada de pago en su configuración para habilitar el ciclo de pago automatizado. El sistema utiliza un caché de Redis para asegurar que las solicitudes repetidas de los mismos datos se devuelvan rápidamente sin realizar llamadas adicionales al USDA.
Esta configuración está diseñada para agentes autónomos que necesitan datos nutricionales fiables sin procesos de registro manuales. Aunque el servicio en vivo está alojado en nutriref.xyz, el software es de código abierto y puede auto-alojarse usando Docker con una API key personal del USDA.
Qué puedes hacer con él
- 1Buscar alimentos específicosUn agente de IA puede buscar información nutricional de diversos alimentos mediante una consulta de búsqueda.
- 2Obtener perfiles de nutrientes detalladosUn desarrollador puede instruir a un agente para que obtenga el esquema completo de 13 nutrientes para un ID de alimento específico.
- 3Comparar valores nutricionales entre alimentosUn agente puede identificar qué alimento tiene el mayor contenido de proteína o el menor contenido de sodio.
- 4Calcular totales nutricionales de recetasUna IA puede escalar los valores de los nutrientes por peso y sumarlos para proporcionar los totales de una receta específica.
Escrito a partir del README del proyecto. Cada caso de uso se verifica con una cita del mismo.
Configuración
NUTRIREF_BASE_URLPAYER_PRIVATE_KEY
| Nombre | Descripción | Tipo |
|---|---|---|
| NUTRIREF_BASE_URL | — | |
| PAYER_PRIVATE_KEY | — |
Verificaciones automáticas
Ejecutado 15 nov 2026Informe completo →Aún no verificado. Un servidor necesita una puntuación de 80, ningún hallazgo grave y suficientes datos para que podamos revisarlo. Cómo funcionan las verificaciones · Qué corregir para obtener más puntos
- Repositorio de origen vinculado y accesibleyounghef/nutriref-api is public and reachablegithub.com/younghef/nutriref-api ↗Aprobado
- El paquete indica este repositorio como su origenNo verificado
- Procedencia de la compilación (atestación de Sigstore)No verificado
- Licencia de código abierto (OSI)MITspdx.org/licenses/MIT.html ↗Aprobado
- Commit o lanzamiento en el último añoLast commit or release 2026-06-15github.com/younghef/nutriref-api ↗Aprobado
- OpenSSF ScorecardNo verificado
- El nombre del paquete no es similar a un paquete popularNo verificado
- No hay avisos críticos en el paquete ni en sus dependenciasNo verificado
- Sin instrucciones ocultas para el modelo0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersAprobado
- Las herramientas destructivas están etiquetadasNo verificado
- El endpoint remoto responde al handshake de MCPNo verificado
README
Ver en GitHubNutriRef
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).
Preguntas sobre NutriRef MCP
¿Cuánto cuesta usar NutriRef?
Los costos oscilan entre $0.001 y $0.005 en USDC por solicitud, dependiendo del endpoint utilizado.
¿Necesito una API key o autenticación humana para usar esto?
No, el servicio utiliza el protocolo de micropagos x402, que no requiere registro ni API keys.