Dockerized Shopify.dev MCP server that exposes an HTTP endpoint for integration with N8N and other HTTP-based clients.
- HTTP Streamable: Access the Shopify Dev MCP server via HTTP instead of stdio
- N8N Compatible: Perfect for connecting to N8N workflows
- Cloud Deployable: Ready to deploy to Digital Ocean App Platform
- Custom HTTP Server: Custom Node.js server that wraps the Shopify Dev MCP
- Real-time Communication: Uses SSE (Server-Sent Events) for streaming responses
-
Authenticate with Digital Ocean:
doctl auth init
-
Deploy the app:
doctl apps create --spec .do/app.yaml
-
Get your app URL:
doctl apps get <app-id> --format Domains
Your MCP server will be available at:
- HTTP Stream endpoint:
https://your-app-url.do/stream(PUT) - Bidirectional streaming - Recommended - SSE endpoint:
https://your-app-url.do/sse(GET) - Legacy SSE for responses - Message endpoint:
https://your-app-url.do/message(POST) - For SSE transport - Health endpoint:
https://your-app-url.do/health- Check server status
This MCP server provides access to all Shopify development tools:
learn_shopify_api- Teaches about supported Shopify APIssearch_docs_chunks- Search across shopify.dev documentationfetch_full_docs- Retrieve complete documentation pagesintrospect_graphql_schema- Explore Shopify GraphQL schemasvalidate_graphql_codeblocks- Validate GraphQL code blocksvalidate_component_codeblocks- Validate Shopify component codevalidate_theme_codeblocks- Validate Liquid codeblocks (partial mode)validate_theme- Validate entire theme directories
After deploying, configure N8N to connect to your MCP server:
-
Get your deployed app URL (e.g.,
https://shopify-mcp-server-xyz.ondigitalocean.app) -
Add the MCP Server configuration in N8N:
- Server URL:
https://your-app-url/sse - Protocol: HTTP
- Transport: SSE (Server-Sent Events)
- Server URL:
-
Use the available tools in your N8N workflows
You can configure the following environment variables in Digital Ocean:
PORT- Port number (default: 8080) - already configuredAPI_KEY- (Optional) API key for authentication. If not set, the server runs without authenticationOPT_OUT_INSTRUMENTATION- Set to "true" to disable Shopify Dev MCP telemetryLIQUID_VALIDATION_MODE- Set to "full" (default) or "partial"
The server supports optional API key authentication via:
- Authorization Header:
Authorization: Bearer <API_KEY> - Query Parameter:
?apiKey=<API_KEY>
Example with auth:
# Using Authorization header
curl -H "Authorization: Bearer your-api-key" \
https://your-app-url/sse
# Using query parameter (for SSE)
curl https://your-app-url/sse?apiKey=your-api-keyRun locally with Node.js:
npm startOr with Docker:
docker build -t shopify-dev-mcp .
docker run -p 8080:8080 -e PORT=8080 shopify-dev-mcpConnect to:
- SSE:
http://localhost:8080/sse- Subscribe to MCP responses - Message:
http://localhost:8080/message- Send MCP requests - Health:
http://localhost:8080/health- Check status
N8N/Client → HTTP → Custom HTTP Server → stdio → Shopify Dev MCP
(Node.js) (Port 8080)
The custom Node.js server:
- Spawns the Shopify Dev MCP server as a child process
- Bridges stdio communication to HTTP endpoints
- Implements JSON-RPC 2.0 protocol over HTTP
- Uses SSE for real-time streaming responses
- Handles message routing between multiple clients