For AI agents & developers
Fork n Ladle MCP Server
Connect any Model Context Protocol client (Claude Desktop, Cursor, Smithery, custom agents) to the Fork n Ladle menu. Let AI assistants help customers plan complete Shabbos menus, calculate portions for any guest count, check live ordering status, and link straight to the order page.
https://forknladle.com/mcpQuick start — Claude Desktop / Cursor
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart.
{
"mcpServers": {
"fork-n-ladle": {
"url": "https://forknladle.com/mcp"
}
}
}For Cursor: Settings → Features → Model Context Protocol → Add new MCP server → paste the URL above.
Test from a terminal
List all tools:
curl -s -X POST https://forknladle.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Fetch live menu categories:
curl -s -X POST https://forknladle.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"list_menu_categories","arguments":{}}
}'Meal-planning tools
Six tools for building and pricing Shabbos menus. Use them in sequence: discover categories → search dishes → get details → calculate portions → suggest a full menu → confirm ordering is open.
list_menu_categoriesList menu categories and dietary tags
Returns all food categories and tags from the live menu with dish counts. Call this first to discover what's on the menu before searching. Categories include courses (soup, main, side, dessert, appetizer) and dietary tags (chicken, beef, fish, vegetable, kugel, salad, dip, bread) and event types (shabbos, weeknight, tableware).
No parameters.
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_menu_categories",
"arguments": {}
}
}Sample response (content[0].text)
{
"categories": [
{ "tag": "shabbos", "dishCount": 42 },
{ "tag": "main", "dishCount": 18 },
{ "tag": "side", "dishCount": 14 },
{ "tag": "soup", "dishCount": 8 },
{ "tag": "chicken", "dishCount": 12 },
{ "tag": "dessert", "dishCount": 9 }
]
}search_menuSearch the Fork n Ladle menu
Search available dishes by keyword, category/tag, or price range. Returns dish name, price, tags, image URL, handle, and a short description. Use list_menu_categories first to see valid category values.
Parameters
querystringoptionalFree-text search in dish name or description (max 100 chars).categorystringoptionalFilter by tag/category, e.g. 'soup', 'main', 'side', 'chicken', 'shabbos'.max_pricenumberoptionalMaximum price per unit in USD.limitintegeroptionalMax results to return (1–50). Default 20.Sample request
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "search_menu",
"arguments": {
"category": "soup",
"limit": 5
}
}
}Sample response (content[0].text)
{
"count": 3,
"dishes": [
{
"handle": "chicken-vegetable-soup",
"title": "Chicken Vegetable Soup",
"price": 38,
"tags": ["soup", "chicken", "shabbos"],
"image": "https://forknladle.com/cdn/images/chicken-soup.jpg",
"url": "https://forknladle.com/products/chicken-vegetable-soup",
"description": "Classic chicken soup loaded with vegetables..."
}
]
}get_dishGet full details for a dish
Returns complete details for a single dish by its handle (from search_menu). Includes full description, price, all tags, all images, and SKU. Call this before calculate_portions to confirm serving size and availability.
Parameters
handlestringrequiredThe dish handle from search_menu results.Sample request
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_dish",
"arguments": {
"handle": "chicken-vegetable-soup"
}
}
}Sample response (content[0].text)
{
"handle": "chicken-vegetable-soup",
"title": "Chicken Vegetable Soup",
"price": 38,
"sku": "SOUP-CVS-L",
"tags": ["soup", "chicken", "shabbos"],
"image": "https://forknladle.com/cdn/images/chicken-soup.jpg",
"additionalImages": [],
"url": "https://forknladle.com/products/chicken-vegetable-soup",
"description": "Classic chicken soup loaded with seasonal vegetables, slow-cooked for rich flavor. Serves 8."
}calculate_portionsCalculate how many units to order for a guest count
Given a dish handle and a number of guests, returns the recommended number of units to order with a reasoning note. Based on standard Shabbos meal portioning (mains: ~7 servings/unit; soups, sides, salads: ~8; appetizers, desserts: ~10; dips: ~12). Call get_dish first to confirm the dish exists.
Parameters
handlestringrequiredDish handle from search_menu or get_dish.guestsintegerrequiredNumber of guests (people) to serve (1–500).course_roleenumoptionalRole in the meal: 'main' | 'side' | 'soup' | 'appetizer' | 'dessert' | 'salad' | 'dip'. Helps calibrate if tags are ambiguous.Sample request
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "calculate_portions",
"arguments": {
"handle": "chicken-vegetable-soup",
"guests": 24,
"course_role": "soup"
}
}
}Sample response (content[0].text)
{
"dish": "Chicken Vegetable Soup",
"handle": "chicken-vegetable-soup",
"pricePerUnit": 38,
"guests": 24,
"role": "soup",
"servingsPerUnit": 8,
"unitsToOrder": 3,
"totalCost": 114,
"note": "3 units of \"Chicken Vegetable Soup\" should serve 24 guests as a soup (approx. 8 servings/unit)."
}suggest_shabbos_menuSuggest a complete Shabbos menu
Given a guest count and optional preferences, returns a suggested complete Shabbos menu across all courses (challah/bread, soup, appetizers/salads/dips, main, sides, dessert) with recommended quantities for each dish. All suggestions come from live in-stock dishes only.
Parameters
guestsintegerrequiredNumber of guests to plan for (1–300).preferencesstringoptionalOptional preferences, e.g. 'no fish', 'vegetarian sides', 'light dessert' (max 200 chars).Sample request
{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "suggest_shabbos_menu",
"arguments": {
"guests": 20,
"preferences": "no fish"
}
}
}Sample response (content[0].text)
{
"guests": 20,
"preferences": "no fish",
"estimatedTotal": 486,
"note": "Dishes are randomly selected from available stock. Call search_menu to explore alternatives.",
"orderUrl": "https://forknladle.com/products",
"menu": [
{
"course": "Challah / Bread",
"dishes": [{ "handle": "challah-traditional", "title": "Traditional Challah", "pricePerUnit": 12, "unitsToOrder": 2, "totalCost": 24 }]
},
{
"course": "Soup",
"dishes": [{ "handle": "chicken-vegetable-soup", "title": "Chicken Vegetable Soup", "pricePerUnit": 38, "unitsToOrder": 3, "totalCost": 114 }]
},
{
"course": "Main Course",
"dishes": [
{ "handle": "honey-glazed-chicken", "title": "Honey Glazed Chicken", "pricePerUnit": 58, "unitsToOrder": 3, "totalCost": 174 }
]
}
]
}get_ordering_statusCheck if the ordering window is currently open
Returns whether the Fork n Ladle ordering window is currently open, when it closes (Wednesday midnight ET), and when it reopens (Saturday night). Always call this before directing a customer to place an order.
No parameters.
Sample request
{
"jsonrpc": "2.0",
"id": 6,
"method": "tools/call",
"params": {
"name": "get_ordering_status",
"arguments": {}
}
}Sample response (content[0].text)
{
"isOpen": true,
"currentDay": "Monday",
"currentTime": "2026-08-03T14:22:00.000Z",
"cutoff": "Wednesday at midnight ET",
"reopens": "Saturday",
"note": "Ordering is OPEN. It closes Wednesday at midnight ET.",
"orderUrl": "https://forknladle.com/products"
}Health check
/mcp/health returns transport details and the full tool list as JSON.
Notes
- All dish names, prices, and availability come from the live database — never cached or invented.
- Ordering closes Wednesday midnight ET and reopens Saturday night. Always call
get_ordering_statusbefore sending a customer to checkout. - Rate limit: 60 requests per minute per IP. Need higher? Contact us.
- This server returns no PII and accepts no PII. Do not send customer details through MCP.