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 分