Shopify Store Ops
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SHOPIFY_SHOP | No | Your Shopify shop domain | |
| LINEAR_API_KEY | No | Linear personal API key | |
| STRIPE_API_KEY | No | Stripe secret or restricted key | |
| SLACK_BOT_TOKEN | No | Slack bot token (xoxb-…) | |
| GOOGLE_CLIENT_ID | No | Google OAuth client ID | |
| FIRECRAWL_API_KEY | No | Firecrawl API key | |
| SHOPIFY_CLIENT_ID | No | Shopify app client ID | |
| GOOGLE_CLIENT_SECRET | No | Google OAuth client secret | |
| SHOPIFY_CLIENT_SECRET | No | Shopify app client secret |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| shopify_products_listB | List products. Narrow with a Shopify search string in |
| shopify_variant_inventory_levelA | Read a variant's stock at one location. Returns null where the variant is not stocked there, which is not an error. |
| gsheets_spreadsheets_values_appendC | Appends values to a spreadsheet. |
| gmail_drafts_createC | Save an email draft to Gmail. |
| shopify_orders_listA | List orders. Narrow with a Shopify search string in |
| slack_chat_post_messageA | Send a message to a Slack channel, private group, or DM. Provide |
| gmail_threads_listC | List Gmail threads. |
| shopify_order_fulfillment_ordersA | List an order's fulfillment orders, which is the first half of fulfilling it. Shopify creates these itself, and |
| firecrawl_monitor_createB | Create a scheduled monitor for scrape, crawl, or search targets. |
| firecrawl_extractA | Extract structured data from one or more URLs using an LLM. Poll results with extract_status. |
| shopify_product_getA | Get one product with its description and its first 50 variants, including each variant's SKU, price and inventory. Takes a global ID ( |
| gsheets_spreadsheets_values_getC | Returns a range of values from a spreadsheet. |
| shopify_product_createA | Create a product. Only |
| shopify_product_variants_bulk_createA | Add variants to a product. The SKU goes inside |
| firecrawl_scrapeB | Scrape a single URL and optionally extract information. Use when the user wants to read or summarize a specific webpage. Supports markdown, HTML, screenshots, and structured JSON extraction. |
| shopify_product_updateA | Update a product. |
| gmail_threads_getC | Read a Gmail thread. |
| shopify_customers_listB | List customers. Narrow with a Shopify search string in |
| shopify_draft_order_createA | Create a draft order, the way to build an order by hand before it is placed. A draft holds no inventory until it is completed. |
| shopify_order_getA | Get one order with its line items, shipping address and totals. Takes a global ID ( |
| shopify_order_cancelA | Cancel an order. |
| gsheets_spreadsheets_values_updateC | Sets values in a range of a spreadsheet. |
| linear_issue_createA | Create an issue. |
| shopify_locations_listB | List the store's locations. Inactive ones are excluded unless asked for. |
| shopify_inventory_adjust_quantitiesA | Move stock by a relative amount: |
| stripe_balance_transactions_listA | List every movement across the Stripe balance: charges, refunds, fees and payouts. For accounting, |
| connectA | Connect one app this server uses. For an app that issues keys, says where to get one and the terminal command that stores it. For Google, once the user's own OAuth client is set, starts the browser sign-in and returns at once: the user approves in the browser and the next call works. To see which apps are connected, call |
| connection_statusA | See which apps this server is connected to, and how to connect each one that is not. Changes nothing. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| setup | Connect every app this server uses, the quickest way each one allows. |
| low_stock_to_supplier_po_draft | Reorders drafted before a bestseller goes out of stock. |
| daily_sales_digest | Yesterday's orders, revenue and top products, posted and logged. |
| where_is_my_order_replies | The commonest support email answered with the actual fulfillment status. |
| competitor_product_price_watch | A competitor undercuts a SKU and you see both prices side by side. |
| supplier_sheet_to_new_products | A season's catalogue goes from spreadsheet to store draft in one run. |
| product_copy_from_the_supplier_s_page | Specs and materials pulled from the manufacturer, written as your listing. |
| wholesale_order_by_email_to_draft_order | B2B buyers email a list and get an invoice link back. |
| cancellation_request_handled | Unfulfilled orders cancelled on request with the confirmation drafted. |
| vip_customer_outreach | Top spenders get a personal note before a launch, not a blast. |
| fulfillment_exceptions | Orders unfulfilled after 48 hours become an ops issue with the order attached. |
| stock_count_from_a_sheet | The warehouse's count becomes the store's inventory without manual edits. |
| shopify_and_stripe_revenue_in_one_sheet | Stores selling in two places see one revenue number. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
Tools are grouped by resource+action and mostly distinct: Shopify product/order/customer/inventory/location tools don't overlap, and read vs write inventory tools are clearly separated. Minor overlap between firecrawl_scrape and firecrawl_extract (both can extract structured JSON) and the broad multi-domain span makes cross-app selection occasionally ambiguous, but descriptions disambiguate well.
A predictable domain_resource_action pattern runs throughout (shopify_products_list, shopify_product_get, gmail_threads_get, stripe_balance_transactions_list). The only real deviations are the un-prefixed connect and connection_status utilities, which break the otherwise consistent scheme.
28 tools is heavy, and they are split across eight unrelated services (Shopify, Sheets, Gmail, Slack, Firecrawl, Linear, Stripe, connection management), leaving each app with only a few operations. It is defensible for a multi-app integration server but sits above the comfortable range for a Shopify-centric 'Store Ops' surface.
Core Shopify read/write flows (products, orders, inventory, locations) are covered, but there are notable gaps: no product delete, no order fulfillment creation even though shopify_order_fulfillment_orders' description references a nonexistent fulfillment_create, Gmail cannot send (draft only), and Slack only posts. These leave some obvious dead ends an agent would hit.