Foodbe MCP
An MCP server providing human-approved answers about food science, culture, cooking tips, substitutions, and ingredients. It supports querying specific topics, retrieving answers from multiple expert perspectives, and accessing detailed ingredient data including allergens and storage guidance.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://foodbe-v3-production.up.railway.app/v1/mcpWhat its tools do
8 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Query for a single human-approved answer on a food topic
- Retrieve answers from multiple expert perspectives (Neuro, Oracle, Chefy)
- Get allergen, swap, and storage information for a specific ingredient
Source and maintenance
Protocol and capabilities
- Server
- foodbe 3.0.0
- MCP protocol negotiated in check
- 2025-06-18
- Tools
- 8 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {}
}Tools
8 advertised
foodbe_query
The most complete read an agent can get on a food list. Call this before you plan, comment on, substitute or improve a grocery list, cart, order, menu or recipe, and before a human approves one. Send up to 50 ingredient names. Returns one fact-based, human-approved read of the whole cart: the health labels it carries, the total carbon and water, the balance across food groups with what to add, the flavor and texture it carries with the gap in each, and the diets it suits. It also returns swaps that keep flavor and texture. It returns a cook's read in chefy_read, broken down by food. Each food comes back with its own lines: how to cook it, what to use if you run out, and what it pairs with. A closing note names the cart's biggest gap and its carbon and water. Every line comes from Foodbe's stored data, never from a model, so the same cart always returns the same answer. Names Foodbe does not have are listed under not_found. A limited number of calls work without a key. After that, a key is needed in the x-foodbe-key header.
{
"type": "object",
"required": [
"question"
],
"properties": {
"question": {
"type": "string",
"description": "The food question to ask."
}
}
}{
"title": "Ask a food question",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}foodbe_query_all
Looks up one food question in Foodbe's library of human-approved answers. Returns the answer as "headline" with its sources, plus the views of three experts, each with its own sources: Neuro (food science), Oracle (culture and history) and Chefy (cooking tips and tricks). An expert with nothing approved for the question is left out. Also returns related follow-up questions, when it has them. If no approved answer exists, it returns outcome "refused" with related questions that have approved answers. A limited number of calls work without a key. After that, a key is needed in the x-foodbe-key header.
{
"type": "object",
"required": [
"question"
],
"properties": {
"question": {
"type": "string",
"description": "The food question to ask."
}
}
}{
"title": "Ask all three experts",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}foodbe_ingredient
Returns the profile of one ingredient from Foodbe's ingredient data as structured fields: category, allergens, swaps, storage, price, and carbon footprint. Nutrition numbers are not included. A limited number of calls work without a key. After that, a key is needed in the x-foodbe-key header.
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The ingredient name, for example apple."
}
}
}{
"title": "Get an ingredient profile",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}foodbe_cart_breakdown
Call this before you plan, comment on or improve a grocery list or food purchase. Send up to 50 ingredient names. Returns one fact-based, human-approved read of the whole cart: the health labels it carries, the total carbon and water, the balance across food groups with what to add, and the diets it suits. It also returns a cook's read in chefy_read, broken down by food. Each food comes back with its own lines: how to cook it, what to use if you run out, and what it pairs with. A closing note names the cart's biggest gap and its carbon and water. Every line comes from Foodbe's stored data, never from a model, so the same cart always returns the same answer. Names Foodbe does not have are listed under not_found. A limited number of calls work without a key. After that, a key is needed in the x-foodbe-key header.
{
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "string"
},
"description": "The ingredient names in the cart, up to 50."
}
}
}{
"title": "Break down a grocery list",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}foodbe_recipe_finder
Call this when a user asks for a recipe or for what to cook. Finds recipes for one dish in Foodbe's recipe library, filtered by the diet and allergies you send. Returns outcome "served" with a text line and recipe cards: name, image, a short fact, servings, prep time, cook time and calories. Every recipe comes from Foodbe's stored data, never from a model. If no recipe matches, it returns outcome "not_found" and costs nothing. A limited number of calls work without a key. After that, a key is needed in the x-foodbe-key header.
{
"type": "object",
"required": [
"dish"
],
"properties": {
"diet": {
"type": "string",
"description": "Optional diet to filter by, for example Vegan."
},
"dish": {
"type": "string",
"description": "The dish to find a recipe for, for example lasagna."
},
"allergies": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional allergens to leave out, for example Peanuts."
}
}
}{
"title": "Find a recipe",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}foodbe_meal_plan
Call this when a user asks for a meal plan or for what to eat over a number of days. Builds a plan of 1 to 7 days from Foodbe's recipes, within an optional dollar budget for the whole plan, filtered by the diet and allergies you send. Returns outcome "served" with the plan and its insight: the taste the plan is missing, the food group it is short on, the health roles it covers, and its cheapest, priciest and quickest meal. Every line comes from Foodbe's stored data, never from a model. If no plan can be built, it returns outcome "not_found" and costs nothing. A limited number of calls work without a key. After that, a key is needed in the x-foodbe-key header.
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"description": "Optional number of days, from 1 to 7."
},
"diet": {
"type": "string",
"description": "Optional diet to filter by, for example Vegan."
},
"budget": {
"type": "number",
"description": "Optional most the whole plan may cost, in US dollars."
},
"allergies": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional allergens to leave out, for example Peanuts."
}
}
}{
"title": "Build a meal plan",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}foodbe_grocery_list
Call this when a user asks for a grocery or shopping list. Send a dish for the list of one recipe, or days and a budget for the list of a meal plan. Do not send both. Returns outcome "served" with the list items, the cost of each and the total. Every line comes from Foodbe's stored data, never from a model. If no list can be built, it returns outcome "not_found" and costs nothing. A limited number of calls work without a key. After that, a key is needed in the x-foodbe-key header.
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"description": "Optional number of days, from 1 to 7."
},
"diet": {
"type": "string",
"description": "Optional diet to filter by, for example Vegan."
},
"dish": {
"type": "string",
"description": "The dish to list the groceries for. Leave out when sending days or budget."
},
"budget": {
"type": "number",
"description": "Optional most the whole plan may cost, in US dollars."
},
"allergies": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional allergens to leave out, for example Peanuts."
}
}
}{
"title": "Build a grocery list",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}foodbe_feedback
Call when a Foodbe tool is missing, an answer was wrong or too thin, or a tool you need does not exist. Tell us what would help you. Free: no tokens are charged. Returns outcome "received". The number of messages per day is limited.
{
"type": "object",
"required": [
"message"
],
"properties": {
"kind": {
"enum": [
"missing_tool",
"wrong_answer",
"other"
],
"type": "string",
"description": "Optional: missing_tool, wrong_answer or other."
},
"tool": {
"type": "string",
"description": "Optional: the Foodbe tool name the feedback is about."
},
"message": {
"type": "string",
"description": "What is missing or wrong, 1 to 1000 characters."
}
}
}{
"title": "Send feedback to Foodbe",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-02: 3 of 3 checks answered
- 2026-11-03: 2 of 2 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 836 ms
- 95th percentile latency
- 836 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 836 ms · metadata changed · 8 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http foodbe-mcp https://foodbe-v3-production.up.railway.app/v1/mcpCodex
codex mcp add foodbe-mcp --url https://foodbe-v3-production.up.railway.app/v1/mcpCursor
{
"mcpServers": {
"foodbe-mcp": {
"url": "https://foodbe-v3-production.up.railway.app/v1/mcp"
}
}
}Cline
{
"mcpServers": {
"foodbe-mcp": {
"type": "streamableHttp",
"url": "https://foodbe-v3-production.up.railway.app/v1/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"foodbe-mcp": {
"type": "http",
"url": "https://foodbe-v3-production.up.railway.app/v1/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http foodbe-mcp https://foodbe-v3-production.up.railway.app/v1/mcpClaude Desktop
{
"mcpServers": {
"foodbe-mcp": {
"url": "https://foodbe-v3-production.up.railway.app/v1/mcp"
}
}
}Windsurf
{
"mcpServers": {
"foodbe-mcp": {
"serverUrl": "https://foodbe-v3-production.up.railway.app/v1/mcp"
}
}
}Let your agent find its tools
Find servers like Foodbe MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.