# Squarespace MCP Server A comprehensive Model Context Protocol (MCP) server for Squarespace, providing complete integration with the Squarespace platform for website management, e-commerce operations, content creation, and analytics. ## Overview This MCP server enables AI assistants to interact with Squarespace sites through a rich set of **67 tools** covering all major platform features. Built with TypeScript and the official MCP SDK, it provides type-safe, reliable access to Squarespace's v1.0 API with OAuth2 authentication, automatic token refresh, pagination, error handling, and retry logic. ## Features ### 🛍️ Complete API Coverage (67 Tools) #### Commerce - Orders (8 tools) - List, search, and filter orders by date range, status, email - Get detailed order information with line items and fulfillment - Create orders (for importing from external sources) - Fulfill orders with optional shipping notifications and tracking - Add internal notes to orders - Get pending orders and recent orders #### Commerce - Products (10 tools) - List all products with pagination - Get detailed product information with variants and images - Create new products with variants - Update products (name, description, pricing, SEO) - Delete products - Create, update, and delete product variants - Search products by name or tag - Filter products by tags #### Commerce - Inventory (5 tools) - Get inventory levels for variants - Update inventory quantities - Adjust inventory by relative amounts - Check for low stock items (configurable threshold) - List out-of-stock items #### Commerce - Transactions (3 tools) - Get all transactions for an order - Process refunds - Get transaction summaries (total paid, refunded, net) #### Profiles (7 tools) - List all profiles (customers, subscribers, donors) - Get detailed profile information - List customers with purchase history - List mailing list subscribers - List donors - Search profiles by email - Get top customers by lifetime value #### Webhooks (7 tools) - List all webhook subscriptions - Get webhook details - Create new webhooks for events (order.create, inventory.update, etc.) - Update webhook configurations - Delete webhooks - Send test notifications - Rotate webhook secrets for security #### Pages & Website (8 tools) - Get website information - List and get collections - List, get, create, update, and delete pages - Manage page SEO settings #### Forms (5 tools) - List all forms - Get form details with fields - List form submissions with filtering - Get specific submission details - Export form submissions as CSV #### Blog (9 tools) - List all blog collections - Get blog details - List blog posts with pagination - Get specific blog post - Create new blog posts - Update blog posts - Delete blog posts - Publish and unpublish posts #### Analytics (5 tools) - Get revenue metrics (total revenue, order count, AOV) - Get top-selling products by revenue - Get daily sales breakdowns - Get monthly revenue summary - Get yearly revenue summary ### 🎨 15 React MCP Apps (Dark Theme) All apps are standalone Vite-based React applications with dark theme: 1. **Orders Dashboard** - Order management and fulfillment 2. **Products Manager** - Product catalog management 3. **Inventory Tracker** - Real-time inventory monitoring 4. **Customer Profiles** - Customer LTV and history 5. **Analytics Dashboard** - Revenue and sales insights 6. **Blog Editor** - Blog post management 7. **Forms Viewer** - Form submissions and export 8. **Webhook Manager** - Webhook configuration and testing 9. **Page Manager** - Website page management 10. **Bulk Editor** - Bulk product updates 11. **SEO Optimizer** - SEO settings and optimization 12. **Reports** - Generate and download reports 13. **Shipping Manager** - Fulfillment tracking 14. **Discount Manager** - Discount code management 15. **Settings** - Server and API configuration ### 🔒 Enterprise-Grade Features - **OAuth2 Authentication** - Full OAuth2 support with refresh tokens - **Automatic Token Refresh** - Seamless token renewal before expiration - **Retry Logic** - Automatic retry with exponential backoff for rate limits and errors - **Pagination Support** - Handle large datasets efficiently - **Error Handling** - Comprehensive error messages with details - **Type Safety** - Full TypeScript types for all API entities - **Rate Limit Management** - Built-in rate limit handling ## Installation ```bash npm install @mcpengine/squarespace-server ``` Or install from source: ```bash cd servers/squarespace npm install npm run build ``` ## Configuration ### Environment Variables The server requires at minimum a Squarespace access token: ```bash export SQUARESPACE_ACCESS_TOKEN="your_access_token_here" ``` For long-term access with automatic token refresh: ```bash export SQUARESPACE_ACCESS_TOKEN="your_access_token" export SQUARESPACE_REFRESH_TOKEN="your_refresh_token" export SQUARESPACE_CLIENT_ID="your_client_id" export SQUARESPACE_CLIENT_SECRET="your_client_secret" ``` ### MCP Configuration Add to your MCP settings file (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS): ```json { "mcpServers": { "squarespace": { "command": "squarespace-mcp", "env": { "SQUARESPACE_ACCESS_TOKEN": "your_access_token", "SQUARESPACE_REFRESH_TOKEN": "your_refresh_token", "SQUARESPACE_CLIENT_ID": "your_client_id", "SQUARESPACE_CLIENT_SECRET": "your_client_secret" } } } } ``` ## Getting Squarespace API Credentials ### 1. Register Your OAuth Application Submit a request to Squarespace to register your OAuth application: - [Squarespace Developer Portal](https://developers.squarespace.com/) - Provide: App name, icon, redirect URI, terms & privacy links You'll receive: - `client_id` - `client_secret` ### 2. OAuth Flow Implement the OAuth2 authorization code flow: 1. **Authorization URL:** ``` https://login.squarespace.com/api/1/login/oauth/provider/authorize? client_id=YOUR_CLIENT_ID& redirect_uri=YOUR_REDIRECT_URI& scope=website.orders,website.products,website.inventory& state=RANDOM_STATE& access_type=offline ``` 2. **Token Exchange:** ```bash curl -X POST https://login.squarespace.com/api/1/login/oauth/provider/tokens \ -H "Authorization: Basic BASE64(client_id:client_secret)" \ -H "Content-Type: application/json" \ -d '{ "grant_type": "authorization_code", "code": "AUTHORIZATION_CODE", "redirect_uri": "YOUR_REDIRECT_URI" }' ``` ### API Scopes Request these scopes for full functionality: - `website.orders` - Read and manage orders - `website.orders.read` - Read-only order access - `website.products` - Manage products - `website.products.read` - Read-only product access - `website.inventory` - Manage inventory - `website.inventory.read` - Read-only inventory access - `website.transactions.read` - Read transaction data ## Usage Examples ### List Recent Orders ```javascript { "name": "squarespace_list_orders", "arguments": { "modifiedAfter": "2024-01-01T00:00:00Z", "fulfillmentStatus": "PENDING" } } ``` ### Create a Product ```javascript { "name": "squarespace_create_product", "arguments": { "product": { "type": "PHYSICAL", "storePageId": "store_page_id", "name": "New Product", "description": "Product description", "variants": [{ "sku": "SKU-001", "pricing": { "basePrice": { "value": "29.99", "currency": "USD" } }, "stock": { "quantity": 100, "unlimited": false } }] } } } ``` ### Fulfill an Order ```javascript { "name": "squarespace_fulfill_order", "arguments": { "orderId": "order_id_here", "shouldSendNotification": true, "shipments": [{ "carrierName": "USPS", "trackingNumber": "1234567890", "trackingUrl": "https://tools.usps.com/go/TrackConfirmAction?tLabels=1234567890" }] } } ``` ### Get Revenue Analytics ```javascript { "name": "squarespace_get_revenue_metrics", "arguments": { "startDate": "2024-01-01T00:00:00Z", "endDate": "2024-01-31T23:59:59Z" } } ``` ### Check Low Stock Items ```javascript { "name": "squarespace_check_low_stock", "arguments": { "threshold": 10 } } ``` ## Architecture ``` squarespace/ ├── src/ │ ├── clients/ │ │ └── squarespace.ts # API client with auth & retry logic │ ├── types/ │ │ └── index.ts # Complete TypeScript types │ ├── tools/ │ │ ├── commerce-orders.ts # Order management tools │ │ ├── commerce-products.ts # Product management tools │ │ ├── commerce-inventory.ts# Inventory management tools │ │ ├── commerce-transactions.ts # Transaction tools │ │ ├── profiles.ts # Customer/subscriber tools │ │ ├── webhooks.ts # Webhook management tools │ │ ├── pages.ts # Page management tools │ │ ├── forms.ts # Form submission tools │ │ ├── blog.ts # Blog management tools │ │ └── analytics.ts # Analytics tools │ ├── ui/ │ │ └── react-app/ # 15 React MCP apps │ ├── server.ts # MCP server implementation │ └── main.ts # Entry point ├── package.json ├── tsconfig.json └── README.md ``` ## API Reference Full documentation: [Squarespace Developer Docs](https://developers.squarespace.com/) ### Rate Limits Squarespace enforces varying rate limits per endpoint with 1-minute cooldowns. The client automatically handles rate limiting with retry logic. ### Webhooks Subscribe to real-time events: - `order.create` - New order created - `order.update` - Order updated - `transaction.create` - New transaction - `transaction.update` - Transaction updated - `inventory.update` - Inventory changed - `product.create` - Product created - `product.update` - Product updated - `product.delete` - Product deleted ## Development ### Build ```bash npm run build ``` ### Type Check ```bash npm run type-check ``` ### Development Mode ```bash npm run dev ``` ## Troubleshooting ### Authentication Errors - **401 Unauthorized**: Token expired or invalid - refresh your token - **403 Forbidden**: Insufficient scopes - request additional permissions - **Token refresh fails**: Verify client credentials are correct ### Rate Limiting - **429 Too Many Requests**: Built-in retry handles this automatically - Implement delays between bulk operations for best performance ### Common Issues 1. **Missing environment variables**: Ensure `SQUARESPACE_ACCESS_TOKEN` is set 2. **TypeScript errors**: Run `npm run type-check` to diagnose 3. **Module resolution**: Verify `package.json` has `"type": "module"` ## Contributing Contributions welcome! Please: 1. Follow existing code structure 2. Add tests for new tools 3. Update documentation 4. Run type checking before submitting ## License MIT License - see LICENSE file for details ## Support - [Squarespace API Documentation](https://developers.squarespace.com/) - [MCP Protocol Specification](https://modelcontextprotocol.io/) - [GitHub Issues](https://github.com/BusyBee3333/mcpengine/issues) ## Changelog ### v1.0.0 (2024-02-12) - Initial release - 67 tools covering all major Squarespace features - 15 React MCP apps with dark theme - OAuth2 authentication with auto-refresh - Comprehensive error handling and retry logic - Full TypeScript support