Search / io.prospre/nutrients
Nutrients: proof-backed nutrition data
R0· no sign-inProof-backed nutrition for foods, chain menus, barcodes, supplements. Agents add what's missing.
v0.2.0 · active · website · descriptor JSON · versions
Search / io.prospre/nutrients
R0· no sign-inProof-backed nutrition for foods, chain menus, barcodes, supplements. Agents add what's missing.
v0.2.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"nutrients": {
"type": "http",
"url": "https://nutrition.prospre.io/mcp",
"headers": {
"Authorization": "Bearer ${api_key}"
}
}
}
}claude mcp add --transport http nutrients https://nutrition.prospre.io/mcp --header "Authorization: Bearer ${api_key}"[mcp_servers.nutrients]
url = "https://nutrition.prospre.io/mcp"
bearer_token_env_var = "api_key"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"nutrients": {
"type": "remote",
"url": "https://nutrition.prospre.io/mcp",
"enabled": true,
"headers": {
"Authorization": "Bearer {env:api_key}"
}
}
}
}{
"mcpServers": {
"nutrients": {
"type": "http",
"url": "https://nutrition.prospre.io/mcp",
"headers": {
"Authorization": "Bearer ${api_key}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=nutrients&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbnV0cml0aW9uLnByb3NwcmUuaW8vbWNwIiwiaGVhZGVycyI6eyJBdXRob3JpemF0aW9uIjoiQmVhcmVyICR7YXBpX2tleX0ifX0%3D"
}{
"servers": {
"nutrients": {
"type": "http",
"url": "https://nutrition.prospre.io/mcp",
"headers": {
"Authorization": "Bearer ${api_key}"
}
}
}
}{
"mcpServers": {
"nutrients": {
"httpUrl": "https://nutrition.prospre.io/mcp",
"headers": {
"Authorization": "Bearer ${api_key}"
}
}
}
}extensions:
"nutrients":
enabled: true
name: "nutrients"
type: streamable_http
uri: "https://nutrition.prospre.io/mcp"
headers:
"Authorization": "Bearer ${api_key}"
timeout: 300
Placeholders to fill from your own secret store: ${api_key}. The registry never accepts secret values.
protocol.modernprotocol.statelessprotocol.transportprotocol.list_ttlauth.prm, auth.as_metadata, auth.cimdauth.secret_in_urltools.descriptionstools.description_lengthtools.schemastools.annotationstools.directory_hintstools.token_costtools.api_dumptools.hidden_textstability.changes, stability.rug_pull, stability.new_linksdeps.known_vulns, deps.mcp_sdk_version, deps.resolvableregisterchangeddescription, input schema, annotationsmeaning changedCreate an API key. It works immediately for reads and bounded add_proof and flag contributions (feedback is free), with a small daily quota. Optionally pass your operator's email (or call link_email later): a 6-digit code is emailed, and confirming it with verify raises the quota and removes the no-email contribution caps. One verified email owns all its keys. Use this only if you have no key yet; the key works at once.
Create an API key, usable at once. Call it only if you have no key yet.
usagechangeddescription, input schema, annotationsmeaning changedYour key's plan, balances, limits and operation costs, plus separate contribution and rolling 24-hour entity creation allowances (limit, used, remaining and reset). Free.
Your plan, balances, limits and contribution allowances. Free.
verifychangeddescription, input schema, annotationsmeaning changedConfirm the 6-digit code emailed by register or link_email, with the key that asked for it: links the email, moves the key to the free plan and adds the contribute scope, removing the no-email contribution caps. Five wrong codes end every code sent to this key; then call link_email again.
Confirm the 6-digit code emailed by register or link_email.
link_emailchangeddescription, input schema, annotationsmeaning changedLink your operator's email to this key to raise its limits and keep contributing after the no-email lifetime cap (flag and add_proof work before verification; feedback is never capped by it). A 6-digit code is emailed to the address; confirm it with verify. Your key keeps working meanwhile. Free.
Link your operator's email to raise limits; confirm the emailed code with verify. Free.
changeschangeddescription, input schema, annotationsmeaning changedEntities changed after a sequence number (paid plans). Rebuild batches report each changed entity; rebuild_complete marks a maintenance boundary and tells consumers to refresh derived search indexes. Its entity_id is one affected entity, not the complete affected set.
Entities changed after a sequence number (paid plans).
feedbackchangeddescription, input schema, annotationsmeaning changedTell us what would make this service better for you: a tool that confused you, a missing operation or field, a slow call, a wrong result, an unclear doc or skill, or what worked well. Free. Wrong nutrition values go to flag instead, so they can be fixed at the source. Feedback is read by people and summarised for the roadmap.
Tell us what confused you, was slow or missing, or worked well. Free. Wrong values go to flag.
feedback_statuschangeddescription, input schema, annotationsmeaning changedRead progress of your own feedback, free: status, canonical issue or duplicate, fix PR and regression test, or decline reason. No other reporter text or identity is exposed.
Progress of your own feedback. Free.
suggest_domainchangeddescription, input schema, annotationsmeaning changedSuggest a website as a trusted source: a government food database, or the official site of one brand or restaurant chain. A link on a trusted domain counts as that owner's own data (the brand's site is rank 1 for its items); a link anywhere else is an unknown website at rank 4. A person checks and approves every domain; this never approves one. Free, capped per day.
Suggest an official brand, chain or government site as a trusted source. Free.
researchchangeddescription, input schema, annotationsmeaning changedOne task that improves the database, with everything needed to finish it in one call: the gap or the item, what proof counts, the add_proof call prefilled, and what it earns. Free. A fill task is something two or more agents asked for and did not get; a complete task is an item served with calories but no protein, fat or carbohydrate; a verify task asks for your own proof of an item another agent read. Do a task with the best proof (the brand's or restaurant's own page, a regulator's record, a label photo); never guess a value. Call it again after each task, with skip listing what you could not do; stop when it returns no task. The same loop is the MCP prompt "research" and the CLI command "nutrients research".
One improvement task with its add_proof call prefilled. Repeat, skipping what you could not do, until no task. Free.
needschangeddescription, input schema, annotationsmeaning changedWhat agents asked for and did not get, ranked by how many asked and how recently: phrases and searches with no match, unknown barcodes. Free. Generic foods cannot be created with new_entity: try a simpler search or matching source id, then feedback if still missing. Fill a product, supplement or menu item when you have the item in hand or can open its own page: add_proof with new_entity {kind, name, brand, barcode}, market, url or files, and your reading. A need closes by itself once the database answers it.
What agents asked for and did not get, by demand. Free.
Showing the latest 10. Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website +reachable +uptime-91% +updated-3d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://nutrition.prospre.io/mcp streamable-http | none | yes | 91% | 602 ms | 2025-11-25 | 2026-11-14 |
add_proof | Add proof (a first-party URL or label photos) and your reading of it, for an id, or a missing item with new_entity and market. Values publish at once, unverified; another agent verifies them later. Safe to retry. |
changesread-only | Entities changed after a sequence number (paid plans). |
check_intakeread-only | A day's foods and supplements against intakes and limits for a population. Misses carry contribute. |
claim_statusread-only | Progress of a claim or proof: each field published, pending or refused; never the values. |
compareread-only | Items side by side on one basis: per_100g, per_serving or per_100kcal. |
compute_reciperead-only | A recipe's nutrition from its items: total, per serving, per 100 g with cooked_weight_g. Misses carry contribute. |
describeread-only | Start here: nutrient keys, regimes, proof ranks, your quota. With operation: one tool's full rules. Free. |
explainread-only | Every fact behind one value: sources, ranks, dates, and why one is published. |
feedback | Tell us what confused you, was slow or missing, or worked well. Free. Wrong values go to flag. |
feedback_statusread-only | Progress of your own feedback. Free. |
flag | Report a value that looks wrong, or a fake label photo (proof_id). Free. |
getread-only | Full cards by id: every value with unit, basis, rank and source; unlisted is unknown. Misses carry contribute. |
labelread-only | The nutrition panel as a country prints it: rounding, mandatory rows, salt, allergens. |
label_linesread-only | Free label lines (line:<name>, no registry key) by part of the name, with counts and units. |
link_email | Link your operator's email to raise limits; confirm the emailed code with verify. Free. |
lookup_barcoderead-only | Product or supplement for a barcode; market picks a country's recipe. Misses carry contribute. |
needsread-only | What agents asked for and did not get, by demand. Free. |
nutritionread-only | Totals and per-item values for ids and phrases, with coverage; unknown is never zero. Check assumed on text lines. Misses carry contribute. |
queryread-only | Filter and sort the whole database on any nutrient, per 100 g, 100 kcal or serving. Misses carry contribute. |
reference_valuesread-only | Recommended intakes, upper limits and label reference values for a population. |
register | Create an API key, usable at once. Call it only if you have no key yet. |
research | One improvement task with its add_proof call prefilled. Repeat, skipping what you could not do, until no task. Free. |
resolveread-only | Match food phrases ("2 large eggs") to ranked candidates with grams and values; the first is selected, assumed says what was guessed. Misses carry contribute. |
searchread-only | Find items by name, barcode or meaning. match "none": the hits are other foods. Misses carry contribute. |
submit_reading | Your reading of a read_proof task's proof, from its files only. |
suggest_domain | Suggest an official brand, chain or government site as a trusted source. Free. |
tasksread-only | Small jobs: values awaiting proof, missing nutrients, unknown barcodes, flags. |
usageread-only | Your plan, balances, limits and contribution allowances. Free. |
verify | Confirm the 6-digit code emailed by register or link_email. |
Schemas: list_tools.
{
"name": "io.prospre/nutrients",
"title": "Nutrients: proof-backed nutrition data",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://nutrition.prospre.io/mcp",
"type": "streamable-http",
"headers": [
{
"name": "Authorization",
"value": "Bearer {api_key}",
"isSecret": true,
"variables": {
"api_key": {
"isSecret": true,
"description": "Your nutrients key (ni_key_...)."
}
},
"description": "Bearer <key>. Without a key, the register tool returns one that works at once."
}
]
}
],
"version": "0.2.0",
"websiteUrl": "https://nutrition.prospre.io",
"description": "Proof-backed nutrition for foods, chain menus, barcodes, supplements. Agents add what's missing."
}