MCP server NutriRef
Предоставляет структурированные данные о пищевой ценности USDA для AI-агентов через микроплатежи за каждый вызов с использованием протокола x402.
Также известен как Younghef/nutriref-api, nutriref-api
- Звёзды
- 1
- Инструменты
- —
- Загрузки, 30 дней
- —
- Последняя версия
- 0.2.3
- Последний коммит
- 15 июн. 2026 г.
- Лицензия
- MIT
Что такое NutriRef MCP?
NutriRef — это MCP server. Предоставляет структурированные данные о пищевой ценности USDA для AI-агентов через микроплатежи за каждый вызов с использованием протокола x402.
Сводка сгенерирована из README проекта
О NutriRef MCP server
NutriRef предоставляет структурированную информацию о пищевой ценности из базы USDA FoodData Central для AI-агентов через уникальную систему микроплатежей. Вместо традиционных API keys или аутентификации пользователя используется протокол x402, который позволяет проводить автоматические платежи в USDC. Это дает агентам возможность оплачивать небольшие суммы, от $0.001 до $0.005 за запрос, напрямую с пополненного кошелька в сети Base mainnet.
Разработчики могут интегрировать этот MCP server в такие MCP-клиенты, как Claude Desktop или Claude Code, установив пакет nutriref-mcp через PyPI. Сервер предоставляет четыре инструмента: nutrition_search, nutrition_detail, nutrition_compare и nutrition_recipe. Для активации цикла автоматических платежей пользователи должны указать приватный ключ плательщика в своей конфигурации. Система использует кэш Redis, чтобы повторные запросы одних и тех же данных возвращались быстро без дополнительных обращений к USDA.
Эта архитектура разработана для автономных агентов, которым необходимы надежные нутрициологические данные без необходимости ручной регистрации. Хотя основной сервис доступен по адресу nutriref.xyz, программное обеспечение является открытым исходным кодом и может быть развернуто локально с помощью Docker, используя личный USDA API key.
Что вы можете с ним делать
- 1Поиск конкретных продуктовAI-агент может искать информацию о пищевой ценности различных продуктов с помощью поискового запроса.
- 2Получение подробных профилей питательных веществРазработчик может дать агенту команду получить полную схему из 13 питательных веществ для конкретного ID продукта.
- 3Сравнение пищевой ценности продуктовАгент может определить, какой продукт содержит больше всего белка или меньше всего натрия.
- 4Расчет общей пищевой ценности рецептаAI может масштабировать значения питательных веществ в зависимости от веса и суммировать их, чтобы предоставить итоговые данные для конкретного рецепта.
Взято из README проекта. Каждый вариант использования проверен на соответствие цитате из него.
Конфигурация
NUTRIREF_BASE_URLPAYER_PRIVATE_KEY
| Название | Описание | Тип |
|---|---|---|
| NUTRIREF_BASE_URL | — | |
| PAYER_PRIVATE_KEY | — |
Автоматические проверки
Запущено 15 нояб. 2026 г.Полный отчёт →Еще не проверено. Для сервера требуется оценка 80, отсутствие серьезных проблем и достаточно данных для нашей проверки. Как работают проверки · Что исправить, чтобы получить больше баллов
- Связанный и доступный исходный репозиторийyounghef/nutriref-api is public and reachablegithub.com/younghef/nutriref-api ↗Пройдено
- Пакет указывает этот репозиторий как источникНе проверялось
- Происхождение сборки (аттестация Sigstore)Не проверялось
- Open source лицензия (OSI)MITspdx.org/licenses/MIT.html ↗Пройдено
- Коммит или релиз за последний годLast commit or release 2026-06-15github.com/younghef/nutriref-api ↗Пройдено
- OpenSSF ScorecardНе проверялось
- Имя пакета не похоже на популярный пакетНе проверялось
- Нет критических предупреждений в пакете или его зависимостяхНе проверялось
- Нет скрытых инструкций для модели0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersПройдено
- Деструктивные инструменты помеченыНе проверялось
- Удалённая конечная точка отвечает на рукопожатие MCPНе проверялось
README
Открыть на 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).
Вопросы о NutriRef MCP
Сколько стоит использование NutriRef?
Стоимость составляет от $0.001 до $0.005 в USDC за запрос, в зависимости от используемого эндпоинта.
Нужен ли мне API key или аутентификация пользователя для использования сервиса?
Нет, сервис использует протокол микроплатежей x402, который не требует регистрации или API keys.