Skip to main content
Glama
antonderegt

weekplan-mcp-server

by antonderegt

WeekPlan MCP Server

An MCP (Model Context Protocol) server that gives AI assistants like Claude the ability to manage recipes and ingredients in your WeekPlan app via its REST API. See WeekPlan for the main app. See WeekPlan Watch for an Apple Watch companion app.

What It Does

Once connected, Claude can:

  • List, add, and delete ingredients (name + unit)

  • List, add, and delete recipes (name, ingredients with quantities, and step-by-step instructions)

  • Automatically create missing ingredients when adding a recipe


Related MCP server: cookwith-mcp

Prerequisites

  • Node.js 18+Download here

  • A running WeekPlan API server (defaults to http://localhost:3000)


Installation

git clone <your-repo-url> weekplan-mcp-server
cd weekplan-mcp-server
npm install
npm run build

The compiled server will be at dist/index.js.

Option 2 — Install globally from npm (once published)

npm install -g weekplan-mcp-server

This makes the weekplan-mcp-server command available system-wide.


Configuration

The server is configured via a single environment variable:

Variable

Default

Description

WEEKPLAN_URL

http://localhost:3000

Base URL of your WeekPlan REST API


Adding to Claude Code

Run the following command to register the server with Claude Code:

claude mcp add weekplan-mcp-server -e WEEKPLAN_URL=http://localhost:3000 -- node /absolute/path/to/weekplan-mcp-server/dist/index.js

Replace /absolute/path/to/weekplan-mcp-server with the actual path where you cloned the repo.

Or edit ~/.claude.json to add it to a specific project.

Or edit claude_desktop_config.json directly (see the Claude Desktop section below — the format is the same).


Adding to Claude Desktop

Edit your Claude Desktop config file:

  • macOS: ~/Library/'Application Support'/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

Add the server under mcpServers:

{
  "mcpServers": {
    "weekplan": {
      "command": "node",
      "args": ["/absolute/path/to/weekplan-mcp-server/dist/index.js"],
      "env": {
        "WEEKPLAN_URL": "http://localhost:3000"
      }
    }
  }
}

Restart Claude Desktop after saving the file.


Adding to Cursor

Open Cursor settings and navigate to Features → MCP Servers, then add:

{
  "weekplan": {
    "command": "node",
    "args": ["/absolute/path/to/weekplan-mcp-server/dist/index.js"],
    "env": {
      "WEEKPLAN_URL": "http://localhost:3000"
    }
  }
}

Adding to VS Code (Copilot / MCP extension)

In your .vscode/mcp.json or user settings:

{
  "servers": {
    "weekplan": {
      "type": "stdio",
      "command": "node",
      "args": ["/absolute/path/to/weekplan-mcp-server/dist/index.js"],
      "env": {
        "WEEKPLAN_URL": "http://localhost:3000"
      }
    }
  }
}

Available Tools

Ingredients

Tool

Description

Parameters

weekplan_list_ingredients

List all ingredients

(none)

weekplan_add_ingredient

Add or update an ingredient

name (string), unit (string)

weekplan_delete_ingredient

Delete an ingredient

id (string)

Recipes

Tool

Description

Parameters

weekplan_list_recipes

List all recipes

(none)

weekplan_add_recipe

Add or update a recipe

name (string), ingredients (array), steps (array of strings)

weekplan_delete_recipe

Delete a recipe

id (string)

The ingredients array in weekplan_add_recipe accepts objects with:

  • ingredientName — name of the ingredient (created automatically if missing)

  • quantity — numeric amount

  • unit — unit of measurement (e.g. "g", "ml", "tbsp")

IDs are generated automatically from names (e.g. "Olive Oil""olive-oil"), so add operations are idempotent — running them twice won't create duplicates.


Example Prompts

Once the server is connected, try asking Claude:

Add a recipe for spaghetti bolognese with ingredients and steps.
List all my ingredients.
Add 500g of chicken breast as an ingredient.
Delete the recipe for lasagne.

Development

# Run directly from TypeScript (no build step needed)
npm run dev

# Build to dist/
npm run build

# Run the compiled server
npm start

The server communicates over stdio, so it has no open ports and is safe to run as a subprocess managed by your AI client.


Project Structure

src/
├── index.ts          # Entry point — connects stdio transport
├── server.ts         # Registers all tools with the MCP server
├── api-client.ts     # HTTP client for the WeekPlan REST API
├── slugify.ts        # Converts names to stable IDs
└── tools/
    ├── ingredients.ts # Ingredient tool handlers
    └── recipes.ts     # Recipe tool handlers

Troubleshooting

"Cannot connect to WeekPlan API" Make sure your WeekPlan server is running and WEEKPLAN_URL points to the correct address.

"command not found: node" Node.js is not installed or not on your PATH. Install it from nodejs.org.

Tools don't appear in Claude

  • Confirm the path in your config points to dist/index.js (not src/index.ts)

  • Make sure you ran npm run build after cloning

  • Restart your AI client after changing the config

Build errors Run npm install first to ensure all dependencies are present, then npm run build.

Available Tools

8 tools
weekplan_add_ingredientA
Idempotent

Add or update an ingredient. Creates a stable slug ID from the name. Always use Dutch for the name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesIngredient name
unitYesUnit of measurement (e.g. g, ml, pcs)

TDQS

A3.5/5.0
Behavior3/5

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

The description adds real behavioral context beyond the idempotentHint annotation: a stable slug ID is derived from the name, and an existing ingredient is updated rather than duplicated. It does not disclose the return value or whether unit changes on an update trigger side effects, so the safety profile is only partially covered.

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?

Three short sentences, front-loaded with the operation, then the ID behavior, then the naming rule. Every sentence carries actionable information with no filler.

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 small two-parameter tool with no output schema, the description covers the operation, ID generation, and the Dutch naming rule. The only gap is what the tool returns or how duplicate names are handled, which is minor given idempotentHint covers repeat calls.

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 100%, so the baseline is 3, but the description adds a genuine constraint not present in the schema: names must be in Dutch. That directly affects how an agent should populate the required name parameter.

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?

"Add or update an ingredient" names a specific verb set and resource, so the tool's operation is unambiguous. However, it does not differentiate itself from the sibling weekplan_edit_ingredient, leaving the upsert-vs-edit boundary unstated.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus weekplan_edit_ingredient or weekplan_add_recipe. The phrase "Add or update" faintly implies upsert semantics, but no conditions, prerequisites, or alternatives are given.

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

weekplan_add_recipeA
Idempotent

Add or update a recipe with its ingredients list and cooking steps. Each ingredient references a name and quantity/unit. Missing ingredients are created automatically. Always use Dutch for the name, ingredient names, and steps.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRecipe name
stepsYesOrdered cooking steps
ingredientsYesIngredients with quantities

TDQS

A3.6/5.0
Behavior4/5

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

Annotations only provide idempotentHint=true, so the description carries most of the weight and does add useful behavior: missing ingredients are created automatically, and the Dutch-language constraint is stated. It does not disclose authorization needs, validation failure behavior, or what happens on partial update.

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 front-loaded sentences, each carrying a distinct point: what it does, the ingredient structure, and the auto-creation/language rules. No filler, though it could be tightened slightly.

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

Completeness3/5

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

Adequate for a 3-param mutation tool with full schema coverage and an idempotency annotation. However, with no output schema and no annotation for destructive behavior, the description leaves gaps around failure modes and whether existing recipe data is overwritten versus merged.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already defines name, ingredients, and steps with nested ingredient fields. The description adds the ingredient name/quantity/unit structure and the language requirement, but no format or constraint details beyond the schema. Baseline 3 applies when the schema does the heavy lifting.

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?

States a specific verb+resource ('Add or update a recipe') and clarifies scope by naming the payload components (ingredients list, cooking steps). It does not explicitly differentiate from the closest sibling weekplan_edit_recipe, so routing between 'add' and 'edit' remains slightly ambiguous.

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?

Usage is implied by the payload it accepts, but there is no explicit when-to-use versus weekplan_edit_recipe, which sounds like the natural alternative for updating. The auto-creation of missing ingredients is the only real routing cue offered.

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

weekplan_delete_ingredientC
Destructive

Delete an ingredient by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIngredient id to delete

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, and the description merely restates the destructive action without adding anything — no mention of irreversibility, auth requirements, or effect on dependent recipes. It does not contradict the annotation, but it adds no behavioral value.

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?

A single front-loaded sentence with zero waste. It is efficient, though arguably terse to the point of under-specification rather than maximal conciseness.

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

Completeness3/5

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

For a one-parameter tool with full schema coverage and a destructiveHint annotation, the description is minimally sufficient to call the tool correctly, but says nothing about the consequences of deletion.

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

Parameters3/5

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

Schema coverage is 100% and the single parameter is fully documented in the schema, so the description's 'by id' adds nothing new. Baseline 3 applies when the schema carries parameter semantics.

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?

States a specific verb (delete) and resource (ingredient) plus the keying field (id). It is clearly distinguishable from the add/edit_ingredient siblings, though it does not explicitly contrast itself with weekplan_delete_recipe.

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

Usage Guidelines2/5

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

No when-to-use, prerequisite, or alternative guidance is given. The agent gets no signal about irreversibility or how the delete relates to edit_ingredient.

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

weekplan_delete_recipeC
Destructive

Delete a recipe by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRecipe id to delete

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, so the safety profile is covered structurally. The description adds nothing beyond that — it does not say whether deletion is permanent, whether it cascades to ingredients/meal plans, or whether a confirmation is required. For an irreversible mutation the extra context would be valuable and is absent.

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?

A single six-word sentence with the verb and key front-loaded and zero filler. It is efficient, though that efficiency comes partly from omitting information rather than from tight writing.

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

Completeness3/5

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

The tool is simple — one required param, no nested objects, no output schema — and destructiveHint covers the safety signal, so the description is minimally adequate. The remaining gap is the consequences of deletion, which an agent choosing between delete and edit would benefit from knowing.

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

Parameters3/5

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

Schema description coverage is 100% and the single 'id' parameter is documented in the schema as 'Recipe id to delete', so the description's 'by id' adds no new information. Baseline 3 applies when the schema does all the work.

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?

States a specific verb (Delete) and resource (recipe) plus the addressing key (by id), so an agent can immediately tell it apart from weekplan_delete_ingredient. It stops short of saying anything about scope or effect, but the core purpose is unambiguous.

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

Usage Guidelines2/5

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

No indication of when to use this versus weekplan_edit_recipe or weekplan_list_recipes, no preconditions, no note that the id must come from a prior list call. The agent must infer all routing from the name alone.

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

weekplan_edit_ingredientA
Idempotent

Edit an existing ingredient by id. Supply only the fields you want to change; omitted fields keep their current values. The ingredient id never changes, so recipe references stay intact. Always use Dutch for the name.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIngredient id to edit
nameNoNew display name
unitNoNew unit of measurement

TDQS

A4.1/5.0
Behavior4/5

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

Annotations provide only idempotentHint=true, so the description carries most of the burden and delivers: patch-style semantics for omitted fields and the guarantee that the id is immutable so recipe references stay intact. It omits permission/auth requirements and error behavior for an unknown id, but the mutation risk profile is well disclosed.

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?

Four short sentences, front-loaded with the operation, then update semantics, then the id-stability rationale, then the naming constraint. No filler sentences.

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 three-parameter mutation with no output schema and minimal annotations, the description covers the essentials an agent needs: what it changes, how partial updates behave, and the id invariant. Return shape and failure modes for an invalid id are unaddressed but minor at this complexity.

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 100%, so the baseline is 3, but the description adds real value beyond the schema: the partial-update contract for optional fields and a language constraint ('Always use Dutch for the name') that no schema field encodes.

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?

The description states a specific verb and resource ('Edit an existing ingredient by id'), which cleanly separates it from the list/add/delete ingredient siblings even though none are named explicitly. An agent can identify the operation immediately.

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?

It gives clear context on how to invoke a partial update ('supply only the fields you want to change; omitted fields keep their current values'), which is the key usage decision for an edit tool. It does not, however, explicitly state when to prefer this over add_ingredient or delete_ingredient.

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

weekplan_edit_recipeA
Idempotent

Edit an existing recipe by its id. All fields are optional — only the fields you provide will be updated. Use this to rename a recipe, translate it, change steps, or replace ingredients. Always use Dutch for the name, ingredient names, and steps.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRecipe id to edit (slug, e.g. 'chicken-soup')
nameNoNew recipe name
stepsNoReplacement cooking steps (replaces all existing steps)
ingredientsNoReplacement ingredients list (replaces all existing ingredients)

TDQS

A4.1/5.0
Behavior4/5

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

The annotations only declare idempotentHint=true, so the description carries the rest. It usefully discloses partial-update semantics ('only the fields you provide will be updated') and a non-obvious constraint (Dutch for name, ingredient names, steps). It doesn't address permissions or whether replaced steps/ingredients are recoverable.

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?

Three short sentences, front-loaded with the core action, followed by partial-update semantics and use cases. Every sentence carries distinct information with no redundancy.

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?

With four params, 100% schema coverage, no output schema, and minimal annotations, the description covers partial updates, use cases, and the language constraint adequately. Only the absence of sibling routing and any note on destructive replacement of steps/ingredients leaves a small gap.

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 100%, so the baseline is 3, but the description adds genuine meaning beyond the schema: it imposes a Dutch-language requirement on the values of name, ingredients, and steps, which no schema field states. It does not explain the merge-vs-replace behavior at field level beyond the general optionality note.

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?

States a specific verb and resource ('Edit an existing recipe by its id') and enumerates the concrete edits supported (rename, translate, change steps, replace ingredients). It does not explicitly name sibling alternatives like weekplan_add_recipe or weekplan_delete_recipe, so differentiation is implied by 'existing' rather than stated.

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?

Gives clear positive triggers — rename, translate, change steps, replace ingredients — which tell an agent when this tool applies. It stops short of naming alternatives or stating when NOT to use it (e.g. use add_recipe for new recipes).

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

weekplan_list_ingredientsB
Read-only

List all ingredients in the week plan.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

The readOnlyHint=true annotation already establishes this as a safe read, lowering the disclosure bar. The word 'all' usefully signals an unfiltered full listing, but nothing is said about ordering, pagination, or scope of 'the week plan'. Adequate but thin.

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?

A single front-loaded sentence with no filler. Every word earns its place.

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

Completeness3/5

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

For a zero-param read tool with no output schema, the definition is minimally sufficient, but it leaves two real gaps: how 'the week plan' is resolved with no identifying parameter, and what the returned ingredient records contain. These would matter to an agent assembling a workflow.

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 takes zero parameters, so the baseline is 4 per the rubric. There is nothing for the description to clarify beyond confirming the listing is unfiltered.

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?

The description states a specific verb ('List') and resource ('ingredients in the week plan'), which clearly separates it from the sibling 'weekplan_list_recipes'. It does not explicitly name the recipes variant as an alternative, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to call this versus weekplan_list_recipes, nor any mention of prerequisites or conditions. The usage is only implied by the resource name.

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

weekplan_list_recipesA
Read-only

List all recipes (with ingredients and steps).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read. The parenthetical '(with ingredients and steps)' adds useful payload context, signaling that nested detail comes back in one call, but nothing is said about ordering, pagination, completeness limits, or auth needs.

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?

A single short sentence, front-loaded with the verb and resource. Nothing redundant or padded; every clause 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?

With no parameters and no output schema, the description carries the return-value burden and does nod at the content (recipes with ingredients and steps). It is close to complete for such a simple tool, though it omits whether results are ordered, filtered, or paginated.

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 takes zero parameters, so there is no parameter semantics to document and the baseline of 4 applies. The description does not need to compensate for any schema gaps here.

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?

States a specific verb+resource ('List all recipes') and even names the payload shape. It is clearly distinguishable from add_recipe/edit_recipe/delete_recipe siblings by the 'list' verb, though it does not explicitly contrast itself with weekplan_list_ingredients.

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?

Usage is only implied by the verb 'list'; there is no statement of when to reach for this versus the sibling listing tools, nor any prerequisite or exclusion. For a simple read tool the intent is inferable, but no explicit guidance is offered.

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.

  1. 8 tool updatesv1.0.0
    • First observedweekplan_add_ingredient
    • First observedweekplan_add_recipe
    • First observedweekplan_delete_ingredient
    • First observedweekplan_delete_recipe
    • First observedweekplan_edit_ingredient
    • First observedweekplan_edit_recipe
    • First observedweekplan_list_ingredients
    • First observedweekplan_list_recipes

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation4/5

The recipe and ingredient resources are clearly separated, and list/add/edit/delete verbs are distinct. Minor overlap exists because add_ingredient and add_recipe are described as 'add or update' (upsert), which slightly blurs the boundary with edit_ingredient and edit_recipe.

Naming Consistency5/5

Every tool follows the identical weekplan_<verb>_<noun> pattern (list_recipes, add_ingredient, edit_recipe, delete_ingredient, etc.). The convention is predictable and readable throughout with no deviations.

Tool Count5/5

Eight tools cleanly cover two related resources (recipes and ingredients) with full CRUD each. This is a well-scoped, minimal-but-sufficient set with no redundant tools.

Completeness5/5

Both recipes and ingredients have complete lifecycle coverage: list, add/create, edit, and delete. There is no obvious missing operation, and list_recipes with ingredients/steps covers read needs without a separate get tool.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that transforms AI assistants into personal chefs by providing recipe recommendations and meal planning features based on the HowToCook repository.
    5
    2,761 npm
    770
    ISC
  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that enables AI-powered recipe generation and transformation using natural language, supporting dietary restrictions, allergies, and nutritional goals.
    2
    8 npm
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP server for MealMastery AI meal planning that enables users to manage meal plans, recipes, and grocery lists through natural language conversation with AI agents like Claude.
    51 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Cookidoo, enabling AI tools to search recipes, manage shopping lists, and retrieve account and subscription information.
    1
    GPL 3.0