@Atlas audits the catalog the day the store is connected and ships a CRO plan, instead of handing back a list of things to go read. Audit to plan, same session.
BoostEcom DemoDemo
Founder
One HTTPS endpoint per store, spoken in Model Context Protocol. Point Claude, ChatGPT or Cursor at it and your own assistant reads your catalogue, themes, pages and orders directly. Read-only, capped by the scopes you granted, journaled, and free on every plan.
MCPOAuth 2.1Read-onlyFree
Most MCP servers give an agent one of these. Bridge AI is one endpoint that answers both kinds of question in the same conversation.
Ask what is working across the market, then ask what your own store does about it: without the agent changing connection, or losing the thread.
The Custom App you install is the connector. What reads through it is your call, and nothing stops you using all three against the same store.
A Custom App is installed by the merchant, so it asks for exactly the scopes that merchant ticks: it is not capped by what a public app is allowed to request, and Shopify does not put it through the review a public app needs to touch theme files. Your scopes are the ceiling. We add none of our own.
One URL per store. Everything else on this page is detail.
Swap <STORE_ID> for the id in store settings, under connectors: where this exact URL is also shown ready to copy.
https://www.boostecom.app/api/mcp/v1/<STORE_ID>
Public, unauthenticated, CORS-open. An OAuth-aware client finds these on its own from the 401 it gets on the first call.
GET https://www.boostecom.app/.well-known/oauth-authorization-server GET https://www.boostecom.app/.well-known/oauth-protected-resource/api/mcp/v1/<STORE_ID> GET https://www.boostecom.app/api/mcp/<STORE_ID>/.well-known/oauth-protected-resource
The public store-graph server. No account, no key, nothing to configure.
https://www.boostecom.app/api/mcp/intelligence
Bridge AI is a remote MCP server. Every store you connect to BoostEcom gets its own endpoint at /api/mcp/<STORE_ID>, speaking Model Context Protocol over streamable HTTP. Any MCP-aware client — Claude, ChatGPT, Cursor, or something you wrote yourself: can discover it, authorize against it and call its tools.
Your Shopify credentials never leave our servers. The client holds a BoostEcom token; we hold the Custom App token, encrypted at rest and refreshed on our side. Revoke the BoostEcom token and the client is out, having never seen a Shopify secret. The same Bridge surface also covers the live OAuth connectors (Google, Meta, Klaviyo, Figma, Notion) and BoostEcom Spy that relays selections into the platform tab.
Pick the client you use. Your store id is in the dashboard, under store settings → connectors, next to the endpoint URL.
Add a custom connector and paste the URL. Leave client id and secret empty: the client registers itself, runs the PKCE handshake on first link, and asks you to approve it.
https://www.boostecom.app/api/mcp/v1/<STORE_ID>
The reference above is the whole surface. These are the four minutes it takes to get one client talking, in that client's own vocabulary.
Nine are gated on the scopes your Shopify Custom App actually granted: a store connected read-only for products never even sees the order or theme tools in its tool list. Four need no Shopify scope beyond the connector itself (shop info, store context, Admin GraphQL passthrough, schema introspect). Availability here is the Shopify gate; the OAuth scope you grant a client narrows it further: the catalogue is further down, with the authorization flow.
| Tool | Availability | What it returns | Ask it like this |
|---|---|---|---|
getStoreContextScope None | No Shopify scope gate | Plan, currency, timezone, markets, locales, themes, legal policies, catalogue counts and your granted scopes: in one call. | “Where am I? Give me the store setup.” |
getShopInfoScope None | No Shopify scope gate | Store name, plan, currency, timezone, primary domain. | “What plan and currency is this store on?” |
runAuditScope read_themes · write_themes · write_theme_code | Scoped | Shop, themes and a product sample in a single round-trip, so the model reasons over the whole store at once. | “Give me the state of the store.” |
listProductsScope read_products · write_products | Scoped | Products, optionally filtered by status. Up to 250 per call. | “Which products are still in draft?” |
getProductScope read_products · write_products | Scoped | One product by its numeric id. | “Show me everything on product 8123456789.” |
listOrdersScope read_orders · write_orders | Scoped | Recent orders, optionally filtered by status. | “Summarise the orders that are still open.” |
listPagesScope read_content · write_content | Scoped | CMS pages of the store. Up to 250 per call. | “List the CMS pages: do we have a returns policy page?” |
listThemesScope read_themes · write_themes · write_theme_code | Scoped | Every theme on the store, including the published one. | “Which theme is published right now?” |
getThemeScope read_themes · write_themes · write_theme_code | Scoped | One theme by its numeric id. | “What is theme 178234567 called?” |
runShopifyQLScope read_analytics · read_reports | Scoped | A ShopifyQL table: sales, sessions, conversion, inventory, over any period you name. | “What were my sales over the last 30 days?” |
introspectSchemaScope None | No Shopify scope gate | Any Admin GraphQL type, with nested input types and enums resolved inline. | “What fields does ProductInput take?” |
shopifyAdminGraphQLScope Shopify enforces | No Shopify scope gate | Any read the Admin API allows: metafields, markets, translations, inventory. Cost and throttle status come back with the data. | “Pull the metafields on my top ten variants.” |
getStudioSectionScope None | No Shopify scope gate | One Studio section: pipeline, clients, concepts, QC or cockpit. Read-only, and every call asks the caller's own Studio permission for that section. | “Which concepts are waiting on QC?” |
searchDocsScope None | No Shopify scope gate | The documentation passages that answer a question, each with a deep link to the exact section. | “How does the marketplace escrow window work?” |
getDocScope None | No Shopify scope gate | One documentation page in full, by slug, with its list of sections. | “Show me the credits page in full.” |
The tool count is the wrong number to look at. Eleven tools cover the paths an agent walks constantly; the twelfth is a passthrough onto the entire Shopify Admin GraphQL API.
Both pointed at the same store, same minute, read-only. Shopify's official MCP connector is excellent at what it does, this is simply where the reach differs.
| Bridge AI | Shopify MCP | |
|---|---|---|
Scopes granted Measured on the same store via currentAppInstallation. | 183 | 58 |
Scopes the other lacks The official set is a strict subset, it holds nothing Bridge AI does not. | 125 | 0 |
Fields on one store-info call getShopInfo vs get-shop-info, same store. | 48 | 8 |
Pixels & script tags Tracking and consent surfaces. The official connector has no pixel scope at all. | ✓ | — |
Payouts, disputes, bank accounts Shopify Payments read surface. | ✓ | — |
GDPR, audit events, consent Privacy settings, audit log, customer events. | ✓ | — |
Storefront + Customer Account APIs The unauthenticated_* and customer_* scope families. | ✓ | — |
Cart Transform & Shopify Functions Bundles, delivery and payment customizations, discount allocators. | ✓ | — |
ShopifyQL analytics Same query, identical result: ours runs through the GraphQL passthrough. | ✓ | ✓ |
Schema introspection __type and __schema resolve through the passthrough. | ✓ | ✓ |
Cost & throttle returned to the model Shopify's own numbers, so an agent paces itself instead of guessing. | ✓ | — |
Writes to the store Ours is read-only today; writes go through the dashboard approval flow. | — | ✓ |
shopify.dev docs search The official connector ships a documentation RAG. We do not. | — | ✓ |
Measured on one merchant's Custom App: a store that grants fewer scopes gets fewer. The structural point holds regardless: a Custom App is installed by the merchant, so it can request what a public app is not allowed to.
Standards all the way down. Nothing proprietary to paste into a client that does not want it.
Tokens are bound to a single store: one issued for store A is refused on store B, and organization membership is re-checked on every call. Everything is stored as a SHA-256 hash, we never keep a token we could read back.
The consent screen is not a single yes. A client asks for the permissions it needs, you read them in plain language, and the token it walks away with carries exactly those: the tools outside them stop existing for that client.
| Scope | What it opens | Shopify grant required |
|---|---|---|
boostecom:store.readStore identity & setupREAD | Plan, currency, timezone, primary domain, markets, locales, legal policies and the Admin schema.getShopInfo · getStoreContext · introspectSchema | Any connected store |
boostecom:catalog.readCatalogueREAD | Products and their variants, including drafts and archived items.listProducts · getProduct | read_products · write_products |
boostecom:orders.readOrdersREAD | Recent orders and their status.listOrders | read_orders · write_orders |
boostecom:content.readPages & contentREAD | The storefront's CMS pages.listPages | read_content · write_content |
boostecom:themes.readThemesREAD | Themes on the store, published or not, and the audit that reads them.listThemes · getTheme · runAudit | read_themes · write_themes · write_theme_code |
boostecom:analytics.readAnalyticsREAD | ShopifyQL queries: sales, sessions, conversion and inventory over any period.runShopifyQL | read_analytics · read_reports |
boostecom:graphql.readAdmin API passthroughREAD | Any read the Admin API allows. Shopify enforces your scopes on every single query.shopifyAdminGraphQL | Any connected store |
boostecom:studio.readAgency StudioREAD | The production floor: prospect pipeline, client gates, creative concepts, the QC queue and the economics cockpit. Each section still asks for your own Studio permission.getStudioSection | Any connected store |
boostecom:docs.readDocumentationREAD | Search and read the public BoostEcom documentation. Grants nothing private: this is what /docs already serves to anyone.searchDocs · getDoc | Any connected store |
boostecom:operator-docs.readLabelREAD | DescriptionsearchOperatorDocs · getOperatorDoc | Any connected store |
Space-separated in the scope parameter. Omit it and the client is asking for every Shopify tool; ask for less and it gets less, until it is authorized again.
GET https://www.boostecom.app/oauth/authorize ?response_type=code&client_id=<CLIENT_ID> &resource=https://www.boostecom.app/api/mcp/v1/<STORE_ID> &scope=boostecom:store.read boostecom:catalog.read &code_challenge=<S256>&code_challenge_method=S256
Two gates, and both must pass: the scope you approved for this client, and what your Shopify Custom App can satisfy. A permission Shopify would refuse is never offered on the consent screen in the first place. Tokens issued before this catalogue existed carry the legacy mcp scope and keep every Shopify tool they already had. It never confers a scope on a BoostEcom system: those are granted only by asking for them by name.
An external client holds a token, runs unattended, and has no human watching it. The relay is built for exactly that.
Anti-abuse only. The relay costs us a Shopify API forward, not a model call, so it is included on every plan: including Free. Limits are per organization: stores in the same organization share one budget.
| Free | Pro | Max 5x | Max 20x | |
|---|---|---|---|---|
Calls per minute | 50 | 500 | 1 000 | 5 000 |
Calls per day | 2 000 | 50 000 | 100 000 | Unlimited |
Tools available | 12 | 12 | 12 | 12 |
Price | $0 | $0 | $0 | $0 |
Custom plans run uncapped. A 429 names the plan, the limit it hit and what to do about it.
The point is not the tool list. It is that the assistant you already have open knows your store.
Stated plainly so you can plan against it. None of this is live yet: everything above is.
@Atlas audits the catalog the day the store is connected and ships a CRO plan, instead of handing back a list of things to go read. Audit to plan, same session.
BoostEcom DemoDemo
Founder
One operator, the full stack: Maya runs the email calendar, Marco curates collections, Otis watches fulfilment. One team, one thread.
BoostEcom DemoDemo
Head of Growth
The work gets done rather than suggested. Voice mode with @Atlas turns the morning check-in into a conversation. It operates.
BoostEcom DemoDemo
Store owner
@Maya rewrites product descriptions, queues them for review, pushes the approved batch live, then runs the campaign around them. End-to-end, with approval gates.
BoostEcom DemoDemo
E-commerce lead
Every action the AI Team takes is graded against real Shopify Analytics after the observation window closes. Outcome attribution, not vibes.
BoostEcom DemoDemo
Marketing lead
OAuth scopes, audit log, store-scoped credits, no shadow data. The agents work inside the admin, not around it.
BoostEcom DemoDemo
Engineer
Permission mode decides what ships on its own and what waits for a human. Autonomy you dial in.
BoostEcom DemoDemo
Operator
Multi-store from one console, each with its own connectors, memory and budget. Per-store context.
BoostEcom DemoDemo
Agency owner
@Atlas audits the catalog the day the store is connected and ships a CRO plan, instead of handing back a list of things to go read. Audit to plan, same session.
BoostEcom DemoDemo
Founder
One operator, the full stack: Maya runs the email calendar, Marco curates collections, Otis watches fulfilment. One team, one thread.
BoostEcom DemoDemo
Head of Growth
The work gets done rather than suggested. Voice mode with @Atlas turns the morning check-in into a conversation. It operates.
BoostEcom DemoDemo
Store owner
@Maya rewrites product descriptions, queues them for review, pushes the approved batch live, then runs the campaign around them. End-to-end, with approval gates.
BoostEcom DemoDemo
E-commerce lead
Every action the AI Team takes is graded against real Shopify Analytics after the observation window closes. Outcome attribution, not vibes.
BoostEcom DemoDemo
Marketing lead
OAuth scopes, audit log, store-scoped credits, no shadow data. The agents work inside the admin, not around it.
BoostEcom DemoDemo
Engineer
Permission mode decides what ships on its own and what waits for a human. Autonomy you dial in.
BoostEcom DemoDemo
Operator
Multi-store from one console, each with its own connectors, memory and budget. Per-store context.
BoostEcom DemoDemo
Agency owner
Describe what you want your agent to read, and @Atlas will tell you which tool and which scope it needs.