Skip to main content
Glama
parsley-mcp

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.

Inputs: no named parameters.

configure_tokenB

Set the Parsley API bearer token for this session

Inputs: token (required).

get_access_tokenB
Read-only

Get CloudFront access token for CDN.

Inputs: no named parameters.

get_commissary_reportC
Read-only

Commissary transaction report as CSV.

Inputs: endDate (required), startDate (required).

get_eventC
Read-only

Get event with line items.

Inputs: id (required).

get_ingredientB
Read-only

Get ingredient: conversions, supply options, preparations.

Inputs: id (required).

get_menuB
Read-only

Get menu with sections, stations, and items.

Inputs: id (required).

get_menu_itemB
Read-only

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

Inputs: id (required), getByItemNumber.

get_recipeB
Read-only

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

Inputs: id (required), getByItemNumber, roundedQuantities.

list_chef_tagsC
Read-only

List chef tags.

Inputs: no named parameters.

list_chef_usersB
Read-only

List chef users.

Inputs: no named parameters.

list_eventsC
Read-only

List events in a date range.

Inputs: endDate (required), startDate (required).

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.

Inputs: salable.

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.

Inputs: type, syncTag.

list_menusA
Read-only

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

Inputs: no named parameters.

list_serving_stationsC
Read-only

List serving stations.

Inputs: no named parameters.

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.

Inputs: query (required), limit, offset, salable.

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.

Inputs: query (required), type, limit, offset.

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.

Inputs: query (required), limit, offset.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    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 recent community issues

    Related MCP Connectors

    Related MCP Servers