Overview
The Henry remote MCP server is hosted by Henry, so there is nothing to install. Point your MCP client at one URL and sign in with your Henry account:Endpoints
Each endpoint issues its own sign-in, and a session for one does not work on
the other.
Authentication
The server uses OAuth 2.1 with PKCE, discovered automatically by your client. The first time you connect, your client opens a browser window:- Sign in to the Henry Dashboard if you are not already signed in.
- Approve the connection. To use a specific API key instead of your account, choose Use an API key instead and paste the key.
- You are sent back to your client, which is now connected.
Tool calls run as the team whose account or API key you signed in with, and
count toward that team’s usage.
Setup Instructions
Claude Code
/mcp inside a Claude Code session, select henry, and choose
Authenticate. Add --scope user to make the server available in every
project, or --scope project to write it to a shared .mcp.json:
Claude (web and desktop)
- Open Settings > Connectors and choose Add custom connector.
- Name it
Henryand enterhttps://mcp.henrylabs.ai/mcpas the URL. - Choose Connect and complete the sign-in.
ChatGPT
- Enable developer mode under Settings > Apps & Connectors > Advanced.
- Create a connector with the URL
https://mcp.henrylabs.ai/mcp/appsand OAuth authentication. - Complete the sign-in when prompted.
Cursor
Open Cursor Settings > Tools & MCP > New MCP Server and add:Visual Studio Code
Run MCP: Open User Configuration from the Command Palette and add:Windsurf
Under Cascade > MCP Servers, choose Add custom server and add:Others
Any client that supports remote MCP servers over Streamable HTTP with OAuth can connect using the URLhttps://mcp.henrylabs.ai/mcp.
Available Tools
The
/mcp/apps endpoint omits cartPurchase, cartPurchaseStatus,
merchantsRetrieve, and merchantsSearch.
Every tool declares readOnlyHint, destructiveHint, and openWorldHint
annotations, so clients can auto-approve read-only calls and confirm the rest.
Async tools
Product search, product details, and checkout details run as background jobs. The first call returns arefId and a processing status; the agent then
calls the matching *Status tool with that refId until the status is
complete. See Polling for how the
underlying jobs behave.