Overview
The Henry MCP server gives Claude, Cursor, Windsurf, VS Code, Zed, and other MCP-compatible clients secure access to the Henry Shopping API. Launch the server withnpx and point your favorite client at it to start creating carts, products, and hosted checkout flows through natural language.
Setup Instructions
General
The Henry MCP server ships as a local stdio process.- Install Node.js 18+ and ensure
npxis on your path. - Export the required environment variables (sandbox keys shown below).
- Start the server before or while your client connects.
--tag=headless to have your agent use the headless checkout flow
Hosted vs Headless flows
| Flow | User Experience |
|---|---|
| Hosted checkout | Uses natural language for product discovery and add to cart, returning a hosted page at point of checkout |
| Headless checkout | Uses natural language for product discovery, add to cart, and checkout. Ideal for voice agents, recurring or scheduled purchases, etc |
--tag will expose both hosted and headless tools. This is not recommended.
Claude
Team, Enterprise (Claude.ai)- Claude’s web client only connects to remote MCP servers. Because the Henry MCP server is local-only, use Claude Desktop or Claude Code instead.
- Open
~/Library/Application Support/Claude/claude_desktop_config.json. - Add or merge the following configuration and restart Claude Desktop:
~/.config/claude/.mcp.json (Mac/Linux) or %APPDATA%\Claude\.mcp.json (Windows):
/mcp, and follow the prompts. Re-run npx with fresh environment variables if you rotate keys.
Cursor
- Press
Cmd/Ctrl + Shift + Pand search for MCP: Add Server. - Choose Command (stdio).
- Enter
npx -y @henrylabs/mcp@latest --tag=hosted. - When asked, set the server name to Henry Labs and add the environment variables:
HENRY_SDK_API_KEY=pk_sdk_api_keyHENRY_SDK_ENVIRONMENT=sandbox
- Start the server from MCP: List Servers whenever you need access.
Visual Studio Code
Add the configuration to your VS Code MCP settings (e.g. via Settings > Extensions > Model Context Protocol > Servers (JSON)):Cmd/Ctrl + P, choose MCP: Add Server, select Henry Labs, and start the server.
Windsurf
- Open settings with
Cmd/Ctrl + ,. - Under Cascade > MCP Servers, choose Add custom server.
- Paste the snippet below and save:
Zed
- Open settings with
Cmd + ,. - Add the configuration to your
settings.json:
Others
Any MCP client that supports stdio servers can run Henry Labs with:- Command:
npx - Arguments:
-y @henrylabs/mcp@latest --tag=hosted - Environment:
HENRY_SDK_API_KEYHENRY_SDK_ENVIRONMENT
Tool Configuration Options
Henry Labs exposes one tool per API endpoint by default. Use CLI flags (or matching config arguments) to tailor what the client sees:--tool <name>: include specific tools.--resource <pattern>: include all tools under a resource (supports wildcards likecart.*).--operation <read|write>: filter to read-only or write actions.--tag <tag>: include only tagged endpoints such ashostedorheadless.--no-tool,--no-resource, etc.: exclude specific entries.--client=<name>: optimize schemas forclaude,claude-code,cursor, oropenai-agents.--tools=dynamic: expose discovery helpers (list_api_endpoints,get_api_endpoint_schema,invoke_api_endpoint) instead of per-endpoint tools.
npx -y @henrylabs/mcp@latest --help to see the full list.
Available Tools
products
retrieve_product_details(read, tags: headless, hosted): Fetch product details by ID before adding to cart.search_products(write, tags: headless, hosted): Search and filter the product catalog.
cart
create_cart_checkout(write, tags: hosted): Generate a hosted checkout URL for the current cart.
cart.items
list_cart_items(read, tags: hosted): List all products currently in the cart.add_cart_items(write, tags: hosted): Add products to a new or existing cart.clear_cart_items(write, tags: hosted): Remove all items from the cart.remove_cart_items(write, tags: hosted): Remove a specific cart item.
checkout.session
confirm_checkout_session(write, tags: headless): Finalize checkout and create an order.create_checkout_session(write, tags: headless): Prepare a checkout session with shipping and pricing metadata.
orders
retrieve_status_orders(read, tags: headless, hosted): Check the status of an order by ID.
wallet
collect_payment_details(write, tags: headless): Launch a modal URL to capture and store payment methods.

