Skip to main content
Glama
bramboe
by bramboe

NYT Cooking MCP

An MCP server that lets an AI assistant (Claude, etc.) search New York Times Cooking, fetch full recipes, and browse your saved recipe box.

NYT Cooking has no official public API, so this reads the same JSON endpoints the website itself uses. The recipe paywall is enforced client-side, so searching and reading full recipes needs no login at all — only your personal saved recipe box requires a session cookie.

Tools

Tool

Auth needed

Description

search_recipes(query)

no

Search recipes by natural-language query.

get_recipe(recipe_id)

no

Full recipe: ingredients, steps, time, rating.

list_saved_recipes(page, per_page)

yes

Your saved recipe box.

login(nyt_s_cookie, user_id)

Store credentials server-side and verify them.

logout()

Delete the stored credentials.

auth_status()

Check whether credentials are configured.

Related MCP server: Mealie MCP Server

Install & run

Requires Python 3.10+. With uv:

git clone https://github.com/bramboe/nyt-cooking-mcp
cd nyt-cooking-mcp
uv run nyt-cooking-mcp                                   # stdio (default)
uv run nyt-cooking-mcp --transport streamable-http --port 3001

Or with pipx / pip:

pipx install git+https://github.com/bramboe/nyt-cooking-mcp
nyt-cooking-mcp

Use with Claude Desktop / Claude Code

Add to your MCP config (claude_desktop_config.json, or via claude mcp add):

{
  "mcpServers": {
    "nyt-cooking": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/nyt-cooking-mcp", "nyt-cooking-mcp"]
    }
  }
}

Then ask: "search NYT Cooking for marry me chicken" or "get NYT recipe 1024503".

Saved recipes (optional login)

list_saved_recipes is the only tool that needs your account. NYT Cooking has no OAuth, so credentials are harvested once from your logged-in browser and persisted server-side (like a session token). Call the login tool with:

  1. nyt_s_cookie — value of the NYT-S cookie on cooking.nytimes.com (DevTools → Application → Cookies).

  2. user_id — the regi_id value inside the regi_cookie.

login verifies the cookie with a live request and writes it to the credentials file (--credentials-file, default ~/.config/nyt-cooking-mcp/credentials.json). Environment variables NYT_S_COOKIE / NYT_USER_ID override the stored file. The NYT-S cookie is long-lived; when calls start returning auth_required, run login again.

Self-hosting as an always-on service

Run it as a systemd service over streamable-HTTP so it is always available:

# /etc/systemd/system/nyt-cooking-mcp.service
[Unit]
Description=NYT Cooking MCP Server
After=network.target

[Service]
User=nyt-cooking
ExecStart=/opt/nyt-cooking-mcp/.venv/bin/nyt-cooking-mcp \
    --transport streamable-http --host 0.0.0.0 --port 3001 \
    --credentials-file /var/lib/nyt-cooking-mcp/credentials.json
# Permit LAN access while keeping DNS-rebinding protection on (localhost always allowed):
Environment=NYT_MCP_ALLOWED_HOSTS=your.server.ip:*
Restart=on-failure

[Install]
WantedBy=multi-user.target

The HTTP endpoint is then http://your.server:3001/mcp. Put a reverse proxy (TLS) and an auth token in front before exposing it beyond your trusted network.

Disclaimer

For personal use. This is an unofficial tool not affiliated with The New York Times; respect NYT Cooking's Terms of Service and use your own account.

Support

If this project is useful to you, consider buying me a coffee ☕

Buy Me A Coffee

License

MIT — see LICENSE.

Available Tools

6 tools
auth_statusA

Report whether NYT credentials (session cookie and user id) are configured.

Does not reveal the values. Useful for diagnosing auth_required errors.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the tool reports whether credentials are configured without revealing values, indicating it is a safe read-only operation. No behavioral contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences convey the entire purpose and a key use case with no redundant information. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and the existence of an output schema (not shown), the description sufficiently covers what the tool does and its utility. It could hint at the output format, but the output schema covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so schema coverage is 100% trivially. The description does not need to add parameter details; it is adequate for a no-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reports whether NYT credentials are configured, which is a specific verb and resource. It distinguishes itself from sibling tools like login, logout, and recipe-related tools by focusing on auth status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says it is useful for diagnosing auth_required errors, providing a clear use case. However, it does not mention when not to use it or provide explicit alternatives, though siblings implicitly cover related actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recipeA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
recipe_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Lists all return fields (name, author, time, etc.) and notes id format. No annotations, but description adequately discloses output contents. Lacks mention of error handling or authentication.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise, front-loaded main sentence, uses structured Args section. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Single parameter, output schema exists, siblings cover other actions. Description covers what, how, and what is returned completely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has only title and type for recipe_id; description adds example ('1019049') and source ('from a search result or URL'), fully compensating for 0% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Fetch full details for a single NYT Cooking recipe by its numeric id', with specific verb and resource. Distinguishes from sibling search_recipes which likely returns list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage after obtaining a recipe_id from search or URL. Mentions the id origin. Could be more explicit about when not to use, but sufficient for context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_saved_recipesA

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided so description carries full burden. Discloses authentication requirement but omits behavioral aspects like read-only nature, rate limits, or pagination limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences; purpose line is clear, followed by prerequisites and parameter explanations. Efficient without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers prerequisites and parameter semantics. Output schema exists so return value not needed. Sufficient for a list tool with two parameters, though could note the object shape briefly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description is the sole source. Explains page as 1-indexed and per_page default 48, adding meaningful detail beyond the schema's defaults and types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it lists saved recipes from the user's recipe box. The verb 'list' and resource 'saved recipes' are specific, but it doesn't explicitly distinguish from search_recipes, though the context makes it clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions prerequisites (user id and session cookie) and references the login tool. Does not contrast with alternatives like search_recipes, but provides actionable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

loginA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nyt_s_cookieYes
user_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses behavioral traits: credentials are harvested once, persisted server-side like a session token, and verified with a live request before returning. This is exceptional transparency for a login tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a short opening sentence stating the purpose, followed by a paragraph explaining the rationale and a bullet-like list for each parameter. Every sentence adds value without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that no annotations are present and schema coverage is 0%, the description does a good job covering the login process. It explains parameter usage, persistence, and verification. However, it does not mention the tool's return value (though an output schema exists) or error scenarios, leaving minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries full burden. It explains the meaning and source of nyt_s_cookie (NYT-S cookie value) and user_id (regi_id from regi_cookie), and clarifies that user_id is optional and only needed for list_saved_recipes. This adds essential meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: storing NYT Cooking credentials to keep the server logged in. It distinguishes from siblings like login-related tools by focusing on credential storage and verification, not authentication status or logout.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how to obtain the parameters (NYT-S cookie and user_id) and notes that user_id is only needed for list_saved_recipes. However, it does not explicitly state when to use this tool versus alternatives like auth_status or logout, though the context implies it is the first step after obtaining cookies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

logoutA

Delete the stored NYT Cooking credentials from the server.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It mentions deletion of credentials, implying a destructive action, but does not disclose prerequisites (e.g., must be logged in) or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. It is appropriately front-loaded but could benefit from a slightly more structured format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with zero parameters and a simple action, the description is complete enough. It covers the core functionality, though it could mention return values or side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the baseline is 4. The description does not need to add parameter info, and the schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (delete stored credentials) and the resource (NYT Cooking credentials). It distinguishes from siblings like login and auth_status by indicating it removes stored data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives. However, given the simplicity and zero parameters, the context is implied, but it lacks when-not or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_recipesA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description bears full responsibility. It explains the return structure (id, name, url, author) and suggests using the id with get_recipe. However, it does not disclose authentication needs, rate limits, or whether the search is read-only, which leaves some behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with a clear structure: purpose, parameter explanation, and return value usage. Every sentence is meaningful with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (single parameter, no annotations), the description covers the core workflow: search, obtain id, then use get_recipe for details. It could mention constraints like result limits or login requirement, but overall it is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description adds crucial meaning: it clarifies that the query is natural-language and provides examples (e.g., 'chicken parmesan'). This goes beyond the schema's simply 'string' type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Search' and the resource 'NYT Cooking for recipes', with additional detail about natural-language query. It distinguishes from siblings like get_recipe and list_saved_recipes by implying that this tool performs searches based on query text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides query examples and explicitly ties to get_recipe for fetching full details, guiding the agent on when to use this tool vs. sibling. However, it does not mention when not to use this tool or alternatives like list_saved_recipes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.1.0
    • First observedauth_status
    • First observedget_recipe
    • First observedlist_saved_recipes
    • First observedlogin
    • First observedlogout
    • First observedsearch_recipes

TDQS

A4.3/5.0
Disambiguation5/5

Each tool has a distinct purpose: authentication status, login/logout, search, recipe retrieval, and saved recipes listing. No two tools perform overlapping functions.

Naming Consistency5/5

All tools use consistent snake_case naming (e.g., search_recipes, get_recipe, list_saved_recipes), following a clear verb_noun pattern.

Tool Count5/5

Six tools cover the essential operations for a recipe service (auth, search, read, list saved) without unnecessary bloat. The count is appropriate for the domain.

Completeness4/5

Core workflows are covered: login, search, get recipe, list saved recipes, and logout. However, there is no tool to save a recipe or manage the saved list (e.g., remove), which are minor gaps for a complete lifecycle.

Maintenance

ActivitySlowing
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Search, save, organize, cook, and share recipes with any AI assistant.

  • Scraps Kitchen gives any AI agent a persistent, household-aware kitchen memory. Unlike generic chatbot recall, Scraps maintains structured cooking data: what's in your fridge (with freshness tracking), who you cook for (with allergens, dietary restrictions, and preferences), your recipe collection (with cook notes and per-diner ratings), your shopping list, and your kitchen equipment. 27 tools across 6 domains let agents read kitchen context, suggest meals that respect dietary safety, update the pantry after cooking, and build a history of what works for your household. Every interaction makes the data richer. Cooking history, preference signals, kitchen awareness = better suggestions next time. All tools work via oAuth and a free scraps.kitchen account.

  • Your personal recipe kitchen: save, fork, and cook recipes, build cookbooks, and shopping lists.

  • Household-aware cooking brain: pantry, meal suggestions, dietary safety, recipes, shopping lists.

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    Enables AI assistants to search, read, and update recipes in Paprika Recipe Manager, allowing natural language interaction with your recipe collection including ingredients, directions, and metadata.
    4
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Household-aware kitchen brain for AI agents: manage pantry inventory with freshness tracking, shopping lists, recipe collections with cook notes and per-diner ratings, dietary profiles with allergen safety, and kitchen equipment — all through 27 tools with OAuth 2.1 authentication. Includes a free tool for ingredient-based recipe generation without an account (accounts are free!).
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI assistants to search for recipes, get nutritional information, find ingredients, and more through the Spoonacular Food API using natural language.
    6
    14
    5
    ISC

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bramboe/nyt-cooking-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server