Zovo Cooking Timeline MCP
A community MCP server that generates backward-scheduled cooking timelines for holiday meals. It calculates clock times for prep, cooking, and resting, checks for oven conflicts across multiple temperatures, handles make-ahead dishes, and provides printable PDF checklists and ICS calendar files with reminders.
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://cooking-timeline.zovo.one/mcpWhat its tools do
2 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (2)
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
- Generate a Thanksgiving cooking timeline from serve time
- Check for oven conflicts with multiple temperatures
- Create printable checklist PDFs and calendar reminders
- Calculate turkey roast time using USDA guidelines
Source and maintenance
Protocol and capabilities
- Server
- cooking-timeline 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 2 advertised
- Resources
- 1 advertised
- Resource templates
- 1 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
2 advertised
plan_cooking_timeline — Plan cooking timeline
Use this when the user wants a Thanksgiving cooking timeline, a holiday dinner cooking schedule or an oven schedule for several dishes. Convert the user's menu, pasted recipe notes or a photo of a menu into the dishes array (name, prep_minutes, cook_minutes, rest_minutes, method, oven_temp, make_ahead); use text only as a fallback. Works backward from serve_time (default Thanksgiving, 26 November 2026, 4:00 PM) and gives each step a clock time, detects oven conflicts (one oven by default, ovens: 2 for two), moves make-ahead dishes earlier, adds turkey roast and thaw steps from the USDA table when a turkey weight is given, and returns a printable checklist PDF, an ICS calendar file with a reminder per step, and a shopping-day note. Up to 25 dishes. Does not invent recipe times or give recipes.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"text": {
"anyOf": [
{
"type": "string",
"maxLength": 6000
},
{
"type": "null"
}
],
"description": "Fallback only: a pasted menu, one dish per line, e.g. \"Stuffing: prep 20, bake 45 min at 350F, make ahead\". Prefer dishes."
},
"clock": {
"anyOf": [
{
"type": "string",
"maxLength": 12
},
{
"type": "null"
}
],
"description": "12h (default, 4:00 PM) or 24h (16:00)."
},
"cooks": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "People doing hands-on prep at the same time, default 1."
},
"ovens": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "Number of ovens, 1 (default) or 2."
},
"paper": {
"anyOf": [
{
"type": "string",
"maxLength": 20
},
{
"type": "null"
}
],
"description": "PDF paper size: letter (default) or A4."
},
"title": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
],
"description": "Title for the PDF and calendar, e.g. Thanksgiving at Grandma's."
},
"dishes": {
"anyOf": [
{
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"description": "Dish name, e.g. Mashed potatoes."
},
"oven": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "Pin the dish to oven 1 or 2 (optional)."
},
"method": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
],
"description": "oven, stovetop, no heat, or another appliance (microwave, slow cooker, grill, air fryer). Default: oven when oven_temp is given."
},
"weight": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "Turkey only: weight in lb or text such as \"6 kg\"; cook time then comes from the USDA table."
},
"stuffed": {
"anyOf": [
{
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"maxLength": 20
},
{
"type": "number"
}
]
},
{
"type": "null"
}
],
"description": "Turkey only: true if stuffed. Default false."
},
"oven_temp": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 30
}
]
},
{
"type": "null"
}
],
"description": "Oven temperature, e.g. 350, \"375F\", \"180C\" or \"gas mark 4\". °F unless temperature_unit is C."
},
"make_ahead": {
"anyOf": [
{
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"maxLength": 20
},
{
"type": "number"
}
]
},
{
"type": "null"
}
],
"description": "true if the dish can be cooked earlier and held or reheated (pies, casseroles, rolls). Only make-ahead dishes are moved earlier to make room in the oven."
},
"cook_minutes": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "Minutes on the heat (oven, stovetop or other), e.g. 45 or \"1h 30m\". 0 for no-cook dishes."
},
"prep_minutes": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "Hands-on prep minutes before cooking, e.g. 20 or \"1 hour\"."
},
"rest_minutes": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "Minutes between taking it off the heat and serving (rest, cool or chill), e.g. 10."
}
},
"additionalProperties": {}
},
{
"type": "string",
"maxLength": 300
}
]
},
"maxItems": 25
},
{
"type": "string",
"maxLength": 6000
}
]
},
{
"type": "null"
}
],
"description": "The menu as a list of dish objects. Convert the user's pasted menu, recipe notes or a photo of a menu into these fields. Example: [{\"name\":\"Green bean casserole\",\"prep_minutes\":15,\"cook_minutes\":30,\"oven_temp\":350,\"make_ahead\":true},{\"name\":\"Gravy\",\"cook_minutes\":15,\"method\":\"stovetop\"}]. Up to 25 dishes."
},
"turkey": {
"anyOf": [
{
"type": "object",
"required": [
"weight"
],
"properties": {
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
],
"description": "Label, default Turkey."
},
"oven": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "Pin to oven 1 or 2 (optional)."
},
"frozen": {
"anyOf": [
{
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"maxLength": 20
},
{
"type": "number"
}
]
},
{
"type": "null"
}
],
"description": "true if the turkey is frozen now (adds a thaw step), false if fresh. Default: unknown, the thaw step says \"if frozen\"."
},
"weight": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 40
}
],
"description": "Turkey weight in pounds, or text with a unit, e.g. 14 or \"6.5 kg\"."
},
"stuffed": {
"anyOf": [
{
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"maxLength": 20
},
{
"type": "number"
}
]
},
{
"type": "null"
}
],
"description": "true if stuffed. Default false (USDA recommends cooking stuffing separately)."
},
"thaw_method": {
"anyOf": [
{
"type": "string",
"maxLength": 20
},
{
"type": "null"
}
],
"description": "fridge (default) or cold water."
},
"prep_minutes": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "Prep minutes before it goes in (default 20)."
},
"rest_minutes": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "Minutes to rest before carving (default 30; USDA says at least 20)."
}
},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "Optional turkey roasted from the USDA timetable at 325°F, e.g. {\"weight\":16,\"stuffed\":false,\"frozen\":true}."
},
"burners": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "Stovetop burners, default 4."
},
"serve_date": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
],
"description": "Serve date if given separately, e.g. 2026-11-26."
},
"serve_time": {
"anyOf": [
{
"type": "string",
"maxLength": 60
},
{
"type": "null"
}
],
"description": "When dinner is served, e.g. \"2026-11-26 16:00\", \"4:00 PM\" or \"Nov 26 5pm\". Default date is Thanksgiving, 26 November 2026; default time 4:00 PM."
},
"hold_minutes": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "Minutes a dish that is not make-ahead may come out early and wait covered to make room in the oven, default 30. 0 to never hold."
},
"share_within_f": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "A dish that is not make-ahead may join an oven already running within this many °F (cooked about 10% longer per 25°F lower), default 25. 0 to keep recipe temperatures."
},
"preheat_minutes": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "Minutes to preheat or change oven temperature, default 15."
},
"reminder_minutes": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "Calendar alarm this many minutes before each step, default 5."
},
"temperature_unit": {
"anyOf": [
{
"type": "string",
"maxLength": 12
},
{
"type": "null"
}
],
"description": "F (default) or C for oven temperatures given without a unit."
},
"shopping_days_before": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "Shopping day this many days before serving, default 2."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"title",
"serve",
"ovens",
"counts",
"conflicts",
"moved",
"held",
"shared_oven",
"plan_notes",
"stovetop",
"dishes",
"steps",
"turkey",
"shopping",
"assumptions",
"flags",
"downloads"
],
"properties": {
"held": {
"type": "array",
"items": {
"type": "object",
"required": [
"dish",
"ready",
"early_by"
],
"properties": {
"dish": {
"type": "string"
},
"ready": {
"type": "string"
},
"early_by": {
"type": "string"
}
},
"additionalProperties": false
}
},
"flags": {
"type": "array",
"items": {
"type": "string"
}
},
"moved": {
"type": "array",
"items": {
"type": "object",
"required": [
"dish",
"ready",
"earlier_by"
],
"properties": {
"dish": {
"type": "string"
},
"ready": {
"type": "string"
},
"earlier_by": {
"type": "string"
}
},
"additionalProperties": false
}
},
"ovens": {
"type": "number"
},
"serve": {
"type": "object",
"required": [
"iso",
"label"
],
"properties": {
"iso": {
"type": "string"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
},
"steps": {
"type": "array",
"items": {
"type": "object",
"required": [
"day",
"time",
"text",
"kind"
],
"properties": {
"day": {
"type": "string"
},
"kind": {
"type": "string"
},
"oven": {
"type": "number"
},
"text": {
"type": "string"
},
"time": {
"type": "string"
}
},
"additionalProperties": false
}
},
"title": {
"type": "string"
},
"counts": {
"type": "object",
"required": [
"dishes",
"steps",
"oven_conflicts",
"moved_earlier",
"held_warm",
"flags"
],
"properties": {
"flags": {
"type": "number"
},
"steps": {
"type": "number"
},
"dishes": {
"type": "number"
},
"held_warm": {
"type": "number"
},
"moved_earlier": {
"type": "number"
},
"oven_conflicts": {
"type": "number"
}
},
"additionalProperties": false
},
"dishes": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"method",
"start",
"ready",
"moved"
],
"properties": {
"name": {
"type": "string"
},
"moved": {
"type": "boolean"
},
"ready": {
"type": "string"
},
"start": {
"type": "string"
},
"method": {
"type": "string"
}
},
"additionalProperties": false
}
},
"turkey": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"weight_lb",
"weight_kg",
"stuffed",
"usda_bracket",
"roast_minutes_low",
"roast_minutes_high",
"oven_temp_f",
"safe_internal_temp_f",
"fridge_thaw_days",
"cold_water_thaw"
],
"properties": {
"name": {
"type": "string"
},
"stuffed": {
"type": "boolean"
},
"weight_kg": {
"type": "number"
},
"weight_lb": {
"type": "number"
},
"oven_temp_f": {
"type": "number"
},
"usda_bracket": {
"type": "string"
},
"cold_water_thaw": {
"type": "string"
},
"fridge_thaw_days": {
"type": "string"
},
"roast_minutes_low": {
"type": "number"
},
"roast_minutes_high": {
"type": "number"
},
"safe_internal_temp_f": {
"type": "number"
}
},
"additionalProperties": false
}
},
"shopping": {
"type": "object",
"required": [
"date",
"note"
],
"properties": {
"date": {
"type": "string"
},
"note": {
"type": "string"
}
},
"additionalProperties": false
},
"stovetop": {
"type": "array",
"items": {
"type": "string"
}
},
"conflicts": {
"type": "array",
"items": {
"type": "object",
"required": [
"oven",
"dishes",
"temps_f",
"from",
"to",
"advice"
],
"properties": {
"to": {
"type": "string"
},
"from": {
"type": "string"
},
"oven": {
"type": "number"
},
"advice": {
"type": "string"
},
"dishes": {
"type": "array",
"items": {
"type": "string"
}
},
"temps_f": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
}
},
"downloads": {
"type": "object",
"required": [
"pdf",
"ics"
],
"properties": {
"ics": {
"type": "string"
},
"pdf": {
"type": "string"
}
},
"additionalProperties": false
},
"plan_notes": {
"type": "array",
"items": {
"type": "string"
}
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
}
},
"flags_count": {
"type": "object",
"required": [
"shown",
"total"
],
"properties": {
"shown": {
"type": "number"
},
"total": {
"type": "number"
}
},
"additionalProperties": false
},
"shared_oven": {
"type": "array",
"items": {
"type": "string"
}
},
"steps_count": {
"type": "object",
"required": [
"shown",
"total"
],
"properties": {
"shown": {
"type": "number"
},
"total": {
"type": "number"
}
},
"additionalProperties": false
},
"dishes_count": {
"type": "object",
"required": [
"shown",
"total"
],
"properties": {
"shown": {
"type": "number"
},
"total": {
"type": "number"
}
},
"additionalProperties": false
},
"conflicts_count": {
"type": "object",
"required": [
"shown",
"total"
],
"properties": {
"shown": {
"type": "number"
},
"total": {
"type": "number"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}{
"title": "Plan cooking timeline",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_turkey_times — Calculate turkey roast and thaw times
Use this when the user asks a turkey cooking time calculator question: how long to roast a turkey by weight (lb or kg), stuffed or unstuffed, or turkey thaw time in the fridge or cold water. Returns the USDA FSIS roasting range at 325°F, the 165°F safe internal temperature, fridge and cold-water thaw times and, with a serve time, the clock times to start thawing and roasting. Covers 4 to 24 lb (stuffed 8 to 24 lb). Does not cover other meats, deep frying or smoking.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"weight"
],
"properties": {
"clock": {
"anyOf": [
{
"type": "string",
"maxLength": 12
},
{
"type": "null"
}
],
"description": "12h (default) or 24h."
},
"weight": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 40
}
],
"description": "Turkey weight in pounds, or text with a unit, e.g. 14 or \"6.5 kg\"."
},
"stuffed": {
"anyOf": [
{
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"maxLength": 20
},
{
"type": "number"
}
]
},
{
"type": "null"
}
],
"description": "true if stuffed. Default false."
},
"serve_time": {
"anyOf": [
{
"type": "string",
"maxLength": 60
},
{
"type": "null"
}
],
"description": "Optional serve time to get clock times, e.g. \"2026-11-26 16:00\" or \"4 PM\" (default date Thanksgiving, 26 November 2026)."
},
"rest_minutes": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 60
}
]
},
{
"type": "null"
}
],
"description": "Minutes to rest before carving, default 30 (USDA says at least 20)."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"weight_lb",
"weight_kg",
"stuffed",
"usda_bracket",
"oven_temp_f",
"roast_minutes_low",
"roast_minutes_high",
"roast_time",
"safe_internal_temp_f",
"safe_internal_temp_c",
"fridge_thaw_days_low",
"fridge_thaw_days_high",
"cold_water_thaw_minutes",
"schedule",
"source",
"notes"
],
"properties": {
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"source": {
"type": "string"
},
"stuffed": {
"type": "boolean"
},
"schedule": {
"anyOf": [
{
"type": "object",
"required": [
"serve",
"fridge_thaw_start",
"in_oven",
"start_checking",
"out_of_oven"
],
"properties": {
"serve": {
"type": "string"
},
"in_oven": {
"type": "string"
},
"out_of_oven": {
"type": "string"
},
"start_checking": {
"type": "string"
},
"fridge_thaw_start": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"weight_kg": {
"type": "number"
},
"weight_lb": {
"type": "number"
},
"roast_time": {
"type": "string"
},
"oven_temp_f": {
"type": "number"
},
"usda_bracket": {
"type": "string"
},
"roast_minutes_low": {
"type": "number"
},
"roast_minutes_high": {
"type": "number"
},
"fridge_thaw_days_low": {
"type": "number"
},
"safe_internal_temp_c": {
"type": "number"
},
"safe_internal_temp_f": {
"type": "number"
},
"fridge_thaw_days_high": {
"type": "number"
},
"cold_water_thaw_minutes": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Calculate turkey roast and thaw times",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
cooking-timeline-widget — Zovo Cooking Timeline view
Interactive view for Zovo Cooking Timeline.
ui://widget/cooking-timeline-v1-1.0.0-05fc113448bdf4d845d55799917749fc5dc6431ba2064c28d82ce2338e2a3959.htmlcooking-timeline-widget-legacy — Zovo Cooking Timeline view (previous versions)
ui://widget/cooking-timeline-{version}.html30-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
- 2092 ms
- 95th percentile latency
- 2092 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 2092 ms · metadata changed · 2 tool(s), 1 resource(s), 1 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http zovo-cooking-timeline-mcp https://cooking-timeline.zovo.one/mcpCodex
codex mcp add zovo-cooking-timeline-mcp --url https://cooking-timeline.zovo.one/mcpCursor
{
"mcpServers": {
"zovo-cooking-timeline-mcp": {
"url": "https://cooking-timeline.zovo.one/mcp"
}
}
}Cline
{
"mcpServers": {
"zovo-cooking-timeline-mcp": {
"type": "streamableHttp",
"url": "https://cooking-timeline.zovo.one/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"zovo-cooking-timeline-mcp": {
"type": "http",
"url": "https://cooking-timeline.zovo.one/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http zovo-cooking-timeline-mcp https://cooking-timeline.zovo.one/mcpClaude Desktop
https://cooking-timeline.zovo.one/mcpWindsurf
{
"mcpServers": {
"zovo-cooking-timeline-mcp": {
"serverUrl": "https://cooking-timeline.zovo.one/mcp"
}
}
}Let your agent find its tools
Find servers like Zovo Cooking Timeline MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.