Skip to main content
Glama

@striderlabs/mcp-instacart

Order groceries via Instacart using AI agents

npm MCP Registry Claude Desktop License: MIT

Part of Strider Labs — action execution for personal AI agents.

Get Started in 2 Minutes

For Claude Desktop Users

  1. Add this to your Claude Desktop config:

{
  "mcpServers": {
    "instacart": {
      "command": "npx",
      "args": ["-y", "@striderlabs/mcp-instacart"]
    }
  }
}
  1. Restart Claude.

  2. Tell Claude: "Order my usual groceries for delivery tomorrow morning"

Your agent can now place orders. That's it.


Related MCP server: Frisco MCP

Installation (NPM)

npm install @striderlabs/mcp-instacart

Or with npx directly:

npx @striderlabs/mcp-instacart

Features

  • 🛒 Search for products by name or category

  • 📦 Browse stores and product availability

  • 🏪 Add to cart with quantities and special requests

  • 💳 Place orders with delivery time selection

  • 📍 Track orders with real-time status

  • 🔐 Persistent sessions - stay logged in across restarts

  • 🔄 Automatic MFA - handles multi-factor authentication

  • 📱 Per-user credentials - encrypted session storage

  • Saved items - order your favorites faster

Tested & Compatible

Component

Version

Status

MCP SDK

^1.0.0

Node.js

18+

Claude Desktop

Latest

Claude (API)

claude-3.5-sonnet+

Anthropic SDK

^0.20+

Metrics

  • Weekly downloads: 271 (Apr 10-17, 2026) — Top grocery connector (+330% growth)

  • Status: ✅ Live in production

  • Reliability: 85%+ task completion rate

  • Discovery: npm, mcpservers.org, ClawHub, PulseMCP, Glama, LobeHub

Available Elsewhere

How It Works

For Agents

Your agent can use these capabilities:

// Search for products
products = search_products({
  query: "organic milk",
  location: "San Francisco, CA"
})

// Browse a store's offerings
store_products = get_store_products({
  store_id: "whole_foods_sf",
  category: "Dairy"
})

// Add to cart
add_to_cart({
  product_id: "organic_milk_gallon",
  quantity: 2,
  special_instructions: "Cold stock, please"
})

// Place an order
order = place_order({
  delivery_time: "tomorrow morning",
  delivery_address: "123 Main St, San Francisco, CA",
  special_instructions: "Ring the doorbell twice"
})

// Track delivery
status = track_order({ order_id: order.order_id })

Session Management

  • Each user has encrypted, persistent credentials

  • Automatic OAuth token refresh

  • MFA handling (SMS/email)

  • Sessions survive agent restarts

Reliability

  • 85%+ task completion rate

  • Automated UI change detection (connectors update when Instacart changes)

  • Fallback paths for failures

  • 24/7 monitoring + alerting

Authentication

The MCP server uses a persistent browser profile (~/.strider/instacart/browser-profile) so your login session survives server restarts automatically.

First-time login

  1. Set INSTACART_HEADLESS=false in your MCP server config so the browser window is visible:

{
  "mcpServers": {
    "instacart": {
      "command": "npx",
      "args": ["-y", "@striderlabs/mcp-instacart"],
      "env": { "INSTACART_HEADLESS": "false" }
    }
  }
}
  1. Restart Claude / your MCP client.

  2. Ask Claude to run instacart_login — a real browser window will open.

  3. Log in to Instacart inside that window.

  4. Run instacart_status to confirm authentication.

  5. Remove INSTACART_HEADLESS (or set it back to true) and restart — the saved profile keeps you logged in.

How login detection works

Authentication is verified by navigating to /account and confirming the page resolves without a redirect to /login or /authentication (positive detection). This is more reliable than checking for the absence of a "Log in" button.

Configuration

Environment Variables

# Show browser window (required for first-time login)
INSTACART_HEADLESS=false   # default: true (headless)

Self-Hosted

# Clone the repo
git clone https://github.com/striderlabsdev/mcp-instacart
cd mcp-instacart

# Install dependencies
npm install

# Start the server
npm start

# Your agent can now connect to localhost:3000

Architecture

How We Connect

This connector uses browser automation (Playwright) to interact with Instacart, because Instacart doesn't have a public API. Here's why that's safe and reliable:

  • User-controlled: Your agent only accesses your own Instacart account

  • Session-based: We store your login session securely, not your password

  • Change-aware: We detect Instacart UI changes and alert immediately

  • Fingerprinting: We use realistic browser profiles to avoid bot detection

  • Rate-limited: We respect Instacart's infrastructure with appropriate delays

Security

  • Credentials stored encrypted in your local .env or secure vault

  • Sessions isolated per user

  • No data sent to third parties

  • MIT Licensed — audit the code yourself

Support

Contributing

We welcome contributions! Areas of interest:

  • Bug reports and fixes

  • Feature requests (new stores, categories, etc.)

  • Performance improvements

  • Documentation enhancements

See CONTRIBUTING.md for guidelines.

License

MIT — Free to use, modify, and distribute. See LICENSE for details.


Built by Strider Labs — Making AI agents actually useful.

GitHub | Website | Discord

Available Tools

11 tools
instacart_add_to_cartB

Add a product to the Instacart cart. Searches for the product and adds the first matching result.

ParametersJSON Schema
NameRequiredDescriptionDefault
productYesProduct name or search query
quantityNoQuantity to add (default: 1)

TDQS

B3.3/5.0
Behavior2/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. It discloses that the tool searches and adds the first matching result, which is a key behavioral trait. However, it lacks details on error handling, authentication needs, rate limits, or what happens if the product isn't found, which are important for a mutation tool.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core action and includes essential behavioral context. Every word earns its place, with no redundant or unnecessary information, making it highly concise and well-structured.

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 moderate complexity (a mutation with search behavior), no annotations, and no output schema, the description is somewhat complete but has gaps. It covers the basic operation but lacks details on prerequisites, errors, or return values, which could hinder agent effectiveness in edge cases.

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 both parameters ('product' and 'quantity') adequately. The description adds minimal value by implying the 'product' parameter is used for searching, but doesn't provide additional semantics beyond what the schema states, meeting the baseline for high coverage.

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

Purpose4/5

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

The description clearly states the action ('Add a product') and resource ('to the Instacart cart'), making the purpose evident. It distinguishes from siblings like 'instacart_search' by specifying it adds the first matching result, though it doesn't explicitly contrast with 'instacart_view_cart' or 'instacart_clear_cart'.

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 by mentioning it searches for the product and adds the first match, suggesting it's for adding items after a search. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'instacart_search' for browsing or 'instacart_view_cart' for checking contents, leaving some ambiguity.

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

instacart_clear_cartA

Remove all items from the Instacart cart.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/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 states the action ('Remove all items') which implies a destructive mutation, but doesn't disclose behavioral traits like whether this requires authentication, if it's reversible, what happens to saved items, or error conditions. The description is minimal and lacks necessary context for a mutation tool.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately understandable. Every word earns its place.

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?

Given this is a destructive mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover authentication needs, side effects, return values, or error handling. For a tool that modifies state, more context is needed to use it safely and effectively.

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 0 parameters, and schema description coverage is 100% (empty schema). The description doesn't need to explain parameters, and it correctly implies no inputs are required. A baseline of 4 is appropriate for zero-parameter tools when the description is consistent.

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 specific action ('Remove all items') and target resource ('from the Instacart cart'), using precise verb+resource phrasing. It distinguishes this tool from siblings like 'instacart_view_cart' (which shows items) and 'instacart_add_to_cart' (which adds items).

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 context (when you want to empty the cart) but doesn't explicitly state when to use this vs alternatives. It doesn't mention prerequisites (e.g., needing an active cart or session) or exclusions (e.g., not for partial removal). The context is reasonable but lacks explicit guidance.

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

instacart_loginA

Initiate Instacart login flow. Returns a URL and instructions for the user to complete login manually. After logging in, use instacart_status to verify.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: the tool returns a URL and instructions for manual login, and it's part of a multi-step flow. However, it lacks details on error handling, timeout behavior, or authentication requirements beyond the basic flow.

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 perfectly concise with two sentences that front-load the core purpose and follow with essential usage guidance. Every word earns its place, with no redundancy or unnecessary elaboration.

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 tool's simplicity (0 parameters, no annotations, no output schema), the description is nearly complete. It explains what the tool does, what it returns, and how to use it in context. The only minor gap is lack of explicit error or edge case handling.

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 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description appropriately focuses on the tool's behavior rather than parameters, meeting the baseline for parameterless tools.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb ('Initiate') and resource ('Instacart login flow'), distinguishing it from siblings like instacart_status (verification) and instacart_logout (termination). It precisely defines what the tool does without being tautological.

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?

The description explicitly states when to use this tool ('Initiate Instacart login flow') and provides clear alternatives for next steps ('use instacart_status to verify'). It includes prerequisites (manual user completion) and distinguishes it from other login-related tools in the sibling list.

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

instacart_logoutA

Clear saved Instacart session and cookies. Use this to log out or reset authentication state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/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. It discloses the behavioral trait of clearing session/cookies and resetting authentication state, which is appropriate for a logout tool. However, it doesn't mention potential side effects (e.g., loss of cart data, need to re-login for subsequent operations) or error conditions.

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 that are front-loaded with the core action and followed by usage guidance. Every sentence earns its place with no wasted words, making it highly efficient and clear.

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 tool's simplicity (0 parameters, no annotations, no output schema), the description is complete enough for a logout operation. It explains what the tool does and when to use it. A 5 would require more behavioral details (e.g., confirmation of logout success), but it's largely adequate.

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 0 parameters with 100% schema description coverage. The description doesn't need to add parameter details, so it appropriately focuses on the tool's purpose and usage. Baseline 4 is correct for zero-parameter tools.

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 specific action ('Clear saved Instacart session and cookies') and the resource affected (authentication state). It distinguishes itself from siblings like instacart_login by focusing on logout/reset rather than login or other cart operations.

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?

Explicitly states when to use this tool: 'to log out or reset authentication state.' This provides clear context for usage versus alternatives like instacart_login for authentication or other tools for cart management.

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

instacart_place_orderA

Place the order. IMPORTANT: Set confirm=true only when you have explicit user confirmation. Without confirm=true, this returns a preview instead of placing the order.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet to true to actually place the order. If false or omitted, returns a preview instead. NEVER set to true without explicit user confirmation.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries full burden and effectively discloses key behavioral traits: it describes the dual-mode operation (preview vs. actual placement), emphasizes the critical safety rule for 'confirm=true', and implies mutation (placing an order). However, it lacks details on error handling, response format, or side effects like payment processing.

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 with zero waste: the first states the purpose, the second provides crucial usage rules and behavioral context. It is front-loaded with the core action and efficiently conveys all necessary information without redundancy.

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

Completeness4/5

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

For a single-parameter mutation tool with no annotations or output schema, the description is mostly complete: it covers purpose, usage, and key behavior. However, it omits details on what happens after placement (e.g., order confirmation, errors) or prerequisites (e.g., requires a logged-in session or populated cart), leaving minor gaps.

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 fully documents the 'confirm' parameter. The description adds minimal value beyond restating the schema's warning about user confirmation and preview behavior, aligning with the baseline score for high schema coverage.

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

Purpose5/5

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

The description clearly states the verb ('Place') and resource ('the order'), distinguishing it from siblings like 'instacart_preview_order' (which it explicitly references) and 'instacart_add_to_cart'. It specifies the core action of submitting an order, not just modifying or viewing cart contents.

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?

It provides explicit when-to-use guidance: 'Set confirm=true only when you have explicit user confirmation' and 'Without confirm=true, this returns a preview instead of placing the order'. It also implicitly contrasts with 'instacart_preview_order' by noting the preview functionality, offering clear alternatives.

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

instacart_preview_orderB

Preview order before placing. Shows cart summary, delivery window, and any issues that need to be resolved.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden. It mentions the tool 'shows cart summary, delivery window, and any issues' which describes output behavior, but doesn't disclose whether this is a read-only operation, if it requires authentication, potential rate limits, or side effects. For a preview tool with zero annotation coverage, this leaves significant behavioral gaps.

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

Conciseness5/5

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

The description is perfectly concise: two sentences that efficiently communicate purpose and output. Every word earns its place with no redundancy or unnecessary elaboration. The structure is front-loaded with the core purpose followed by specific output details.

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 zero parameters, no annotations, and no output schema, the description provides adequate basic information about what the tool does. However, for a tool that likely interacts with user accounts and shopping data, it should ideally mention authentication requirements or relationship to other cart operations. The description is minimally complete but could be more comprehensive.

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 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, and instead focuses on what the tool does and what information it provides.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Preview order before placing' is a specific verb+resource combination. It distinguishes from siblings like 'instacart_place_order' (which actually places the order) and 'instacart_view_cart' (which likely shows current cart contents without preview details). However, it doesn't explicitly differentiate from all siblings, keeping it at 4 rather than 5.

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 context ('before placing') but doesn't provide explicit guidance on when to use this versus alternatives like 'instacart_view_cart' or 'instacart_status'. It suggests this is a pre-check before order placement, but lacks clear when-not-to-use criteria or prerequisite requirements.

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

instacart_set_addressC

Set delivery address or zip code for Instacart orders.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesFull address or zip code (e.g., '123 Main St, San Francisco, CA' or '94105')

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'Set[s] delivery address or zip code,' implying a write operation, but doesn't disclose critical behaviors like whether this requires authentication, if it's reversible, what happens to existing addresses, or error conditions. This leaves significant gaps for a mutation tool.

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

Conciseness5/5

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

The description is a single, clear sentence that efficiently conveys the core purpose without any wasted words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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?

Given that this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks information on authentication requirements, side effects, return values, error handling, and how it fits into the broader Instacart workflow, leaving the agent with insufficient context for reliable 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?

The schema description coverage is 100%, with the parameter 'address' fully documented in the input schema (including examples). The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline of 3 for adequate but minimal value.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Set') and resource ('delivery address or zip code for Instacart orders'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'instacart_status' or 'instacart_stores' which might also involve location-related operations.

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. It doesn't mention prerequisites (e.g., whether login is required), exclusions, or how it relates to sibling tools like 'instacart_place_order' or 'instacart_preview_order' in the ordering workflow.

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

instacart_statusA

Check Instacart login status and session info. Use this to verify authentication before performing other actions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the tool's purpose (checking login status/session info) and context (verification before other actions), but lacks details about what specific information is returned, error conditions, or how it determines authentication status. It's adequate but has gaps in behavioral specifics.

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 two concise sentences with zero waste. The first sentence states the purpose, and the second provides usage guidance. Every word earns its place, and it's front-loaded with the core functionality.

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 tool's simplicity (0 parameters, no output schema, no annotations), the description is reasonably complete. It explains what the tool does and when to use it. However, without an output schema, it could benefit from mentioning what information is returned (e.g., user ID, session validity, error messages) to be fully comprehensive.

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 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description appropriately doesn't add parameter information beyond what's already covered, maintaining a baseline score for parameterless tools.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs ('check', 'verify') and resources ('Instacart login status', 'session info'). It distinguishes itself from siblings by focusing on authentication verification rather than cart management, ordering, or other actions.

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?

The description explicitly states when to use this tool: 'before performing other actions.' This provides clear guidance on its role as a prerequisite check for authentication-dependent operations among the sibling tools.

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

instacart_storesB

Get list of available stores for the current delivery location.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/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 of behavioral disclosure. It states the tool retrieves a list, implying a read-only operation, but doesn't clarify if it requires authentication, has rate limits, or what the output format might be (e.g., list structure, error handling). For a tool with zero annotation coverage, this is inadequate.

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, clear sentence with no wasted words. It's front-loaded with the core purpose and efficiently conveys the essential information. Every part of the sentence earns its place, making it highly concise and well-structured.

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 low complexity (0 parameters, no output schema, no annotations), the description is minimally complete. It states what the tool does but lacks details on behavioral aspects like authentication needs or output format. For a simple read operation, this is adequate but leaves gaps in operational context.

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 0 parameters, and the schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it correctly avoids mentioning any. This meets the baseline for tools with no parameters.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get list of available stores for the current delivery location.' It specifies the action ('Get list') and resource ('available stores'), and distinguishes it from siblings like 'instacart_search' or 'instacart_set_address'. However, it doesn't explicitly differentiate from all siblings, such as 'instacart_status', which might also relate to location context.

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. It mentions 'current delivery location' but doesn't specify prerequisites (e.g., whether an address must be set first) or when to prefer this over other tools like 'instacart_search' for store-related queries. This leaves the agent with minimal usage context.

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

instacart_view_cartA

View current Instacart cart contents, including items, quantities, and totals.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/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 of behavioral disclosure. It mentions what data is returned ('items, quantities, and totals') but does not address other behavioral traits such as authentication requirements (implied by sibling tools like 'instacart_login'), rate limits, error conditions, or whether it requires an active session. This leaves significant gaps for a tool in a context with authentication-related siblings.

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, well-structured sentence that efficiently conveys the tool's purpose without any wasted words. It is front-loaded with the core action ('View current Instacart cart contents') and adds necessary specifics ('including items, quantities, and totals') concisely.

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 (0 parameters, no output schema) and lack of annotations, the description is adequate for basic understanding but incomplete. It does not address contextual needs like authentication (implied by sibling tools) or error handling, which are important in this server's context. The description is complete enough for a read-only view tool but misses broader integration aspects.

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 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately does not discuss parameters, focusing instead on the tool's purpose. A baseline of 4 is applied as it effectively handles the lack of parameters without unnecessary detail.

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 specific verb ('View') and resource ('current Instacart cart contents'), with explicit details about what is included ('items, quantities, and totals'). It distinguishes this tool from siblings like 'instacart_add_to_cart' or 'instacart_clear_cart' by focusing on read-only viewing rather than modification.

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 context by specifying 'current Instacart cart contents,' suggesting it should be used to check cart status. However, it does not explicitly state when to use this tool versus alternatives (e.g., 'instacart_preview_order' for order details or 'instacart_status' for general status), nor does it provide exclusions or prerequisites.

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

Tool Schema Changelog

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

  1. 11 tool updatesv0.1.3
    • First observedinstacart_add_to_cart
    • First observedinstacart_clear_cart
    • First observedinstacart_login
    • First observedinstacart_logout
    • First observedinstacart_place_order
    • First observedinstacart_preview_order
    • First observedinstacart_search
    • First observedinstacart_set_address
    • First observedinstacart_status
    • First observedinstacart_stores
    • First observedinstacart_view_cart

TDQS

A3.8/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity. For example, instacart_search finds products, instacart_add_to_cart adds them, and instacart_view_cart shows the cart, making misselection unlikely. The tools cover different aspects like authentication, cart management, ordering, and store selection without overlap.

Naming Consistency5/5

All tool names follow a consistent 'instacart_verb_noun' pattern, such as instacart_add_to_cart and instacart_set_address. This predictable naming scheme enhances readability and helps agents understand the tool's function at a glance, with no deviations in style.

Tool Count5/5

With 11 tools, the server is well-scoped for an Instacart integration, covering essential workflows like login, search, cart management, and ordering. Each tool serves a specific function, and the count is neither too sparse nor bloated, fitting typical server ranges of 3-15 tools.

Completeness4/5

The tool surface is nearly complete for the Instacart domain, covering core operations from authentication to order placement. Minor gaps exist, such as the lack of tools for updating cart item quantities or removing specific items, but agents can work around these by using clear_cart and re-adding items.

Maintenance

ActivityInactive
ResponsivenessWithin a week

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/markswendsen-code/mcp-instacart'

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