Peak PIM MCP connector
A remote Model Context Protocol server that lets AI assistants work on your catalog: browse products, compare stores, draft edits, and — if you allow it — publish to Shopify. You authorize each connection in your browser and choose exactly how much it can do.
| Connector URL | https://api.peak-pim.com/mcp |
|---|---|
| Transport | Remote MCP (streamable HTTP) |
| Authentication | OAuth 2.1 — dynamic client registration, PKCE, refresh tokens. No API key to copy around. |
| Permissions | Three consent tiers: read · read & write · read, write & publish |
| Works with | Claude (web/desktop connectors, Claude Code), ChatGPT (developer mode), and any MCP client that supports remote servers with OAuth |
| Tools | 12 tools — 9 reads, 2 draft writes, 1 publish |
What an assistant can do with it
- "List my products and show me which ones have unpublished changes."
- "Show me product Trail Runner 2 on each of my stores — where do the titles or prices differ?"
- "Which collections is this product in, per store?"
- "Find every variant missing a SKU."
- "Update the SEO title of product X as a draft." (write tier)
- "Publish product X to all my stores and tell me exactly what succeeded and what failed." (publish tier)
How authorization works
- You add
https://api.peak-pim.com/mcpas a connector in your AI client. - The client registers itself and opens a browser window to Peak PIM's consent page. You sign in to Peak PIM if you aren't already — the account you're signed in to is the account the connection is bound to.
- The consent screen shows who is asking and offers up to three permission tiers. You pick one (or deny):
| Tier | Scopes granted | Allows |
|---|---|---|
| Read | pim:read | Browse and compare the catalog. Nothing can be changed. |
| Read & write | pim:read pim:write | Also edit draft values — nothing reaches Shopify until a person (or a publish-tier connection) publishes. |
| Read, write & publish | pim:read pim:write pim:publish | Also push items live to your Shopify stores. |
- The client receives short-lived tokens for that tier and starts calling tools. A tool outside the granted tier fails with a clear permission error and re-authorization guidance.
The pim:publish scope can only be granted through this consent screen — never through any other credential surface — and there is no delete: no tool deletes data, and a delete permission is not grantable at all.
Security model
- Tenancy from the token, always. No tool accepts an account parameter. A connection sees exactly one account's data; ids from any other account answer "not found", indistinguishable from ids that don't exist.
- Data, not instructions. Tool results are framed as inert entity data. Clients and models are told not to act on text embedded in catalog fields — a product description can't smuggle instructions to your assistant.
- Minimized output. Results are trimmed projections; internal bookkeeping (tenant ids, hashes, publish error logs) is never returned.
- Short-lived tokens. Access tokens live ~7 days, refresh tokens ~30; every request re-validates the token live, so revocation is immediate.
- Draft-first writes. Write-tier edits change Peak PIM drafts only. Shopify changes happen solely through the explicit publish tool on the publish tier.
- Reconciliation lock. While a store import or refresh is being reconciled, writes are blocked with a 423 — an assistant can't edit data mid-reconciliation.
Managing connections
Settings → AI assistants (MCP) in Peak PIM lists every authorized connection. From there you can disconnect one client or revoke everything at once. Revocation also invalidates refresh tokens, so a revoked connection cannot silently re-mint access — the next tool call fails and the client must re-authorize through consent.
Operational limits
| Limit | Behavior |
|---|---|
| Page size | List tools cap at 100 rows per page; a larger page_size is clamped with a visible [note] in the result. |
| Output size | Tool text beyond 20,000 characters is truncated with an explicit marker advising a narrower query. |
| Tool timeout | 20 s per call (single attempt) — except publish. |
| Publish timeout | 120 s for publish_master_v1. If it times out, the server-side publish may still complete — re-read the item to check its publish state. |
| Partial publish | A completed publish can still report per-store or per-variant failures: the result carries ok: false, an errors list, and a [partial failure] note. Already-published stores are live; failed ones are not. |
For MCP client implementers
Standard discovery is in place — most clients need only the connector URL:
/.well-known/oauth-protected-resource | RFC 9728 protected-resource metadata (also advertised by the /mcp 401 challenge) |
/.well-known/oauth-authorization-server | RFC 8414 authorization-server metadata |
/oauth/register | RFC 7591 dynamic client registration |
/oauth/authorize · /oauth/token | Authorization code + refresh token, PKCE S256 required |
All relative to https://api.peak-pim.com.