Labsco
devkindhq logo

Swell MCP

ā˜… 2

from devkindhq

Give your AI a direct line into your Swell store. Manage products, orders, and customers through natural conversation.

šŸ”„šŸ”„šŸ”„āœ“ VerifiedAccount requiredAdvanced setup

Swell MCP Server

A Model Context Protocol server that integrates AI assistants with Swell's e-commerce platform. Built on a production-ready TypeScript foundation, it provides comprehensive access to Swell stores for product management, order processing, and customer management through both CLI and MCP tool interfaces.

Built by Devkind - Official Swell Partners serving businesses globally with cutting-edge e-commerce solutions.

Features

  • Swell E-commerce Integration: Complete access to Swell's API for products, orders, and customers
  • Dual Transport Support: STDIO and HTTP transports for AI assistant and web integration
  • 5-Layer Architecture: Clean separation between CLI, tools, controllers, services, and utilities
  • Type Safety: Full TypeScript implementation with Zod schema validation
  • Advanced HTTP Client: Built on swell-node SDK with connection pooling and retry logic
  • Comprehensive Testing: Unit and integration tests with Swell API mocking
  • Production Tooling: ESLint, Prettier, semantic-release, and MCP Inspector integration
  • Error Handling: Structured error handling with Swell-specific error contexts

Swell E-commerce Integration

This MCP server provides comprehensive integration with Swell's e-commerce platform:

Available Tools & Commands

MCP Tools:

  • swell_list_products - List products with filtering and pagination
  • swell_get_product - Get detailed product information
  • swell_search_products - Search products with multiple criteria
  • swell_check_inventory - Check product inventory levels
  • swell_list_orders - List orders with filtering options
  • swell_get_order - Get detailed order information
  • swell_update_order_status - Update order status
  • swell_list_customers - List customers with search capabilities
  • swell_get_customer - Get detailed customer information
  • swell_search_customers - Search customers with multiple criteria

Features Demonstrated

  • Product Management: Complete product catalog access with inventory tracking
  • Order Processing: Order lifecycle management with status updates
  • Customer Management: Customer profiles with order history and analytics
  • Error Handling: Structured errors for API failures and validation issues
  • Response Formatting: Clean Markdown output with structured data tables

Configuration Requirements

# Required - Swell API credentials
SWELL_STORE_ID=your-store-id
SWELL_SECRET_KEY=your-secret-key

# Development
DEBUG=true                    # Enable detailed logging
TRANSPORT_MODE=http          # Use HTTP transport
PORT=3001                    # Custom port

Need Advanced Swell Checkout?

This MCP server demonstrates the kind of sophisticated Swell integrations that power CheckoutJet - an enterprise-grade checkout solution for Swell stores built by Devkind.

CheckoutJet transforms your Swell checkout with:

  • šŸ¢ B2B Excellence - Professional invoicing, Net 30 payments, and wholesale pricing
  • šŸ“¦ Smart Shipping - Live rates from multiple locations with intelligent order routing
  • ⚔ Split Deliveries - Handle complex multi-vendor and multi-warehouse fulfillment
  • šŸŽØ Full Customization - Pixel-perfect, on-brand checkout experience
  • šŸ¤– Automation - Automated invoicing, POs, and order management
  • šŸ’° Advanced Pricing - Dynamic discounts and tiered pricing logic

Proven Results: Over €500,000 processed for Swell merchants with 23% conversion rate improvements.

Ready to upgrade your Swell checkout? Book a 15-minute demo

What is MCP?

Model Context Protocol (MCP) is an open standard for securely connecting AI systems to external tools and data sources. This server implements the MCP specification to provide AI assistants with comprehensive access to Swell's e-commerce platform, enabling intelligent store management and customer service automation.

Transport Modes

STDIO Transport

  • JSON-RPC communication via stdin/stdout
  • Used by Claude Desktop, Cursor AI, and other local AI assistants
  • Run with: TRANSPORT_MODE=stdio node dist/index.js

Streamable HTTP Transport

  • HTTP-based transport with Server-Sent Events (SSE)
  • Supports multiple concurrent connections and web integrations
  • Runs on port 3000 by default (configurable via PORT env var)
  • MCP Endpoint: http://localhost:3000/mcp
  • Health Check: http://localhost:3000/ → Returns server version
  • Run with: TRANSPORT_MODE=http node dist/index.js

Architecture Overview

Project Structure (Click to expand)
src/
ā”œā”€ā”€ cli/                    # Command-line interfaces
│   └── index.ts            # CLI entry point with Commander setup
ā”œā”€ā”€ controllers/            # Business logic orchestration
│   ā”œā”€ā”€ swell.products.controller.ts    # Product management logic
│   ā”œā”€ā”€ swell.products.formatter.ts     # Product response formatting
│   ā”œā”€ā”€ swell.orders.controller.ts      # Order management logic
│   ā”œā”€ā”€ swell.orders.formatter.ts       # Order response formatting
│   ā”œā”€ā”€ swell.customers.controller.ts   # Customer management logic
│   └── swell.customers.formatter.ts    # Customer response formatting
ā”œā”€ā”€ services/               # External API interactions
│   ā”œā”€ā”€ swell.products.service.ts       # Swell products API service
│   ā”œā”€ā”€ swell.products.types.ts         # Product type definitions
│   ā”œā”€ā”€ swell.orders.service.ts         # Swell orders API service
│   ā”œā”€ā”€ swell.orders.types.ts           # Order type definitions
│   ā”œā”€ā”€ swell.customers.service.ts      # Swell customers API service
│   └── swell.customers.types.ts        # Customer type definitions
ā”œā”€ā”€ tools/                  # MCP tool definitions (AI interface)
│   ā”œā”€ā”€ swell.products.tool.ts          # Product management tools
│   ā”œā”€ā”€ swell.orders.tool.ts            # Order management tools
│   └── swell.customers.tool.ts         # Customer management tools
ā”œā”€ā”€ types/                  # Global type definitions
│   └── common.types.ts     # Shared interfaces (ControllerResponse, etc.)
ā”œā”€ā”€ utils/                  # Shared utilities
│   ā”œā”€ā”€ logger.util.ts      # Contextual logging system
│   ā”œā”€ā”€ error.util.ts       # MCP-specific error formatting
│   ā”œā”€ā”€ error-handler.util.ts # Error handling utilities
│   ā”œā”€ā”€ config.util.ts      # Environment configuration
│   ā”œā”€ā”€ constants.util.ts   # Version and package constants
│   ā”œā”€ā”€ formatter.util.ts   # Markdown formatting
│   ā”œā”€ā”€ swell-client.util.ts # Swell SDK client wrapper
│   └── transport.util.ts   # HTTP transport utilities
└── index.ts                # Server entry point (dual transport)

5-Layer Architecture

The server follows a clean, layered architecture that promotes maintainability and clear separation of concerns:

1. CLI Layer (src/cli/)

  • Purpose: Command-line interfaces for direct tool usage and testing
  • Implementation: Commander-based argument parsing with contextual error handling
  • Example: list-products --active --category electronics
  • Pattern: Register commands → Parse arguments → Call controllers → Handle errors

2. Tools Layer (src/tools/)

  • Purpose: MCP tool definitions that AI assistants can invoke
  • Implementation: Zod schema validation with structured responses
  • Example: swell_list_products tool with filtering and pagination options
  • Pattern: Define schema → Validate args → Call controller → Format MCP response

3. Resources Layer (src/resources/)

  • Purpose: MCP resources providing contextual data accessible via URIs (planned feature)
  • Implementation: Resource handlers that respond to URI-based requests
  • Example: swell://products/123 resource providing product details
  • Pattern: Register URI patterns → Parse requests → Return formatted content

4. Controllers Layer (src/controllers/)

  • Purpose: Business logic orchestration with comprehensive error handling
  • Implementation: Options validation, fallback logic, response formatting
  • Example: Product management with inventory tracking, order processing with status updates
  • Pattern: Validate inputs → Apply defaults → Call services → Format responses

5. Services Layer (src/services/)

  • Purpose: Direct external API interactions with minimal business logic
  • Implementation: HTTP transport utilities with structured error handling
  • Example: Swell API calls with authentication and data validation
  • Pattern: Build requests → Make API calls → Validate responses → Return raw data

6. Utils Layer (src/utils/)

  • Purpose: Shared functionality across all layers
  • Key Components:
    • logger.util.ts: Contextual logging (file:method context)
    • error.util.ts: MCP-specific error formatting
    • transport.util.ts: HTTP/API utilities with retry logic
    • config.util.ts: Environment configuration management

Available Tools

The Swell MCP server provides comprehensive e-commerce management tools for AI assistants. The list below matches the tool names and parameter schemas implemented under src/tools/.

Product Management
  • swell_list_products

    • Description: List products with filtering and pagination
    • Parameters: page, limit, active, category, tags, sort, expand
  • swell_get_product

    • Description: Get detailed product information
    • Parameters: productId, expand
  • swell_search_products

    • Description: Search products with text queries and optional filters
    • Parameters: query, page, limit, active, category, tags, sort, expand
  • swell_check_stock

    • Description: Check current stock levels and stock status for a product
    • Parameters: productId, includeVariants (default: true)
  • swell_update_product

    • Description: Update product metadata and attributes (name, description, SEO, tags, categories, attributes, active, sku, etc.)
    • Parameters: productId plus any editable product fields
  • swell_update_product_stock

    • Description: Adjust stock levels or update stock tracking settings
    • Parameters: productId, quantity, reason, reasonMessage, variantId, orderId
  • swell_update_product_pricing

    • Description: Update product pricing (regular price, sale price, currency)
    • Parameters: productId, price, salePrice, currency
Order Management
  • swell_list_orders

    • Description: List orders with filtering options
    • Parameters: page, limit, status, customerId, dateFrom, dateTo, sort, expand
  • swell_get_order

    • Description: Get detailed order information
    • Parameters: orderId, expand
  • swell_update_order_status

    • Description: Update the status of an order (with optional notes)
    • Parameters: orderId, status, notes
Customer Management
  • swell_list_customers

    • Description: List customers with search and filtering options
    • Parameters: page, limit, search, email, dateFrom, dateTo, sort, expand
  • swell_get_customer

    • Description: Get detailed customer information (profile + optional order history)
    • Parameters: customerId, expand, includeOrderHistory
  • swell_search_customers

    • Description: Search customers using text queries (name, email, phone)
    • Parameters: query, page, limit, dateFrom, dateTo, sort, expand
  • swell_update_customer

    • Description: Update customer records (name, email, phone, tags, groups, marketing opt-ins, notes)
    • Parameters: customerId plus editable customer fields

Extending the Server

This server is built with a modular architecture that makes it easy to add new Swell API integrations or custom business logic. The existing Swell tools (products, orders, customers) serve as examples for implementing additional functionality.

For detailed implementation patterns, see the existing controllers, services, and tools in the codebase.

šŸš€ Take Your Swell Store Further

Impressed by this MCP server's capabilities? This is just a glimpse of what's possible with expert Swell development.

ļæ½ CheckoutJet - Enterprise Swell Checkout

Transform your Swell store with our battle-tested checkout solution:

  • B2B Powerhouse - Professional invoicing, Net 30 payments, wholesale pricing
  • Smart Shipping - Live rates from multiple locations with intelligent routing
  • Split Deliveries - Complex multi-vendor and multi-warehouse fulfillment
  • Full Customization - Pixel-perfect, on-brand checkout experience
  • Proven Results - €500,000+ processed, 23% conversion improvements

See CheckoutJet in Action →

šŸ¤– AI & Custom Development

  • AI-powered integrations like this MCP server
  • Custom Swell applications and themes
  • Headless commerce implementations
  • Performance optimization and automation

Ready to transform your e-commerce business?

Testing Strategy

The server includes comprehensive testing infrastructure:

Test Structure

tests/               # Not present - tests are in src/
src/
ā”œā”€ā”€ **/*.test.ts     # Co-located with source files
ā”œā”€ā”€ utils/           # Utility function tests
ā”œā”€ā”€ controllers/     # Business logic tests
ā”œā”€ā”€ services/        # API integration tests
└── cli/             # CLI command tests

Testing Best Practices

  • Unit Tests: Test utilities and pure functions (*.util.test.ts)
  • Controller Tests: Test business logic with mocked service calls
  • Service Tests: Test API integration with real/mocked HTTP calls
  • CLI Tests: Test command parsing and execution
  • Test Environment Detection: Automatic test mode handling in controllers

Running Tests

npm test                    # Run all tests
npm run test:coverage       # Generate coverage report
npm run test:cli           # CLI-specific tests only

Coverage Goals

  • Target: >80% test coverage
  • Focus on business logic (controllers) and utilities
  • Mock external services appropriately

Resources & Documentation

MCP Protocol Resources

Implementation References

Swell Resources

Professional Swell Services

Looking for expert Swell development? Devkind is an official Swell partner serving businesses globally with our remote team, specializing in:

Get Started: See CheckoutJet Demo | Book FREE consultation | Email: hello@devkind.com.au | Global Remote Team