// guide
Claude MCP connector for Shopify inventory and cash data
Connect Claude on the web, phone, desktop or Claude Code to Keel HQ's read-only MCP server, then ask about inventory, cash and ad spend in plain English.
David LindahlFounder of Keel HQ, and runs a DTC brand on it
Published Last verified
- Access
- Read-only MCP, OAuth or bearer token
- Clients
- Claude web, phone, Desktop and Code
- Rate limit
- 120 requests a minute per token
// the steps
- 01Add Keel HQ to Claude. Claude on the web or phone: add a custom connector with the URL and approve it. Claude Code and Desktop: create a read token in Settings and add it with the URL.
- 02Test the connection. Use Test connection in Settings, or ask Claude what Keel HQ tools it can see.
- 03Ask a question. Try the runway, a SKU's days of cover or last month's ad spend.
// tl;dr
Claude on the web and phone connects to Keel HQ's read-only MCP server as a custom connector: paste the URL and approve it for one workspace. Claude Desktop and Claude Code connect with a bearer token you create in Settings. Claude can then read inventory, cash, ad spend and published reports, with a freshness note on every answer. It can't change anything in Keel HQ or Shopify, and you can revoke the token whenever you like.
Claude can read your Keel HQ numbers directly. Once connected, you ask in plain English, "what's my runway?" or "which SKUs are about to stock out?", and Claude answers from your synced data instead of a spreadsheet you pasted in. This page covers Claude on the web and phone, Claude Desktop and Claude Code.
What Claude can read
Keel HQ serves a read-only Model Context Protocol server. These are the tools it exposes:
| Tool | What it returns |
|---|---|
get_overview | Month-to-date vitals, alerts, trends, inventory health and recent activity. |
get_cash_dashboard | Cash balances, debts, upcoming bills, expected income, runway and cash alerts. |
list_inventory_products | The first limit active products (default 50, up to 200), ordered by product id. It doesn't paginate: a larger catalog is truncated, and pagination.truncated and pagination.total say so. |
get_inventory_product | One SKU: catalog fields, days of cover on a 90-day pace, and every product carrying that SKU. |
get_ads_spend | Meta campaign spend by calendar month, for up to 12 months. Refreshed when a monthly report is generated, not by the daily Meta pull. |
get_monthly_report | A published monthly report as JSON, with notes on data quality. |
get_brand_settings | Brand profile and alert thresholds. No secrets. |
Two resources come with it: eos://docs/metric-calculations, which defines how each figure is calculated, and eos://reports/monthly/{year}-{month}, a published report as markdown.
These tools read your Shopify orders and products, Meta Ads campaign spend, Mercury balances and published monthly reports, all from what Keel HQ has already synced. There is no tool for Klaviyo or Google Ads data on its own.
Questions it can answer
"How many days of cover does one of my SKUs have, and which products share that SKU across my stores?"
"What's my cash runway, and which bills are coming up?"
"Show Meta spend by campaign for the last three months. Was any month only partly synced?"
"Summarize last month's published report, and tell me which figures were withheld and why."
"Is everything you just told me current? Check the data freshness."
The questions that pay off are the ones across sources: inventory against cash, spend against revenue. Keel HQ has already joined them, and your assistant just reads the result.
Connect Claude on the web or phone
Claude's web and mobile apps add servers as custom connectors, which take a URL and nothing else. Keel HQ signs you in with OAuth, so there is no token to paste.
- 01Add a custom connector
In Claude, open Settings → Connectors → Add custom connector. Give it any name and paste
https://app.keelhq.io/api/mcp. - 02Sign in and pick a workspace
Claude sends you to Keel HQ. Sign in, choose which workspace it may read, and approve. Only a workspace owner or admin can approve, and the connector sees that one workspace and no other.
- 03Ask a question
The connector is read-only. To disconnect it, open Settings → MCP & API tokens → Connected apps in Keel HQ and choose Disconnect; it loses access on its next request.
Connect Claude Desktop or Claude Code
- 01Create a token
In Keel HQ, open Settings → MCP & API tokens, and find AI assistants (MCP). Click to create a token for Claude. It carries the read scope and expires in 90 days by default. It's shown once, so copy it before you leave the page.
- 02Add Keel HQ to Claude
Claude Code: run this in a terminal, with your token and your Keel HQ URL, which Settings fills in for you:
claude mcp add --transport http keel https://app.keelhq.io/api/mcp --header "Authorization: Bearer eos_YOUR_TOKEN"Add
--scope userto make it available in every project.Claude Desktop: open Settings → Developer → Edit Config and add Keel HQ to
claude_desktop_config.json, then restart Claude. The config runsnpx -y mcp-remoteagainst the URL and passes the token in anAuthorizationheader. Settings shows the exact block with your values. - 03Test the connection
Back in Settings → MCP & API tokens, Test connection runs the same
tools/listcall an assistant makes and shows the tool names it got back. Then ask a question.
Tokens, scopes and revoking
Scope. MCP needs a token with the
readscope. A token without it gets a 403, and a missing or revoked one gets a 401.Expiry. 30, 90 or 365 days when you create it; 90 by default.
Revoking. Revoke the token in Settings → MCP & API tokens. The assistant loses access immediately.
Rate limit. 120 requests a minute per token.
Your organization comes from the token, never from the request, so an assistant can only see the workspace the token was created in.
Known limits
Read-only, by design. Claude can't update products, record costs or send anything.
Data is as fresh as the last sync. Shopify orders sync every six hours, so a very recent sale may not be there, and each result says so in
data_freshness.Ad spend is by calendar month and limited to a 12-month range. There is no daily breakdown.
Keel HQ is in private beta, with a waitlist.
Questions
- Do I need Node.js?
- For Claude Desktop, yes: its config file starts local servers, so Keel HQ is reached through the mcp-remote bridge, run with npx. Claude Code connects over HTTP directly and doesn't need it.
- Can the AI change anything in Keel HQ or Shopify?
- No. Every tool is read-only, and the server only accepts POST requests that read. The AI can't edit a product, a cost, a report or a setting, and it has no route into Shopify.
- Which token does it use, and can I revoke it?
- An API token with the read scope, created in Settings → MCP & API tokens. Revoke it from the same list and the assistant stops working at once. Create a separate token per assistant so revoking one doesn't break the others.
- Is there a rate limit?
- Yes, 120 requests a minute per token. Over that, Keel HQ answers 429 and the assistant waits.
- How do I know the data is current?
- Every tool result starts with a data_freshness block: one entry per synced source it read, with the last sync time and a status of fresh, stale, never_synced or failed. Ask the assistant to mention it when a figure isn't fresh.
- What if a number isn't available?
- You get null with a reason, never 0. A failed query comes back as a tool error, not as empty data.
// how keel hq does this
Ask your business questions — here, or from your own AI tools. Built for teams.
A chat that reads your cash, forecast, and inventory data; read-only MCP access for Claude and Cursor; and team roles with module-level access.
See the helm & settings in Keel HQ

// related
- IntegrationsChatGPT connector for Shopify inventory and cash dataConnect ChatGPT to Keel HQ's read-only MCP server as a custom connector with a bearer token. It needs Developer mode and a plan that offers token authentication.
- IntegrationsCursor MCP server for Shopify inventory and cash dataConnect Cursor to Keel HQ's read-only MCP server with a bearer token in mcp.json, then query inventory, cash and ad spend from your editor.
- IntegrationsConnect any MCP client or AI agent to Keel HQConnect a custom agent or any MCP-capable tool to Keel HQ's read-only MCP server with a bearer token: one POST endpoint, seven read tools, freshness on every result.
// sources
- Model Context Protocol introduction, modelcontextprotocol.io · accessed
- Connect Claude Code to tools via MCP, Claude Code documentation · accessed