NutriRef MCP sunucusu
x402 protokolünü kullanarak çağrı başına mikro ödeme yöntemiyle yapay zeka ajanlarına yapılandırılmış USDA besin verileri sağlar.
Ayrıca bilinen adı Younghef/nutriref-api, nutriref-api
- Yıldızlar
- 1
- Araçlar
- —
- İndirmeler, 30 gün
- —
- En son sürüm
- 0.2.3
- Son commit
- 15 Haz 2026
- Lisans
- MIT
NutriRef MCP nedir?
NutriRef bir MCP sunucusudur. x402 protokolünü kullanarak çağrı başına mikro ödeme yöntemiyle yapay zeka ajanlarına yapılandırılmış USDA besin verileri sağlar.
Özet, projenin README dosyasından oluşturuldu
NutriRef MCP sunucusu hakkında
NutriRef, benzersiz bir mikro ödeme sistemi aracılığıyla yapay zeka ajanlarına yapılandırılmış USDA FoodData Central besin bilgilerini sağlar. Geleneksel API anahtarları veya insan doğrulaması yerine, USDC ile otomatik ödemeleri kolaylaştırmak için x402 protokolünü kullanır. Bu sayede ajanlar, Base mainnet üzerindeki fonlanmış bir cüzdandan istek başına 0.001$ ile 0.005$ arasında değişen küçük miktarları doğrudan ödeyebilir.
Geliştiriciler, PyPI üzerinden nutriref-mcp paketini yükleyerek bu sunucuyu Claude Desktop veya Claude Code gibi MCP istemcilerine entegre edebilirler. Sunucu dört spesifik araç sunar: nutrition_search, nutrition_detail, nutrition_compare ve nutrition_recipe. Kullanıcıların, otomatik ödeme döngüsünü etkinleştirmek için yapılandırmalarında bir ödeyici özel anahtarı (payer private key) sağlamaları gerekir. Sistem, aynı veri için tekrarlanan isteklerin ek USDA çağrıları yapmadan hızlıca döndürülmesini sağlamak için bir Redis önbelleği kullanır.
Bu kurulum, manuel kayıt süreçlerine ihtiyaç duymadan güvenilir besin verilerine ihtiyaç duyan otonom ajanlar için tasarlanmıştır. Canlı servis nutriref.xyz adresinde barındırılsa da, yazılım açık kaynaklıdır ve kişisel bir USDA API anahtarı ile Docker kullanılarak kendi sunucunuzda barındırılabilir.
Neler yapabilirsiniz
- 1Belirli gıda maddelerini aramaBir yapay zeka ajanı, bir arama sorgusu kullanarak çeşitli gıdaların besin bilgilerini sorgulayabilir.
- 2Detaylı besin profillerini almaBir geliştirici, bir ajana belirli bir gıda ID'si için 13 besin maddesini içeren tam şemayı getirmesi talimatını verebilir.
- 3Gıdalar arasındaki besin değerlerini karşılaştırmaBir ajan, hangi gıda maddesinin en yüksek protein veya en düşük sodyum içeriğine sahip olduğunu belirleyebilir.
- 4Tarif besin toplamlarını hesaplamaBir yapay zeka, besin değerlerini ağırlığa göre ölçeklendirebilir ve belirli bir tarif için toplam değerleri sağlamak amacıyla bunları toplayabilir.
Projenin README dosyasından alınmıştır. Her kullanım durumu, oradaki bir alıntı ile kontrol edilir.
Yapılandırma
NUTRIREF_BASE_URLPAYER_PRIVATE_KEY
| Ad | Açıklama | Sunucu |
|---|---|---|
| NUTRIREF_BASE_URL | — | |
| PAYER_PRIVATE_KEY | — |
Otomatik kontroller
Çalıştırıldı 15 Kas 2026Tam rapor →Henüz doğrulanmadı. Bir sunucunun 80 puana, ciddi bir bulgu olmamasına ve kontrol edebilmemiz için yeterli veriye ihtiyacı vardır. Kontroller nasıl çalışır · Daha fazla puan için nelerin düzeltileceği
- Kaynak deposu bağlantılı ve erişilebiliryounghef/nutriref-api is public and reachablegithub.com/younghef/nutriref-api ↗Geçti
- Paket, bu depoyu kaynağı olarak gösteriyorKontrol edilmedi
- Derleme kökeni (Sigstore onayı)Kontrol edilmedi
- Açık kaynak lisansı (OSI)MITspdx.org/licenses/MIT.html ↗Geçti
- Son bir yıl içinde commit veya sürüm mevcutLast commit or release 2026-06-15github.com/younghef/nutriref-api ↗Geçti
- OpenSSF ScorecardKontrol edilmedi
- Paket adı popüler bir pakete yakın değilKontrol edilmedi
- Pakette veya bağımlılıklarında kritik uyarı yokKontrol edilmedi
- Modele yönelik gizli talimat yok0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersGeçti
- Yıkıcı araçlar etiketlenmişKontrol edilmedi
- Uzak uç nokta MCP el sıkışmasına yanıt veriyorKontrol edilmedi
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).
NutriRef MCP soruları
NutriRef kullanmanın maliyeti nedir?
Kullanılan uç noktaya bağlı olarak istek başına maliyet USDC cinsinden 0.001$ ile 0.005$ arasındadır.
Bunu kullanmak için bir API anahtarına veya insan doğrulamasına ihtiyacım var mı?
Hayır, servis kayıt veya API anahtarı gerektirmeyen x402 mikro ödeme protokolünü kullanır.