NutriRef MCP server
Menyediakan data nutrisi USDA yang terstruktur kepada AI agent melalui micropayments pay-per-call menggunakan protokol x402.
Juga dikenal sebagai Younghef/nutriref-api, nutriref-api
- Stars
- 1
- Tools
- —
- Unduhan, 30 hari
- —
- Versi terbaru
- 0.2.3
- Commit terakhir
- 15 Jun 2026
- Lisensi
- MIT
Apa itu NutriRef MCP?
NutriRef adalah MCP server. Menyediakan data nutrisi USDA yang terstruktur kepada AI agent melalui micropayments pay-per-call menggunakan protokol x402.
Ringkasan dibuat dari README proyek
Tentang NutriRef MCP server
NutriRef menyediakan informasi nutrisi USDA FoodData Central yang terstruktur kepada AI agent melalui sistem micropayment yang unik. Alih-alih menggunakan API keys tradisional atau autentikasi manusia, layanan ini menggunakan protokol x402 untuk memfasilitasi pembayaran otomatis dalam USDC. Hal ini memungkinkan agent untuk membayar jumlah kecil, mulai dari $0.001 hingga $0.005 per request, langsung dari wallet yang sudah terisi saldo di mainnet Base.
Developer dapat mengintegrasikan MCP server ini ke dalam client MCP seperti Claude Desktop atau Claude Code dengan menginstal package nutriref-mcp via PyPI. Server ini menyediakan empat tool spesifik: nutrition_search, nutrition_detail, nutrition_compare, dan nutrition_recipe. Pengguna harus menyediakan payer private key dalam konfigurasi mereka untuk mengaktifkan loop pembayaran otomatis. Sistem ini menggunakan Redis cache untuk memastikan bahwa request berulang untuk data yang sama dapat dikembalikan dengan cepat tanpa perlu melakukan panggilan USDA tambahan.
Setup ini dirancang untuk autonomous agent yang membutuhkan data nutrisi andal tanpa proses pendaftaran manual. Meskipun layanan live dihosting di nutriref.xyz, software ini bersifat open source dan dapat di-self-host menggunakan Docker dengan API key USDA pribadi Anda.
Apa yang bisa Anda lakukan dengannya
- 1Cari item makanan spesifikAI agent dapat mencari informasi nutrisi untuk berbagai makanan menggunakan query pencarian.
- 2Ambil profil nutrisi mendetailDeveloper dapat menginstruksikan agent untuk mengambil skema 13-nutrisi lengkap untuk ID makanan tertentu.
- 3Bandingkan nilai nutrisi antar makananAgent dapat mengidentifikasi makanan mana yang memiliki kandungan protein tertinggi atau natrium terendah.
- 4Hitung total nutrisi resepAI dapat menskalakan nilai nutrisi berdasarkan berat dan menjumlahkannya untuk memberikan total nutrisi pada resep tertentu.
Ditulis berdasarkan README proyek. Setiap use case diperiksa terhadap kutipan dari README tersebut.
Konfigurasi
NUTRIREF_BASE_URLPAYER_PRIVATE_KEY
| Nama | Deskripsi | Tipe |
|---|---|---|
| NUTRIREF_BASE_URL | — | |
| PAYER_PRIVATE_KEY | — |
Pengecekan otomatis
Berjalan 15 Nov 2026Laporan lengkap →Belum diverifikasi. Sebuah server memerlukan skor 80, tidak ada temuan serius, dan data yang cukup untuk kami periksa. Cara kerja checks · Yang perlu diperbaiki untuk menambah poin
- Source repository terhubung dan dapat dijangkauyounghef/nutriref-api is public and reachablegithub.com/younghef/nutriref-api ↗Lolos
- Nama paket mencantumkan repositori ini sebagai sumbernyaTidak diperiksa
- Provenance build (atestasi Sigstore)Tidak diperiksa
- Lisensi open source (OSI)MITspdx.org/licenses/MIT.html ↗Lolos
- Ada commit atau release dalam satu tahun terakhirLast commit or release 2026-06-15github.com/younghef/nutriref-api ↗Lolos
- OpenSSF ScorecardTidak diperiksa
- Nama package tidak mirip dengan package populerTidak diperiksa
- Tidak ada advisory kritis pada paket atau dependensinyaTidak diperiksa
- Tidak ada instruksi tersembunyi untuk model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersLolos
- Tools yang bersifat destruktif telah diberi labelTidak diperiksa
- Endpoint remote merespons handshake MCPTidak diperiksa
README
Lihat di 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).
Pertanyaan tentang NutriRef MCP
Berapa biaya untuk menggunakan NutriRef?
Biaya berkisar antara $0.001 hingga $0.005 dalam USDC per request tergantung pada endpoint yang digunakan.
Apakah saya memerlukan API key atau autentikasi manusia untuk menggunakan ini?
Tidak, layanan ini menggunakan protokol micropayment x402 yang tidak memerlukan pendaftaran atau API keys.