Skip to main content
Glama
markswendsen-code

mcp-blueapron

@striderlabs/mcp-blueapron

Model Context Protocol (MCP) connector for Blue Apron meal kit delivery. Manage your subscription, browse weekly menus, select recipes, skip deliveries, and update preferences — all through Claude or any MCP-compatible AI assistant.

Features

  • Browse menus — see upcoming recipe options with cook times, difficulty, and dietary info

  • Select recipes — choose which meals to receive for a delivery

  • Skip weeks — pause a delivery without cancelling your subscription

  • View account — subscription plan, servings, and next delivery details

  • Delivery schedule — all upcoming deliveries with status and modify/skip availability

  • Update preferences — dietary restrictions, allergens, cuisines, and spice level

Related MCP server: Warteg Online MCP Server

Prerequisites

  • Node.js 18+

  • A Blue Apron account with an active subscription

  • Playwright Chromium (installed automatically)

Installation

npx playwright install chromium

Configuration

Set your Blue Apron credentials as environment variables:

export BLUEAPRON_EMAIL="your@email.com"
export BLUEAPRON_PASSWORD="yourpassword"

Session cookies are persisted to ~/.config/mcp-blueapron/session.json so you only need to log in once per session.

Usage with Claude Desktop

Add to your Claude Desktop MCP config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "blueapron": {
      "command": "npx",
      "args": ["@striderlabs/mcp-blueapron"],
      "env": {
        "BLUEAPRON_EMAIL": "your@email.com",
        "BLUEAPRON_PASSWORD": "yourpassword"
      }
    }
  }
}

Tools

get_upcoming_menus

Browse available recipes for upcoming delivery weeks.

What meals are available this week on Blue Apron?
Show me next week's Blue Apron menu options.

Parameters:

  • week_offset (optional, 0-4): Week offset from current. 0 = this week, 1 = next week, etc.


select_recipes

Choose specific recipes for a delivery.

Select the Spicy Chicken Tacos and the Mushroom Risotto for my delivery on 2024-03-15.

Parameters:

  • delivery_id (required): Delivery identifier or date (YYYY-MM-DD)

  • recipes (required): Array of { recipe_id, servings? } objects


skip_week

Skip an upcoming delivery week.

Skip my Blue Apron delivery for March 22nd.

Parameters:

  • delivery_id (required): Delivery ID or date (YYYY-MM-DD) to skip


get_account

View your account and subscription details.

What is my current Blue Apron subscription plan?

Parameters: None


get_delivery_schedule

See all upcoming deliveries.

Show me my upcoming Blue Apron delivery schedule.

Parameters: None


update_preferences

Update recipe preferences and dietary settings.

Set my Blue Apron preferences to vegetarian with no nuts, mild spice level, and prefer Italian and Mediterranean cuisines.

Parameters:

  • dietary_restrictions (optional): e.g. ["vegetarian", "pescatarian"]

  • allergens (optional): e.g. ["nuts", "shellfish", "wheat"]

  • disliked_ingredients (optional): Ingredients to avoid

  • preferred_cuisines (optional): e.g. ["Italian", "Asian", "Mediterranean"]

  • spice_level (optional): "mild" | "medium" | "spicy" | "extra-spicy"

  • recipe_types (optional): e.g. ["quick", "family-friendly", "wellness"]


Example Conversation

User: What's on the Blue Apron menu this week?

Claude: [calls get_upcoming_menus]
Here are this week's Blue Apron options:

1. **Seared Salmon with Lemon-Caper Sauce** — 35 min, Easy, 520 cal
2. **Spicy Korean Beef Bibimbap** — 45 min, Medium, 680 cal
3. **Mushroom & Spinach Flatbread** — 30 min, Easy, 490 cal (Vegetarian)
...

User: Skip my delivery next week, I'll be traveling.

Claude: [calls skip_week with next week's date]
Done! Your Blue Apron delivery for March 22nd has been skipped.

Security Notes

  • Credentials are passed via environment variables only — never stored in config files

  • Session cookies are saved locally at ~/.config/mcp-blueapron/session.json

  • The connector uses a realistic browser profile to avoid detection

  • All browser interactions are read-only except when explicitly invoking write operations (select, skip, update)

Development

git clone <repo>
cd mcp-blueapron
npm install
npm run build
node dist/index.js

License

MIT — Strider Labs

Available Tools

6 tools
get_accountA

Get your Blue Apron account details including name, email, subscription plan, meals per week, servings, and next delivery date.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It lists returned fields but does not disclose side effects (none expected), permissions, rate limits, or error conditions. The read-only nature is implicitly clear, but further behavioral context would improve transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence that gives clear purpose and output details without any extra words. It is appropriately front-loaded.

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

Completeness4/5

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

Given no output schema, the description adequately explains return values by listing fields. It does not cover error cases or data freshness, but for a simple, parameterless get operation, it is fairly complete. Sibling tools are present, making context clear.

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?

There are no parameters (0 params, 100% schema coverage). The description adds meaning by explicitly listing the returned fields, which goes beyond the empty schema. Baseline for zero params is 4, and the description meets that.

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

Purpose5/5

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

The description clearly states it retrieves account details (name, email, subscription plan, meals per week, servings, next delivery date). It uses a specific verb ('Get') and resource ('account'), distinguishing it from sibling tools like get_upcoming_menus or select_recipes.

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?

No explicit guidance on when to use this tool versus alternatives. However, the name and description imply it's for fetching account information, and given the sibling tools, usage is somewhat inferred. No exclusions or when-not-to-use are mentioned.

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

get_delivery_scheduleA

View all upcoming Blue Apron deliveries including dates, selected recipes, delivery status, and whether you can still modify or skip each delivery.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. 'View' implies a read-only operation, but the description does not explicitly state side effects, permissions, or rate limits. It is adequate 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?

The description is a single sentence that front-loads the main action, with no wasted words. It is concise and well-structured.

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 zero parameters and no output schema, the description provides a good overview of the returned information. It could mention the time horizon or sorting, but it is fairly complete for a simple read tool.

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

Parameters4/5

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

The tool has zero parameters, so the description does not need to add parameter meaning. Baseline is 4 as per guidelines.

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

Purpose5/5

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

The description clearly states the tool views all upcoming deliveries and lists the included information (dates, recipes, status, modify/skip info). It distinguishes itself from siblings like get_upcoming_menus and skip_week by focusing on delivery schedule overview.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool (viewing upcoming deliveries). It does not explicitly mention when not to use or alternatives, but the context is sufficient for an agent to infer its purpose.

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

get_upcoming_menusA

Get the upcoming Blue Apron menu options showing available recipes you can choose for your next deliveries. Returns recipe names, descriptions, cook times, difficulty, and dietary info.

ParametersJSON Schema
NameRequiredDescriptionDefault
week_offsetNoWeek offset from current week (0 = current, 1 = next week, etc.)

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It describes the operation as read-only (getting menus) and lists return fields, but does not mention safety aspects (e.g., no side effects) or potential limitations like rate limiting or authentication requirements.

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

Conciseness4/5

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

The description is a single sentence with a clear list of return fields, making it efficient. However, it could be slightly more structured (e.g., bullet points) for faster parsing, but overall it is concise and front-loaded.

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 list tool with one parameter and no output schema, the description adequately covers purpose and return values. However, it lacks details on pagination, ordering, or how the week_offset aligns with delivery schedules, which could improve completeness.

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% with the week_offset parameter already described. The description adds context ('available recipes for your next deliveries') that clarifies the parameter's purpose beyond the schema, enhancing understanding.

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

Purpose5/5

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

The description clearly states the tool retrieves upcoming menu options from Blue Apron and lists specific return fields (recipe names, descriptions, cook times, difficulty, dietary info), which differentiates it from sibling tools like select_recipes or skip_week.

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 usage for viewing menus before recipe selection, but lacks explicit guidance on when to use versus alternatives like get_account or get_delivery_schedule. No 'when not to use' or direct sibling comparisons are provided.

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

select_recipesA

Select specific recipes for an upcoming Blue Apron delivery. Provide the delivery ID or date and the recipe IDs you want to receive.

ParametersJSON Schema
NameRequiredDescriptionDefault
recipesYesRecipes to select for this delivery
delivery_idYesDelivery identifier or date in YYYY-MM-DD format

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only states the action without mentioning side effects (e.g., overwriting previous selections), required permissions, error conditions, or output 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?

The description is concise at two sentences, front-loaded with the purpose, and contains no extraneous 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?

Given the tool's simplicity (2 params, no nested objects, no output schema), the description provides the basic purpose and input requirements. However, it lacks information about response format, error handling, and behavioral assumptions, which are gaps for an agent.

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 description adds minimal value beyond the schema descriptions. It confirms delivery_id can be a date, but this is already in the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (select) and resource (recipes for a Blue Apron delivery), and mentions the required inputs (delivery ID/date and recipe IDs). It is specific and distinguishes itself from sibling tools like skip_week or get_upcoming_menus.

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 the usage context (upcoming delivery) but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or prerequisite conditions.

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

skip_weekA

Skip an upcoming Blue Apron delivery week. You won't receive a box or be charged for that week.

ParametersJSON Schema
NameRequiredDescriptionDefault
delivery_idYesDelivery identifier or date in YYYY-MM-DD format to skip

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It accurately describes the behavioral outcome: no box and no charge. However, it does not cover reversibility or other side effects, which is acceptable for a skip action.

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

Conciseness5/5

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

The description is extremely concise with two sentences, each adding value. No unnecessary details, front-loaded with the action.

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

Completeness4/5

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

Given the simplicity of the tool (one parameter, no output schema), the description is sufficiently complete. It explains the action and its direct effect. Could mention edge cases but not necessary.

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?

With 100% schema description coverage, the baseline is 3. The description does not add additional meaning beyond what the schema already provides; it merely restates the parameter format.

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

Purpose5/5

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

The description clearly states the tool skips an upcoming Blue Apron delivery week and explains the consequences (no box, no charge). It is specific and easily distinguished from sibling tools like get_delivery_schedule or update_preferences.

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

Usage Guidelines4/5

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

The description implicitly indicates when to use this tool (to skip a delivery) but does not provide explicit guidance on when not to use it or compare it with alternatives. The context is clear though.

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

update_preferencesB

Update your Blue Apron recipe preferences including dietary restrictions, allergens, disliked ingredients, preferred cuisines, spice level, and recipe types.

ParametersJSON Schema
NameRequiredDescriptionDefault
allergensNoAllergens to flag (e.g. milk, eggs, nuts, wheat, soy, shellfish)
spice_levelNoPreferred spice level
recipe_typesNoPreferred recipe types (e.g. quick, family-friendly, wellness)
preferred_cuisinesNoPreferred cuisine types (e.g. Italian, Asian, Mexican, Mediterranean)
dietary_restrictionsNoDietary restrictions (e.g. vegetarian, vegan, pescatarian)
disliked_ingredientsNoIngredients to avoid in recipe suggestions

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must bear full burden. It discloses that it updates preferences, but does not mention persistence, side effects, required permissions, or any behavioral traits beyond the basic update action.

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

Conciseness4/5

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

The description is a single sentence that is front-loaded with the verb and resource. It is concise and to the point, but lacks structure like separate paragraphs for different aspects.

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?

The tool has 6 parameters and no output schema or annotations. The description is only one sentence and does not cover return values, error conditions, rate limits, or any other contextual information needed for effective use.

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 baseline is 3. The description lists the same fields as the schema but adds no additional meaning beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the verb 'Update' and the resource 'your Blue Apron recipe preferences', and lists the specific fields (dietary restrictions, allergens, etc.). This distinguishes it from sibling tools like select_recipes or get_account.

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 provides no guidance on when to use this tool versus alternatives like select_recipes, no prerequisites, and no context for usage. It simply lists what can be updated.

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. 6 tool updatesv1.0.0
    • First observedget_account
    • First observedget_delivery_schedule
    • First observedget_upcoming_menus
    • First observedselect_recipes
    • First observedskip_week
    • First observedupdate_preferences

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct action: browsing menus, selecting recipes, skipping weeks, viewing account, checking delivery schedule, updating preferences. No overlap in purpose.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern using snake_case (e.g., get_upcoming_menus, select_recipes, skip_week). No mixing of conventions.

Tool Count5/5

With 6 tools, the server is well-scoped for a recipe delivery service. Each tool serves a distinct and necessary function without being overly granular or missing core actions.

Completeness4/5

Covers core user workflows: browsing menus, selecting recipes, skipping weeks, account details, schedule, and preferences. Minor gaps like modifying selections or pausing subscription, but overall sufficient for primary tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with Saffron recipe management functionality, including creating and updating recipes, importing from websites or text, and organizing cookbooks. Provides comprehensive recipe management capabilities through Saffron's API with support for ingredients, instructions, timing, and metadata.
    2 npm
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search recipes, compose nutritionally balanced meals, optimize weekly meal plans based on macro targets for family members, and generate consolidated grocery lists from a personal recipe database.
    -