Examples use
https://www.merchkit.com as the base URL.string
https://www.merchkit.com/api/mcp — a remote MCP server over Streamable HTTP.Connect in one click
The MCP endpoint speaks OAuth 2.1, so most agents connect with a button. Click, sign in to Merchkit, choose the workspace and the permissions to grant, and approve. There is no API key to create, copy, or paste, and you can revoke the connection at any time from Settings → API keys → Connected apps.Add to Claude
Opens claude.ai with the Merchkit connector pre-filled. Works on Claude web and Claude Desktop.
Install in VS Code
Adds the Merchkit MCP server to VS Code for GitHub Copilot agent mode.
Whichever client you use, the URL to add is always
https://www.merchkit.com/api/mcp. On the
consent screen the default permissions are everything except the delete scopes. Tighten them
to a read-only set for an agent that should only inspect your catalog.Claude (web & Desktop)
Click Add to Claude above, or add it manually: Settings → Connectors → Add custom connector, pastehttps://www.merchkit.com/api/mcp, and click Add. Claude opens the Merchkit consent
screen where you pick a workspace, choose scopes, and approve. Then the tools appear. No claude_desktop_config.json
editing and no mcp-remote bridge required.
Claude Code
/mcp and select merchkit to complete the browser sign-in. No key or header needed.
ChatGPT
ChatGPT supports custom remote MCP connectors through developer mode, on the web app and a paid plan (Plus, Pro, Business, Enterprise, or Edu). There is no one-click link, so add it manually:1
Enable developer mode
In ChatGPT on the web, open Settings → Apps & Connectors → Advanced settings and turn on
developer mode. On Business/Enterprise/Edu a workspace admin must enable it first.
2
Create the connector
On Apps & Connectors, click Create, give it a name, and paste the server URL
https://www.merchkit.com/api/mcp. For authentication choose OAuth and leave the client-id
and client-secret fields blank. ChatGPT registers itself.3
Sign in and use it
Click Create and complete the Merchkit sign-in. The tools then appear from the + menu in
a chat.
VS Code / GitHub Copilot & Cursor
Click Install in VS Code above, or add it from the command line:https://www.merchkit.com/api/mcp. VS Code
and Cursor both run the OAuth sign-in on first connect. No key required.
Authenticate with an API key (programmatic)
For servers, scripts, CI, or any client without a browser to sign in, authenticate with a workspace API key instead. It is the samemk_live_ bearer token the REST API uses:
An API key is a secret with workspace access. Store it in a secret manager or environment
variable, never in a shared config file. For interactive agents, prefer the one-click OAuth
connect above: it keeps no key on disk and is revocable per connection.
For a local, stdio-only MCP client that cannot reach a remote HTTP server, bridge to it with
mcp-remote:
npx -y mcp-remote https://www.merchkit.com/api/mcp. Add --header "Authorization: Bearer mk_live_..."
if the client cannot complete the OAuth sign-in itself.Write tools require confirmation
Every write tool takes aconfirm flag so the agent can preview a change before applying it.
1
Preview
Call the tool with
confirm omitted or false. The tool returns a diff describing exactly
what would change, and makes no change.2
Apply
Call the same tool again with
confirm: true to apply the change.This two-step flow lets an agent show you the intended change and get your sign-off before anything
is written.
Tools
The tools are generic over entity type. Onelist_entities replaces a tool per resource,
with type as a parameter exactly like the REST path segment:
product | image | vendor | category | source. Read tools require the resource’s read:* scope;
write tools require the matching write:* scope. See
scopes.
Read tools
Write tools
Every write tool follows the preview-then-confirm flow above.
MCP-only tools
MCP is a superset. Grid views and attribute classes left the public REST surface and live only here.Deletes are disabled during the beta. Destructive operations are turned off across both REST
and MCP: no delete tool is exposed and
DELETE endpoints return 403, even for a key or
connection that holds a delete:* scope. Deletes will be enabled in a later release. See
Authentication.Working with vendors, categories, and images
Products point at other entities (a vendor, a category, their images) through reference attributes. A reference always holds the other entity’sid, so the entity has to exist before a product can
point at it. list_entities and create_entity cover that: look up what already exists, create
what doesn’t, then set the reference.
For example, to file a product under a “Trail Running” category:
1
Look for the category first
id and skip to step 3. Search with contains rather than an exact
match. It also surfaces near-duplicates, which keeps your catalog clean: one “Trail Running”,
not five spellings of it.2
Create it if it's missing
create_entity is a write tool, so the same preview-then-confirm flow applies. The response is
the full new resource, including its id.3
Point the product at it
{id} stub; read stubs re-sent verbatim are valid
writes); list references (like gallery_images) take an array, replace semantics.url attribute. To upload files or pull images down from the web, use the image library
in the app or a CSV import.
A reference can only point at an entity that already exists,
so a typo in a reference value fails loudly instead of silently minting a new vendor. When you
check for near-duplicates before creating, search with
contains. Matching is case-insensitive,
and a wider net catches alternate spellings an exact match would miss.