Skip to main content
Glama
zachsnow

parsley-mcp

by zachsnow

Parsley MCP Server

An MCP server that gives AI assistants access to Parsley — recipe management, menu planning, and event operations for food service.

Hosted

A hosted version is available at parsley.vein.io. Connect any MCP client using a Remote transport with your Parsley API token, passed either as a Bearer token in the Authorization header or as a ?token= query parameter.

Read-only endpoint:

https://parsley.vein.io/mcp

Read-write endpoint (includes event and user management):

https://parsley.vein.io/mcp/write

Demo endpoint (no auth required, mock data):

https://parsley.vein.io/mcp/demo

Filtering tools

Pass ?tools=a,b,c to register only the tools you need, trimming the tool schema from the context window:

https://parsley.vein.io/mcp?tools=list_menu_items,get_recipe,list_events

Unknown names return 400. Works on /mcp, /mcp/write, and /mcp/demo.

Related MCP server: Catalyst MCP Server

Local (stdio)

Run locally via npx:

PARSLEY_API_TOKEN=your_token npx parsley-mcp

Or with write access:

PARSLEY_API_TOKEN=your_token npx parsley-mcp --enable-writes

Claude Desktop configuration

{
  "mcpServers": {
    "parsley": {
      "command": "npx",
      "args": ["parsley-mcp"],
      "env": {
        "PARSLEY_API_TOKEN": "your_token"
      }
    }
  }
}

Tools

Read-only: list/get menu items, menus, recipes, ingredients, events, chef users, chef tags, serving stations, commissary reports, and CDN access tokens.

Write (opt-in): create/update events, push sales/waste/leftover data, create/update/delete chef users, and manage chef tags.

Development

npm install
npm run build
npm start

Deploy to Cloudflare Workers:

npm run deploy

Parsley API

This server wraps the Parsley public API.

License

MIT

Available Tools

19 tools
clear_cacheA
Idempotent

Clear the cached Parsley API responses for this token. GET responses are cached for 24 hours; call this if you suspect data is stale. Ask the user for permission before calling, since subsequent reads will refetch from the API.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Adds meaningful context beyond annotations: the 24-hour GET cache TTL, the fact that reads will refetch afterward, and the instruction to obtain user permission first. Annotations already cover idempotence and non-destructiveness, so the description complements rather than repeats them.

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 action and scope, then TTL/trigger, then the permission caveat. 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?

Complete enough for a parameterless cache-control tool: it explains what is cleared, the cache lifetime, and the user-consent requirement. No output schema exists but none is needed for this action.

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 nothing to document beyond the schema. Baseline for a 0-param 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?

States a specific verb ('Clear') and resource ('cached Parsley API responses for this token'), with clear scope. No sibling tool interacts with the cache, so the purpose is unambiguous in context.

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 says when to use it: 'call this if you suspect data is stale.' No alternative tool exists among siblings for cache management, so no exclusion routing is needed, but the trigger condition is clearly stated.

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

configure_tokenB

Set the Parsley API bearer token for this session

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesParsley API bearer token

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It discloses session scoping, but says nothing about overwriting an existing token, permission or auth prerequisites, persistence beyond the session, rate limits, or any error behavior for an invalid token — all relevant for a credential-setting mutation.

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 zero filler; the scope qualifier ('for this session') is placed where it matters without padding.

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 one-parameter configuration tool with no output schema and full schema coverage, the description plus schema is nearly self-sufficient. The only real omission is how this relates to the get_access_token sibling, which an agent would have to guess.

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 parameter is fully documented in the schema itself ('Parsley API bearer token'), which the description merely repeats. Baseline 3 for a one-parameter tool whose schema does 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 and resource (set the Parsley API bearer token) plus the scope (this session), so the action is unambiguous. It does not, however, distinguish itself from the sibling get_access_token, leaving an agent to infer the relationship between obtaining and configuring a token.

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?

The only usage cue is the phrase 'for this session.' There is no statement of when this must be called, whether it should follow get_access_token, whether it overwrites an existing token, or whether it is required before other Parsley calls.

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

get_access_tokenB
Read-only

Get CloudFront access token for CDN.

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?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety and external-call semantics are covered. The description's only added context is that the token targets CloudFront CDN, which is useful for understanding scope but says nothing about token lifetime, caching, or whether each call mints a new token.

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 with the resource and target service front-loaded and no filler. Nothing could be removed without losing information.

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-parameter read-only tool this is minimally adequate, but with no output schema the description should say what is returned (a token string) and whether it is cached or freshly issued. Those operational details are left entirely to inference.

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 nothing for the description to disambiguate; the baseline for a parameterless schema is 4. No parameter-related gaps exist.

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 (get + access token) and scopes it to CloudFront/CDN, so the agent knows exactly what is being fetched. It does not, however, distinguish itself from the related sibling configure_token, which likely also touches the same credential.

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 guidance on when to call this versus configure_token, nor any prerequisite such as needing credentials configured first. Usage is only implied by the name and the 'for CDN' qualifier.

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

get_commissary_reportC
Read-only

Commissary transaction report as CSV.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateYesYYYY-MM-DD
startDateYesYYYY-MM-DD

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds useful behavioral information by specifying the return format as CSV, which is not in the schema or annotations. It does not disclose authentication, rate limits, or pagination, but with annotations present, a 3 is appropriate.

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 extremely short and front-loaded, containing no filler or redundant phrasing. Every word contributes to stating the resource and output format. It is appropriately concise for a simple two-parameter report tool.

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?

Given the simple schema, the readOnly/openWorld annotations, and the lack of an output schema, the description provides the essential output format but omits usage context. It does not explain what a commissary transaction report contains or when an agent should prefer it over other tools. For this level of complexity, it is minimally complete.

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 fully documents both required parameters with their YYYY-MM-DD format. The description adds no additional meaning beyond the schema, such as whether the date range is inclusive or what happens if omitted. Baseline 3 is correct 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.

Purpose3/5

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

The description names a specific resource ('Commissary transaction report') and output format ('as CSV'), so the agent knows what it returns. However, it is a fragment without a verb and does not explicitly distinguish itself from the menu-focused sibling tools. It is adequate but not sharp enough for a 4.

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?

The description gives no indication of when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. There is no context signal from siblings since none of them are reports. This is essentially no usage guidance.

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

get_eventC
Read-only

Get event with line items.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered structurally. The description adds nothing beyond that — it says nothing about what 'line items' are, whether the lookup is by database id, or what happens when the id is not found.

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 terse sentence with no filler and the core action front-loaded. It is appropriately sized, though brevity here partly reflects under-specification rather than disciplined editing.

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

Completeness2/5

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

For a single-param read tool with annotations and no output schema, the description should at minimum explain the id's meaning and what 'line items' entails. Neither is present, so an agent cannot call it confidently without trial and error.

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

Parameters2/5

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

Schema description coverage is 0%, so the sole parameter 'id' is undocumented everywhere. The description never clarifies whether id is an event id, a slug, or an external identifier, leaving the parameter semantics entirely to guesswork.

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

Purpose3/5

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

States a verb ('Get') and resource ('event') with a vague scope modifier ('with line items'). It does not distinguish this from siblings like get_menu, get_recipe, or get_menu_item, which share the identical singular-retrieval pattern.

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 list_events or the other get_* siblings. The agent must infer that this is the single-object fetch counterpart to list_events.

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

get_ingredientB
Read-only

Get ingredient: conversions, supply options, preparations.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful content about what the payload contains (conversions, supply options, preparations), but says nothing about error behavior when an id is unknown or the depth of the returned data.

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 tight sentence with the action front-loaded and no filler. It is borderline telegraphic, but every word carries information about the tool and its return content.

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 read tool with annotations covering safety and no output schema, hinting at returned fields is a reasonable substitute for documenting returns. The missing piece is the identifier semantics — the one required input is left completely unexplained.

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

Parameters2/5

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

Schema description coverage is 0% and the single id parameter has no description in either schema or prose. The description never explains what identifier is expected (numeric id form, where to obtain it), so the agent gets no meaning beyond the type.

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 ('Get ingredient') and enumerates the data returned (conversions, supply options, preparations). It is distinguishable from list_ingredients and search_ingredients by the singular 'get' pattern, but it never explicitly contrasts itself with those siblings.

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 explicit when-to-use guidance, no mention of the alternative list/search tools, and no prerequisites for calling it. The only signal is the conventional get/list split implied by the sibling names, which the agent must infer.

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

get_menuB
Read-only

Get menu with sections, stations, and items.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the useful fact that the response is nested (sections, stations, items), but says nothing about permissions, absence behavior for a bad id, or payload size.

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 no filler. It is efficiently sized, though the brevity comes at the cost of the missing parameter and usage detail.

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 simple read-only getter with one param and no output schema, the description conveys the general shape of the return payload. However, with no output schema present, it should say more about the response structure and the meaning of the id to be fully self-sufficient.

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

Parameters2/5

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

Schema description coverage is 0% and the single required parameter `id` is only typed as number. The description never clarifies that this is a menu identifier or where it comes from, leaving the sole parameter undocumented in both schema and prose.

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 (get) and resource (menu) and enumerates the sub-resources it carries (sections, stations, items). It distinguishes the singular fetch from the plural list_menus/search_menus siblings implicitly through the noun, though it never names an alternative explicitly.

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 search_menus or list_menus, nor any prerequisite such as needing an id from a prior listing call. Usage must be inferred entirely from the name.

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

get_menu_itemB
Read-only

Get menu item details: description, nutrition, allergens, photo.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID (numeric) or item number (string)
getByItemNumberNoTrue if id is an item number

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that nutrition, allergens, and photo are part of the payload, which is useful context, but says nothing about error behavior for unknown IDs or rate 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?

A single compact sentence with the verb and resource front-loaded and the returned fields listed efficiently. No wasted words, though the terse colon-list style leaves no room for qualifying context.

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?

There is no output schema, so the description's enumeration of return fields (description, nutrition, allergens, photo) usefully compensates. For a simple 2-parameter read tool this is largely sufficient, with only the item-number lookup nuance left to the schema.

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 both parameters (id, getByItemNumber) are documented in the schema itself, including the numeric-vs-item-number distinction. The description adds no parameter meaning beyond that, so the baseline 3 applies.

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?

Specific verb+resource ('Get menu item details') that clearly names the entity and enumerates the returned facets. It is distinguishable from siblings like get_menu (whole menu) and list_menu_items, though it never explicitly contrasts itself with those siblings.

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 guidance on when to use this versus search_menu_items or list_menu_items, and no mention of prerequisites or the item-number lookup path. The agent must infer usage entirely from the name.

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

get_recipeB
Read-only

Get recipe: steps, ingredients, sub-recipes, nutrition, cost.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID (numeric) or item number (string)
getByItemNumberNoTrue if id is an item number
roundedQuantitiesNoRound to 2 decimals (default true)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds value by naming what is returned (steps, ingredients, sub-recipes, nutrition, cost), which matters since there is no output schema, but it says nothing about auth, errors, or caching.

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?

Single front-loaded sentence with the verb first and a tight comma-separated payload list. No filler, no repetition.

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 simple read tool with no output schema, the description compensates adequately by enumerating the response fields, and all three parameters are fully documented in the schema. Missing only minor operational notes like caching behavior or rate limits.

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 documents id, getByItemNumber, and roundedQuantities. The description adds no parameter-level meaning beyond that, making the baseline 3 appropriate.

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?

Specific verb+resource ('Get recipe') and an enumeration of the returned payload (steps, ingredients, sub-recipes, nutrition, cost). It does not differentiate itself from siblings like get_menu_item or get_ingredient beyond the distinct resource name, so it stops short of 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?

No guidance on when to call this versus alternatives, no prerequisites, and no when-not conditions. The implied usage (fetch a recipe by id) is obvious but never stated.

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

list_chef_tagsC
Read-only

List chef tags.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered by structured data. The description adds nothing beyond that — no pagination behavior, no scope (all tags? user tags? workspace tags?), and no note on return shape.

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

Conciseness3/5

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

One clean front-loaded sentence with no waste, but the brevity is under-specification rather than genuine conciseness — there is no substance to be concise about.

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

Completeness2/5

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

For a zero-param read-only tool the description could still convey scope and result content, but it does not. With no output schema and only an openWorldHint annotation, an agent has no idea what tag data comes back or how to use it.

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 and the schema is an empty object, so there is nothing for the description to disambiguate. Baseline 4 applies for a parameterless tool.

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

Purpose2/5

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

"List chef tags" is a near-verbatim restatement of the tool name list_chef_tags, adding no scope, resource detail, or differentiation from siblings like list_chef_users. An agent learns nothing about what a 'chef tag' is or where these tags come from.

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 when-to-use guidance, no mention of alternatives or related tools, and no condition that would select this tool over the many other list_* siblings. The entire description is a single purpose statement.

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

list_chef_usersB
Read-only

List chef users.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the agent knows this is a safe, open-world read. The description adds nothing beyond that, but with annotations covering the safety profile a baseline 3 is appropriate.

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 short sentence that is front-loaded and wastes no words. It is concise, though it is arguably too terse to earn a top score.

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 simple no-parameter list tool with annotations covering the safety profile and no output schema, the description is minimally adequate. It omits what the returned chef users represent and any pagination or scoping behavior.

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 and the schema is empty, so there is nothing for the description to document. Baseline 4 applies for a no-parameter tool.

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

Purpose3/5

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

States a verb (List) and resource (chef users), so the purpose is identifiable. However, it is essentially a restatement of the tool name list_chef_users with no added specificity, and it does not differentiate from similarly-named siblings such as list_chef_tags.

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 guidance, no exclusions, and no reference to any alternative tool. The agent gets no help deciding between this and the many other list_* siblings.

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

list_eventsC
Read-only

List events in a date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateYesEnd, e.g. 2023-12-31T23:59:59
startDateYesStart, e.g. 2023-01-03T09:00:00

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety and open-world nature are covered. The description adds only the date-range scoping, which is already implied by the required params. No mention of pagination, sort order, result size, or what happens with large ranges.

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 tight sentence with no filler, front-loaded with the verb and resource. Appropriately sized for a trivial two-param list tool.

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

Completeness2/5

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

For a list tool without an output schema, the description gives no sense of return shape, volume, ordering, or pagination. It is minimally functional but incomplete relative to what an agent needs to call it confidently.

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 both parameters already carry format examples, so the schema does the heavy lifting. The description adds nothing beyond restating the date-range filter. Baseline 3 is appropriate.

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?

Clear verb 'List' plus resource 'events' with a scoping constraint (date range). It doesn't differentiate itself from any sibling, but none of the listed siblings cover events listing (only get_event for single retrieval), so the 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 get_event, nor what to do after listing. No exclusions or prerequisites are stated. Only the most rudimentary implied usage from the name.

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

list_ingredientsA
Read-only

List ingredients. Returns up to 20 with {items, total, truncated}; each item has id, name, itemNumber, salable. If truncated, prefer search_ingredients or filter by salable.

ParametersJSON Schema
NameRequiredDescriptionDefault
salableNoFilter by salable status

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnlyHint=true, openWorldHint=true). The description adds the meaningful behavioral fact that only up to 20 items are returned and that truncation can occur, which is beyond the annotations. It doesn't explain ordering or pagination mechanics, so it's useful but not rich.

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 tight sentences, front-loaded with purpose then return shape then escape hatch. No filler; every clause carries actionable information (cap, fields, alternatives).

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 simple one-param read tool with no output schema, the description covers purpose, cap, returned fields, and fallback routing. The only gap is not clarifying ordering or what total represents, but for this complexity level it is nearly complete.

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 one optional boolean and 100% schema coverage, the schema already documents the salable filter. The description reinforces it as a truncation-mitigation strategy, adding a usage reason beyond the schema's terse label, which is more than baseline.

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?

Specific verb+resource ('List ingredients') that directly matches the tool name, and it goes further by describing the result shape and cap. It differentiates from search_ingredients by naming it only as an alternative for truncated results, but the list vs search distinction is implicit rather than explicit.

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 states when to switch to search_ingredients ('If truncated') and mentions filtering by salable as another option, giving clear conditional routing. It stops short of stating when this tool is preferred over search_ingredients in the first place, but the trigger condition is concrete.

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

list_menu_itemsA
Read-only

List menu items (recipes, subrecipes, ingredients). Returns up to 20 with {items, total, truncated}; each item has id, name, itemNumber, tags, type. If truncated, prefer search_menu_items or narrow with syncTag/type.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by item type
syncTagNoFilter by sync tag name

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds real behavioral context the annotations do not: a hard cap of 20 items, the {items, total, truncated} envelope, and what truncation signals. It does not mention auth or rate limits, but for a read-only list tool that is a minor omission.

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 tight sentences: purpose first, then return shape and size limit, then the escalation path. Every clause carries information and nothing is repeated.

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?

For a two-optional-parameter list tool with no output schema, the description supplies the return structure, the pagination/truncation behavior, and the escalation route — everything needed to call it correctly and interpret the result.

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 both parameters (type with its enum, syncTag) are already documented there. The description only echoes their names as narrowing tools, adding no format or semantics beyond the schema, so baseline 3 applies.

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?

States a specific verb and resource ('List menu items') and immediately disambiguates what an item is (recipes, subrecipes, ingredients). It also names the sibling search_menu_items, so an agent can distinguish the two without opening a schema.

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

Usage Guidelines5/5

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

Gives an explicit fallback condition and alternative: 'If truncated, prefer search_menu_items or narrow with syncTag/type.' The when-to-switch rule is unambiguous and tied to an observable response field.

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

list_menusA
Read-only

List menus. Returns up to 20 with {items, total, truncated}; each item has id, name. If truncated, prefer search_menus.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint and openWorldHint, so safety is already covered. The description adds genuinely useful behavioral detail beyond them: the 20-item cap and the truncation fallback, which an agent needs to interpret results correctly.

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, zero waste, front-loaded with the core action, then the limit, then the fallback. 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?

No output schema exists, and the description compensates by describing the return shape ({items, total, truncated}, items carrying id and name) plus the truncation escape hatch. Complete for a simple zero-param list tool; only minor gaps such as ordering or a hard default page size.

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 nothing to document; baseline is 4. The description correctly says nothing spurious about inputs.

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?

States a specific verb (List) and resource (menus), and explicitly distinguishes itself from the sibling search_menus by naming it as the alternative. An agent can pick between list_menus and search_menus without opening either schema.

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 one explicit routing condition: 'If truncated, prefer search_menus.' That is clear context for when to switch tools, but it doesn't say when to use list_menus at all versus other siblings (e.g. get_menu), so it stops short of full when/when-not guidance.

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

list_serving_stationsC
Read-only

List serving stations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered by structured data. The description adds nothing beyond that: no mention of result shape, pagination, ordering, or what a serving station represents.

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 short sentence with no filler or redundancy, front-loaded. It is concise to the point of being thin, but there is nothing to trim.

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

Completeness2/5

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

For a zero-parameter listing tool with no output schema and openWorld semantics, the description leaves the agent without any sense of what is returned or how the result is scoped. The absence of an output schema means the description should carry more of this burden than it does.

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 per the rubric the baseline is 4; there is no parameter semantics to explain and the description is not deficient on this dimension.

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

Purpose2/5

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

"List serving stations" restates the tool name almost verbatim, giving no more information than the identifier already conveys. It is syntactically a verb+resource but conveys no scope, distinguishing features, or relation to sibling list_* tools such as list_menus or 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 Guidelines2/5

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

There is no when-to-use guidance, no exclusions, and no mention of alternatives among the many sibling tools. The only hint of usage comes from the name itself, not from the description.

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

search_ingredientsA
Read-only

Fuzzy-ranked search of ingredients over name/itemNumber (typo-tolerant, multi-token). Returns {items, total, offset, truncated}, best matches first. Default page size 20 (max 50); use offset to page through ranked results.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax items to return (default 20, max 50)
queryYesSearch query (fuzzy, multi-token)
offsetNoSkip this many ranked results (default 0)
salableNoFilter by salable status

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint) and scope (openWorldHint), lowering the bar. The description adds genuinely useful behavioral detail beyond annotations: fuzzy typo-tolerant multi-token matching, ranked ordering, default/max page size, truncation signaling, and offset-based paging. It stops short of describing ranking/scoring mechanics or tie-breaking behavior.

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 front-loaded sentences with no filler: the matching behavior and return shape come first, paging mechanics second. 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?

For a read-only paged search with a fully-described schema and no output schema, the description covers matching semantics, ranking, return shape keys, truncation, and paging. The only gaps are the unmentioned salable filter and sibling differentiation; otherwise it gives an agent what it needs to call correctly.

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 documents limit, query, offset, and salable. The description restates page size and offset usage but adds no syntax or semantics beyond the schema and omits the salable filter entirely. Baseline 3 is appropriate when the schema carries the load.

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?

States a specific verb (search) and resource (ingredients) with the exact matching fields (name/itemNumber) and matching semantics (fuzzy, typo-tolerant, multi-token). It is clearly distinguishable from list_ingredients (enumeration) and get_ingredient (single fetch) among its siblings.

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?

The description implies exploration/retrieval usage and explains paging mechanics, but never explicitly states when to use this vs list_ingredients or get_ingredient. No when-not guidance or alternative routing is provided, leaving the agent to infer from names.

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

search_menu_itemsA
Read-only

Fuzzy-ranked search of menu items over name/itemNumber/tags (typo-tolerant, multi-token). Returns {items, total, offset, truncated}, best matches first. Default page size 20 (max 50); use offset to page through ranked results.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by item type
limitNoMax items to return (default 20, max 50)
queryYesSearch query (fuzzy, multi-token)
offsetNoSkip this many ranked results (default 0)

TDQS

A4/5.0
Behavior4/5

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

Annotations declare read-only and open-world, so safety is covered. The description adds genuinely useful behavioral context: result ordering (best matches first), ranking/relevance behavior, returned shape ({items, total, offset, truncated}), paging semantics, and the default/max page size. This goes meaningfully beyond the annotations.

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 sentences, no waste. Search behavior and return shape are front-loaded, paging details follow. Every clause carries information.

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 search semantics, return fields, ordering, and pagination for a 4-param read tool with no output schema. The truncation flag is named but not explained; otherwise complete. Reasonably self-sufficient.

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 documents every parameter including limit defaults/max, offset semantics, and the type enum. The description restates limit/offset defaults, adding little beyond the schema. Baseline 3 applies.

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?

States a specific verb (search), resource (menu items), and the exact fields searched (name/itemNumber/tags). The parenthetical '(typo-tolerant, multi-token)' distinguishes the search semantics from the sibling search_menus, which plausibly searches menu names rather than item fields.

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?

Provides implicit paging context ('use offset to page through ranked results'; default size 20, max 50) but does not state when to use this tool versus its close siblings search_menus, list_menu_items, or search_ingredients. No explicit when/when-not guidance is given.

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

search_menusA
Read-only

Fuzzy-ranked search of menus by name (typo-tolerant, multi-token). Returns {items, total, offset, truncated}, best matches first. Default page size 20 (max 50); use offset to page through ranked results.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax items to return (default 20, max 50)
queryYesSearch query (fuzzy, multi-token)
offsetNoSkip this many ranked results (default 0)

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description goes further by disclosing the ranking model (best matches first), the result envelope {items, total, offset, truncated}, and the truncation behavior — real behavioral context beyond structured fields.

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 sentences, no padding, and the ranking semantics are front-loaded before the paging detail. Every clause carries information an agent needs.

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?

With no output schema, the description supplies the return shape and paging contract itself, and the annotations cover safety. Nothing needed to call and interpret this tool correctly is missing.

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 limit, query and offset are already fully documented in the schema. The description's restatement of default size 20 / max 50 and offset paging adds no syntax or format detail beyond that, so the baseline 3 applies.

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 ('Fuzzy-ranked search of menus by name') plus the ranking behavior (typo-tolerant, multi-token), which separates it from list_menus and search_menu_items. It stops short of naming any sibling explicitly, so an agent must infer the boundary rather than be told it.

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?

The description implies when to use it — fuzzy name lookup rather than enumeration — but never states when to prefer list_menus or search_menu_items, nor any prerequisites. Usage is inferable from the verb, not spelled out.

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. 19 tool updatesv0.2.1
    • First observedclear_cache
    • First observedconfigure_token
    • First observedget_access_token
    • First observedget_commissary_report
    • First observedget_event
    • First observedget_ingredient
    • First observedget_menu
    • First observedget_menu_item
    • First observedget_recipe
    • First observedlist_chef_tags
    • First observedlist_chef_users
    • First observedlist_events
    • First observedlist_ingredients
    • First observedlist_menu_items
    • First observedlist_menus
    • First observedlist_serving_stations
    • First observedsearch_ingredients
    • First observedsearch_menu_items
    • First observedsearch_menus

TDQS

B3.4/5.0

Scored across 19 tools

Disambiguation4/5

Each tool targets a distinct resource+action, and the list-vs-search pairs (list_menus/search_menus, list_ingredients/search_ingredients, list_menu_items/search_menu_items) are clearly differentiated by their descriptions. The only mild overlap is between get_menu, get_menu_item, and get_recipe, but these map to genuinely different entities so an agent can select correctly.

Naming Consistency5/5

Every tool follows a clean snake_case verb_noun pattern (list_/search_/get_/clear_/configure_). The verbs are used consistently: list_* for enumeration, search_* for fuzzy query, get_* for single-entity fetch, matching the description semantics.

Tool Count4/5

19 tools is at the higher end but justified given the domain spans menus, recipes, ingredients, menu items, events, plus utility/auth tools (configure_token, clear_cache, get_access_token). Nothing feels redundant given the list/search/detail triad per entity.

Completeness4/5

The surface covers read operations comprehensively across all entities (list, search, get for menus/ingredients/menu items, plus recipes, events, stations, chef tags/users, report). There are no write/update/delete operations, but the server appears intentionally read-only (24h GET cache), and only minor detail getters (e.g. serving station, chef user) are absent.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers