MCP server for NYT Cooking recipes (search, get, saved)
NYT Cooking MCP has well-structured tool definitions with clear naming (verb_noun pattern) and comprehensive descriptions. All 6 tools have descriptions (avg ~180 chars) and input schemas with typed parameters. However, output schemas are not documented, LLMs cannot predict response structure. Error handling returns structured error objects but lacks recovery guidance (e.g., 'Try login() first' for auth_required). Parameter descriptions are good but some lack format/constraint details. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Overall solid foundation but missing schema documentation and error recovery patterns.
Report whether NYT credentials (session cookie and user id) are configured. Does not reveal the values. Useful for diagnosing auth_required errors.
Fetch full details for a single NYT Cooking recipe by its numeric id. Args: recipe_id: The recipe id, e.g. "1019049" (from a search result or URL). Returns name, author, time, servings, rating, description, ingredients and step-by-step instructions.
List recipes saved in the user's NYT Cooking recipe box. Requires a configured user id and a valid session cookie (see `login`). Args: page: 1-indexed page number. per_page: Number of results per page (default 48).
Store your NYT Cooking credentials so the server stays logged in. NYT Cooking has no OAuth, so credentials are harvested once from your logged-in browser and persisted server-side (like a session token): - nyt_s_cookie: value of the `NYT-S` cookie on cooking.nytimes.com (DevTools -> Application -> Cookies). - user_id: the `regi_id` value inside the `regi_cookie` (needed only for list_saved_recipes). The credentials are written to the server's credentials file and verified with a live request before returning.
Delete the stored NYT Cooking credentials from the server.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting). search_recipes returns {results: [{id, name, url, author}]} but this is inferred from docstring, not declared in schema.
Error responses lack recovery guidance. 'auth_required' error does not suggest calling login(). 'parse_error' and 'network_error' give no actionable next steps for the LLM.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are marked READ_ONLY or WRITE in comments but not in schema. LLMs cannot determine which tools are safe to retry.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Search NYT Cooking for recipes matching a natural-language query. Args: query: Search terms, e.g. "chicken parmesan" or "vegetarian chili". Returns a list of results with id, name, url and author. Use the id with get_recipe to fetch full ingredients and steps.
login() accepts nyt_s_cookie as a string parameter. Credentials should never be tool parameters, they should be injected server-side via environment variables or vault. Current design risks leaking secrets into agent logs and traces.
list_saved_recipes pagination lacks total_count or next_cursor in documented output. LLMs cannot determine if more results exist or how to fetch them efficiently.