schneider-ops-mcp
v0.1.0
Published
Cross-system orchestration MCP server for Schneider Saddlery — connects Shopify Plus + Fulfil.io ERP
Maintainers
Readme
schneider-ops-mcp
Cross-system orchestration MCP server for Schneider Saddlery — connects Shopify Plus and Fulfil.io ERP into a unified AI-accessible operations layer.
What This Does
This MCP server gives AI agents real-time access to both the storefront (Shopify) and the warehouse/ERP (Fulfil.io) simultaneously. Instead of switching between dashboards, an AI assistant can:
- Reconcile inventory discrepancies between systems
- Trace orders across the full pipeline (Shopify → Fulfil → Shipment → Tracking)
- Generate a unified morning ops dashboard with cross-system health scoring
- Forecast demand and generate proactive restock alerts
- Monitor shipping SLAs with carrier performance breakdowns
Tools (14)
Inventory Reconciliation
| Tool | Description |
|------|-------------|
| inventory_reconciliation | Compare inventory for a single SKU across both systems |
| stock_discrepancy_report | Scan all products for inventory mismatches |
| sync_inventory_to_shopify | Calculate adjustments to align Shopify with Fulfil (dry run) |
Order Pipeline
| Tool | Description |
|------|-------------|
| order_pipeline_status | Trace a single order across both systems end-to-end |
| order_exception_monitor | Find orders with cross-system issues |
| delayed_fulfillment_report | Find stuck orders and identify bottlenecks |
Unified Views
| Tool | Description |
|------|-------------|
| unified_product_view | Full product view combining storefront + ERP data |
| unified_customer_view | Customer profile combining Shopify + Fulfil data |
| unified_daily_dashboard | Comprehensive morning operations dashboard |
Analytics
| Tool | Description |
|------|-------------|
| revenue_reconciliation | Compare revenue between systems for a date range |
| catalog_sync_check | Verify product catalog consistency |
| seasonal_demand_forecast | Project demand based on historical order velocity |
Automation
| Tool | Description |
|------|-------------|
| generate_restock_alerts | Identify products nearing stockout with restock recommendations |
| shipping_sla_monitor | Track order-to-ship time and carrier performance |
Setup
Prerequisites
- Node.js 18+
- Fulfil.io API key with read access
- Shopify Admin API access token
Environment Variables
FULFIL_API_KEY=your-fulfil-api-key
FULFIL_SUBDOMAIN=schneider-saddlery # → https://schneider-saddlery.fulfil.io
SHOPIFY_STORE_DOMAIN=schneider-saddlery.myshopify.com
SHOPIFY_ACCESS_TOKEN=shpat_xxxxxInstall & Build
npm install
npm run buildRun
# Direct
node dist/index.js
# Via wrapper (loads .env automatically)
./schneider-ops-mcp-wrapper.shMCP Configuration
Add to your Claude Code settings:
{
"mcpServers": {
"schneider-ops": {
"command": "/Volumes/Virtual Server/projects/schneider-ops-mcp/schneider-ops-mcp-wrapper.sh",
"env": {
"FULFIL_API_KEY": "your-key",
"FULFIL_SUBDOMAIN": "schneider-saddlery",
"SHOPIFY_STORE_DOMAIN": "schneider-saddlery.myshopify.com",
"SHOPIFY_ACCESS_TOKEN": "shpat_xxxxx"
}
}
}
}Architecture
schneider-ops-mcp
├── Shopify Admin REST API (2024-10) ←→ ShopifyClient
│ ├── Orders, Products, Inventory, Customers
│ ├── Rate limiting via X-Shopify-Shop-Api-Call-Limit
│ └── Pagination via Link headers
│
├── Fulfil.io REST API v2 ←→ FulfilClient
│ ├── Sales, Products, Shipments, Parties
│ ├── Tryton-style domain filters
│ └── Bearer token auth
│
└── 14 Cross-System Tools
├── Match products by SKU
├── Match customers by email
└── Match orders by reference/order numberBoth API clients include exponential backoff retries, rate limit handling, and structured error reporting.
License
MIT
