shopify-ecommerce-platform-connector
Facilitates secure integration with Shopify merchant environments via a GraphQL interface, enabling comprehensive manipulation of inventory items, client profiles, and sales records. Features robust querying capabilities and detailed exception reporting for API interactions.
Author

therealhexi
Quick Info
Actions
Tags
Shopify E-commerce Platform Connector (MCP)
This connector serves as an intermediary layer for interacting with the Shopify administration backend using its GraphQL endpoint. It empowers data operations related to merchandise, clientele, and transactional history.
Core Functionalities
- Merchandise Administration: Mechanisms for discovering and fetching details on sellable items.
- Client Profile Management: Routines for retrieving client records and applying classification labels.
- Transaction Oversight: Sophisticated capabilities for searching and filtering completed sales records.
- GraphQL Native: Direct utilization of Shopify's GraphQL Admin Application Programming Interface.
- Transparent Fault Reporting: Provides lucid diagnostics for both API communication failures and authorization impediments.
Available Operations (Tools)
get-products- Retrieve all inventory items or narrow the scope via product naming.
- Parameters:
searchTitle(String, Optional): A string to filter items whose titles contain this value.limit(Number): Upper bound on the count of items returned.
-
Output: Structured data reflecting merchandise specifics (title, description, handle, variations).
-
get-products-by-collection - Fetch merchandise belonging to a specified catalog grouping.
- Parameters:
collectionId(String): Unique identifier for the collection.limit(Number, Default: 10): Maximum quantity of products to fetch.
-
Output: Formatted product records belonging to that collection.
-
get-products-by-ids - Batch retrieval of merchandise using their respective identifiers.
- Parameters:
productIds(Array of Strings): List of unique product identifiers.
-
Output: Detailed product specifications for the requested items.
-
update-product-price - Modify the listed selling price for a particular merchandise item.
- Parameters:
productId(String): The identifier of the product necessitating a price adjustment.price(String): The proposed new monetary value.
-
Output: The response confirmation from the modification attempt.
-
get-variants-by-ids - Retrieve specific product variations using their unique IDs.
- Parameters:
variantIds(Array of Strings): Identifiers for the product variations.
-
Output: Comprehensive details on the requested variations, linked to their parent products.
-
get-customers - Query the client registry, supporting cursor-based navigation.
- Parameters:
limit(Number, Optional): Maximum number of client records to fetch per request.next(String, Optional): The pagination cursor pointing to the subsequent result set.
-
Output: Client data structured in JSON format.
-
tag-customer - Append descriptive labels (tags) to a client record.
- Parameters:
customerId(String): The target client's unique identifier.tags(Array of Strings): The labels to be associated with the client.
-
Output: Status message indicating success or failure.
-
get-orders - Retrieve sales transactions subject to advanced filtering and sorting criteria.
- Parameters:
first(Number, Optional): The initial batch size of transactions.after(String, Optional): Pointer to continue fetching from the previous result set's end.query(String, Optional): A string formatted for query-based filtering (e.g., status:open).sortKey(Enum, Optional): Criterion for sorting ('PROCESSED_AT', 'TOTAL_PRICE', 'ID', 'CREATED_AT', 'UPDATED_AT', 'ORDER_NUMBER').reverse(Boolean, Optional): If true, sorting order is inverted.
-
Output: Formatted transaction records.
-
get-order - Fetch comprehensive details for a single transaction by its identifier.
- Parameters:
orderId(String): The unique ID of the transaction.
-
Output: In-depth transaction data.
-
create-discount- Establish a new promotional code entitlement.
- Parameters:
title(String): A descriptive heading for the promotion.code(String): The alphanumeric code customers must input.valueType(Enum): Defines the discount mechanism ('percentage' or 'fixed_amount').value(Number): The quantum of the reduction (e.g., 0.15 for 15% or 10.00 for a fixed ten units).startsAt(String): Date/time marking promotion activation (ISO 8601 format).endsAt(String, Optional): Date/time marking promotion expiry (ISO 8601 format).appliesOncePerCustomer(Boolean): Restriction flag for single-use per client.- Output: Details of the newly instantiated discount object.
-
create-draft-order- Initialize a pending transaction record.
- Parameters:
lineItems(Array): Collection of products specified byvariantIdand requiredquantity.email(String): The intended purchaser's electronic mail address.shippingAddress(Object): Full geographical delivery particulars.note(String, Optional): Any supplemental commentary attached to the draft.- Output: Information pertaining to the created draft transaction.
-
complete-draft-order- Finalize the conversion of a draft transaction into a live sales record.
- Parameters:
draftOrderId(String): Identifier for the pending transaction.variantId(String): Identifier for a specific item variation involved in the order completion (this input parameter seems potentially redundant or specific to Shopify's API design for this operation, retained for structural similarity).- Output: Details of the resulting finalized transaction.
-
get-collections- Retrieve records of all merchandise groupings.
- Parameters:
limit(Number, Default: 10): Cap on the quantity of collections returned.name(String, Optional): Textual filter to match collection titles.- Output: Information describing the collections.
-
get-shop- Obtain fundamental configuration attributes of the merchant store.
- Parameters: None
- Output: Essential store metadata.
-
get-shop-details- Retrieve an augmented set of store attributes, including destination countries for fulfillment.
- Parameters: None
- Output: Enhanced store profile data.
-
manage-webhook- Provision, locate, or terminate subscriptions for asynchronous data events.
- Parameters:
action(Enum): The intended transaction ('subscribe', 'find', 'unsubscribe').callbackUrl(String): The endpoint URL where Shopify will send event notifications.topic(Enum): The specific event stream to monitor (e.g., product updates).webhookId(String, Optional): Required when executing an 'unsubscribe' operation.- Output: Webhook configuration details or procedural confirmation.
Deployment Prerequisites (Shopify Access Credentials)
To effectively utilize this MCP server, you must first provision a private application within your Shopify administrative panel:
- Navigate to the Shopify admin interface, proceed to Settings > Apps and sales channels.
- Select Develop apps (enabling developer mode may be a prerequisite).
- Initiate the creation of a new application (Create an app).
- Assign a recognizable identifier to your application (e.g., "Shopify Data Interface").
- Access Configure Admin API scopes.
- Grant the necessary permissions:
- Product access:
read_products,write_products - Client access:
read_customers,write_customers - Order access:
read_orders,write_orders - Finalize the scope configuration by clicking Save.
- Authorize the application installation by clicking Install app.
- Confirm the permissions grant by clicking Install.
- Upon successful setup, the Admin API access token will be displayed.
- Capture this token—it is essential for the connector's configuration.
Security Warning: This token grants full access to sensitive store data. It must be safeguarded; never expose it publicly or check it into source control. Additional procedural documentation for app creation is available here.
Configuration for Claude Desktop Environment
Integrate the following structure into your claude_desktop_config.json file:
{
"mcpServers": {
"shopify": {
"command": "npx",
"args": ["-y", "shopify-mcp-server"],
"env": {
"SHOPIFY_ACCESS_TOKEN": "
Development Workflow
- Obtain a local copy of the repository structure.
-
Install requisite software components: bash npm install
-
Establish a local environment file for secrets:
SHOPIFY_ACCESS_TOKEN=your_actual_token MYSHOPIFY_DOMAIN=your-domain.myshopify.com
-
Compile the project assets: bash npm run build
-
Execute validation routines: bash npm test
Required Components
- @modelcontextprotocol/sdk - Core MCP framework implementation.
- graphql-request - Utility for executing GraphQL queries against Shopify.
- zod - Used for ensuring data schema conformity at runtime.
Collaboration Guidelines
We welcome external contributions! Please review our Collaboration Documentation before submitting pull requests.
Licensing
This project is distributed under the MIT License.
Support Channels
Constructed with dedication using the Model Context Protocol Specification
WIKIPEDIA ANALOGY: Corporate operations management systems encompass all the frameworks, software, auditing mechanisms, calculation methods, and procedures an enterprise deploys to successfully navigate shifting market dynamics, maintain a competitive edge, and amplify overall organizational efficacy. These tools often span departmental functions, addressing areas like foresight, procedural control, record-keeping, personnel management, strategic direction, oversight, and more. The modern software landscape, driven by rapid technological advancement, presents a challenge in tool selection, where strategic alignment with organizational goals—rather than chasing novel solutions—is paramount for sustained value generation.
