Nutriref

io.github.Younghef由 GitHub 帳號 Younghef 發布v0.2.3更新於 Oct 25, 2026

Pay-per-call USDA nutrition for AI agents (x402 micropayments in USDC on Base).

已驗證STDIO僅桌面位置與生活金融

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助理取得 USDA FoodData Central 營養資料,並透過 x402 協定按次以 USDC 付費。

可以做什麼
依關鍵字搜尋 USDA 食物並列出每 100 克的營養成分,搜尋結果快取 24 小時、詳情快取 7 天。依 FDC ID 取得單一食物的完整營養詳情。針對多種食物逐項比較營養,列出蛋白質最高、鈉最低等勝出項目。依克數縮放食譜並加總各食材的營養。每次呼叫都會從已儲值的錢包自動付款。
適用情境
當助理需要結構化的營養資料、食物比較或食譜營養加總,且你願意為按次小額付費而儲值一個加密錢包、而非使用 API 金鑰時適用。
執行需求
以本機程序執行,從 PyPI 安裝(pip install nutriref-mcp)或以 uvx 隨需執行,需要 Python 環境。需要一個已儲值的錢包私鑰,透過 PAYER_PRIVATE_KEY 提供,錢包須在 Base 主網持有 USDC;可選用 NUTRIREF_BASE_URL 指定服務位址。需要連線至遠端端點的網路存取。
安裝前請注意
伺服器需要持有真實 USDC 的錢包私鑰(PAYER_PRIVATE_KEY),持有該金鑰即可控制資金,建議使用專用的低餘額錢包。每次工具呼叫都會花錢,約每次 0.001 至 0.005 美元。請求與付款授權會傳送至第三方服務 nutriref.xyz。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Nutriref,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

NutriRef

[NutriRef MCP server]

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

MethodPathPriceCache
GET/v1/nutrition/search?q=&limit=$0.00124h
GET/v1/nutrition/detail/{fdc_id}$0.0027d
POST/v1/nutrition/compare$0.003derived
POST/v1/nutrition/recipe$0.005derived

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 asynciofrom eth_account import Accountfrom x402.client import x402Clientfrom x402.http.clients.httpx import wrapHttpxWithPaymentfrom 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 --buildcurl http://localhost:8000/health

Configuration

VarRequiredDefaultPurpose
USDA_API_KEYyes—Free key from fdc.nal.usda.gov
USDA_BASE_URLnohttps://api.nal.usda.gov/fdc/v1
REDIS_URLnoredis://redis:6379/0Response cache
X402_NETWORKnobase-sepoliabase for mainnet
X402_RECEIVER_ADDRESSyes—EVM address that receives USDC
X402_FACILITATOR_URLnohttps://x402.org/facilitatorhttps://api.cdp.coinbase.com for mainnet
CDP_API_KEY_IDmainnet only—Coinbase Developer Platform key ID
CDP_API_KEY_SECRETmainnet only—Coinbase Developer Platform key secret
LOG_LEVELnoINFO

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 schemamcp_server/         # MCP server wrapper for agent useexamples/           # worked agent examples (meal planner)scripts/            # CDP wallet bootstrap + payer-side testtests/              # pytest + respx + fakeredis

Acknowledgments

來源:README.md,提交 248421f

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.2.3最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分