113 lines
4.3 KiB
Markdown
113 lines
4.3 KiB
Markdown
# Shopify MCP Server - Tools Summary
|
|
|
|
## Overview
|
|
Built **67 tools** across 13 categories for comprehensive Shopify API coverage.
|
|
|
|
## Tool Categories & Count
|
|
|
|
| Category | File | Tools | Description |
|
|
|----------|------|-------|-------------|
|
|
| Products | `src/tools/products.ts` | 6 | Product CRUD, variants, images, search |
|
|
| Orders | `src/tools/orders.ts` | 6 | Order management, cancellation, status updates |
|
|
| Customers | `src/tools/customers.ts` | 6 | Customer CRUD, addresses, search |
|
|
| Inventory | `src/tools/inventory.ts` | 6 | Inventory levels, locations, adjustments |
|
|
| Collections | `src/tools/collections.ts` | 6 | Custom collections, product associations |
|
|
| Discounts | `src/tools/discounts.ts` | 7 | Price rules, discount codes |
|
|
| Shipping | `src/tools/shipping.ts` | 6 | Shipping zones, carrier services |
|
|
| Fulfillments | `src/tools/fulfillments.ts` | 6 | Fulfillment CRUD, tracking updates |
|
|
| Themes | `src/tools/themes.ts` | 8 | Theme management, asset upload/download |
|
|
| Pages | `src/tools/pages.ts` | 5 | Static page CRUD, metafields |
|
|
| Blogs | `src/tools/blogs.ts` | 7 | Blog and article management |
|
|
| Analytics | `src/tools/analytics.ts` | 3 | Shop info, event logs |
|
|
| Webhooks | `src/tools/webhooks.ts` | 5 | Webhook subscription management |
|
|
|
|
**Total: 67 tools**
|
|
|
|
## Quality Standards Met
|
|
|
|
✅ **TypeScript compilation:** Clean compile with `npx tsc --noEmit`
|
|
✅ **Zod schemas:** Every input validated with descriptive field annotations
|
|
✅ **Pagination:** All list operations support cursor-based pagination
|
|
✅ **Filtering:** Date ranges, status, and resource-specific filters
|
|
✅ **Consistent naming:** `shopify_verb_noun` pattern throughout
|
|
✅ **Error handling:** Zod validation + client retry/rate limiting
|
|
✅ **Type safety:** ShopifyClient interface usage, proper async/await
|
|
|
|
## Tool Examples
|
|
|
|
### Products
|
|
- `shopify_list_products` - Paginated listing with status/type/vendor/date filters
|
|
- `shopify_get_product` - Retrieve single product by ID
|
|
- `shopify_create_product` - Create with variants and images
|
|
- `shopify_update_product` - Partial updates
|
|
- `shopify_delete_product` - Delete by ID
|
|
- `shopify_search_products` - Full-text search
|
|
|
|
### Orders
|
|
- `shopify_list_orders` - Filter by status, financial status, fulfillment status, dates
|
|
- `shopify_get_order` - Retrieve order details
|
|
- `shopify_create_order` - Create manual orders
|
|
- `shopify_update_order` - Update notes, tags, email
|
|
- `shopify_cancel_order` - Cancel with optional refund/restock
|
|
- `shopify_close_order` - Mark as complete
|
|
|
|
### Discounts
|
|
- `shopify_list_price_rules` - List all discount rules
|
|
- `shopify_create_price_rule` - Create percentage/fixed discounts
|
|
- `shopify_list_discount_codes` - List codes for a rule
|
|
- `shopify_create_discount_code` - Generate new discount code
|
|
|
|
## Architecture
|
|
|
|
Each tool file exports a default array of tool definitions:
|
|
```typescript
|
|
export default [
|
|
{
|
|
name: 'shopify_tool_name',
|
|
description: 'Human-readable description',
|
|
inputSchema: { /* JSON Schema */ },
|
|
handler: async (input: unknown, client: ShopifyClient) => {
|
|
const validated = ZodSchema.parse(input);
|
|
const result = await client.method('/endpoint.json', { params: validated });
|
|
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
|
|
}
|
|
}
|
|
];
|
|
```
|
|
|
|
## Server Integration
|
|
|
|
The `ShopifyMCPServer` class in `src/server.ts` lazy-loads tool modules on demand:
|
|
- List tools → loads all modules, aggregates definitions
|
|
- Call tool → loads specific module, executes handler with client instance
|
|
|
|
## Next Steps
|
|
|
|
1. ✅ All tool files created
|
|
2. ✅ TypeScript compilation verified
|
|
3. ⏭️ Integration testing with MCP inspector
|
|
4. ⏭️ Documentation updates (README, examples)
|
|
5. ⏭️ Deployment to npm/GitHub
|
|
|
|
## File Structure
|
|
|
|
```
|
|
src/tools/
|
|
├── products.ts (6 tools)
|
|
├── orders.ts (6 tools)
|
|
├── customers.ts (6 tools)
|
|
├── inventory.ts (6 tools)
|
|
├── collections.ts (6 tools)
|
|
├── discounts.ts (7 tools)
|
|
├── shipping.ts (6 tools)
|
|
├── fulfillments.ts (6 tools)
|
|
├── themes.ts (8 tools)
|
|
├── pages.ts (5 tools)
|
|
├── blogs.ts (7 tools)
|
|
├── analytics.ts (3 tools)
|
|
└── webhooks.ts (5 tools)
|
|
```
|
|
|
|
Built by AI subagent · Date: 2025
|
|
Target: 50-70 tools ✅ Achieved: 67 tools
|