Skip to main content

commercevault-edd-ecommerce-api

Easy Digital Downloads MCP server for sales analytics, product management, and customer data orchestration

来源信息

仓库
reason-machines/mcp-skills
最近来源活动
2026年6月30日 18:39
检测到的 SKILL.md 语言
英语
星标
7
分支
2

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
commercevault-edd-ecommerce-api
description
Easy Digital Downloads MCP server for sales analytics, product management, and customer data orchestration
triggers
["connect to Easy Digital Downloads API","query EDD sales data and analytics","manage digital products and downloads","fetch customer purchase history from EDD","sync EDD store inventory and orders","analyze revenue streams and cohorts","retrieve EDD license and entitlement data","set up MCP server for WordPress ecommerce"]
# CommerceVault EDD MCP Server > Skill by [ara.so](https://ara.so) — MCP Skills collection. CommerceVault (mcp-edd-analytics-vantage) is an MCP (Model Context Protocol) server that provides structured access to Easy Digital Downloads (EDD) APIs for sales analytics, product management, customer data, and license/entitlement tracking. It acts as a middleware orchestrator between AI agents and WordPress EDD installations, exposing REST endpoints through a standardized interface. ## What It Does - **Product Catalog Access**: Query, filter, and synchronize digital product listings with pricing, categories, and metadata - **Order Management**: Retrieve order history, payment status, fulfillment data, and refund information - **Customer Analytics**: Access customer profiles, lifetime value, purchase frequency, and segmentation data - **Sales Reporting**: Real-time analytics for revenue, GMV, AOV, churn rate, and cohort analysis - **License Management**: Track license keys, activation codes, and entitlement tiers for digital products - **Webhook Integration**: Bidirectional event relay for order completions, refunds, and customer updates ## Installation ### Prerequisites - Node.js 18+ or Python 3.9+ - Access to an Easy Digital Downloads WordPress installation - EDD REST API credentials (API key and token) ### MCP Server Setup 1. **Clone the repository**: ```bash git clone https://github.com/dhapat3927/mcp-edd-analytics-vantage.git cd mcp-edd-analytics-vantage ``` 2. **Install dependencies** (Node.js example): ```bash npm install ``` 3. **Configure environment variables**: ```bash # .env EDD_API_URL=https://your-store.com/edd-api/v2 EDD_API_KEY=your_edd_api_key EDD_API_TOKEN=your_edd_api_token CACHE_ENABLED=true REDIS_URL=redis://localhost:6379 WEBHOOK_SECRET=your_webhook_signing_secret ``` 4. **Start the MCP server**: ```bash npm start # or python main.py ``` ### MCP Client Configuration Add to your MCP client settings (e.g., Claude Desktop `claude_desktop_config.json`): ```json { "mcpServers": { "commercevault-edd": { "command": "node", "args": ["/path/to/mcp-edd-analytics-vantage/dist/index.js"], "env": { "EDD_API_URL": "https://your-store.com/edd-api/v2", "EDD_API_KEY": "${EDD_API_KEY}", "EDD_API_TOKEN": "${EDD_API_TOKEN}" } } } } ``` ## Core API Methods ### Products **List all products**: ```javascript const products = await mcp.callTool("commercevault-edd", "list_products", { per_page: 50, page: 1, status: "publish", category: "software" }); ``` **Get product details**: ```javascript const product = await mcp.callTool("commercevault-edd", "get_product", { product_id: 123 }); ``` **Search products**: ```javascript const results = await mcp.callTool("commercevault-edd", "search_products", { query: "wordpress plugin", price_min: 19.99, price_max: 99.99 }); ``` ### Orders **Fetch recent orders**: ```javascript const orders = await mcp.callTool("commercevault-edd", "list_orders", { status: "completed", date_start: "2026-01-01", date_end: "2026-06-30", per_page: 100 }); ``` **Get order details**: ```javascript const order = await mcp.callTool("commercevault-edd", "get_order", { order_id: 45678 }); ``` **Process refund**: ```javascript const refund = await mcp.callTool("commercevault-edd", "create_refund", { order_id: 45678, amount: 29.99, reason: "Customer request" }); ``` ### Customers **Get customer data**: ```javascript const customer = await mcp.callTool("commercevault-edd", "get_customer", { customer_id: 789, include_purchases: true }); ``` **List customers by segment**: ```javascript const highValue = await mcp.callTool("commercevault-edd", "list_customers", { ltv_min: 500, order_count_min: 5, sort: "ltv_desc" }); ``` ### Analytics **Revenue report**: ```javascript const revenue = await mcp.callTool("commercevault-edd", "get_revenue_report", { period: "monthly", start_date: "2026-01-01", end_date: "2026-06-30", group_by: "product" }); ``` **Sales metrics**: ```javascript const metrics = await mcp.callTool("commercevault-edd", "get_sales_metrics", { period: "last_30_days", metrics: ["gmv", "aov", "conversion_rate", "refund_rate"] }); ``` **Cohort analysis**: ```javascript const cohorts = await mcp.callTool("commercevault-edd", "analyze_cohorts", { cohort_by: "signup_month", metric: "retention_rate", months: 12 }); ``` ### Licenses **Get license info**: ```javascript const license = await mcp.callTool("commercevault-edd", "get_license", { license_key: "abc123def456" }); ``` **Activate license**: ```javascript const activation = await mcp.callTool("commercevault-edd", "activate_license", { license_key: "abc123def456", site_url: "https://customer-site.com", product_id: 123 }); ``` ## Configuration ### Environment Variables | Variable | Required | Description | |----------|----------|-------------| | `EDD_API_URL` | Yes | Base URL for EDD REST API | | `EDD_API_KEY` | Yes | EDD API public key | | `EDD_API_TOKEN` | Yes | EDD API secret token | | `CACHE_ENABLED` | No | Enable Redis caching (default: false) | | `REDIS_URL` | No | Redis connection string | | `WEBHOOK_SECRET` | No | HMAC secret for webhook verification | | `RATE_LIMIT_MAX` | No | Max requests per window (default: 100) | | `RATE_LIMIT_WINDOW` | No | Rate limit window in seconds (default: 60) | ### Adapter Configuration Create `config/adapter.json` for custom EDD endpoint mappings: ```json { "adapter": "edd", "version": "2.0", "endpoints": { "products": "/products", "orders": "/sales", "customers": "/customers", "licenses": "/licenses" }, "auth": { "type": "bearer", "header": "X-EDD-Token" }, "cache": { "ttl_products": 3600, "ttl_orders": 300, "ttl_customers": 600 } } ``` ## Real-World Examples ### Example 1: Daily Sales Dashboard ```javascript async function generateDailySalesDashboard(date) { // Fetch today's orders const orders = await mcp.callTool("commercevault-edd", "list_orders", { date_start: date, date_end: date, status: "completed" }); // Calculate metrics const totalRevenue = orders.reduce((sum, order) => sum + order.total, 0); const avgOrderValue = totalRevenue / orders.length; // Get top products const productSales = {}; orders.forEach(order => { order.items.forEach(item => { productSales[item.product_id] = (productSales[item.product_id] || 0) + item.quantity; }); }); // Get refunds const refunds = await mcp.callTool("commercevault-edd", "list_orders", { date_start: date, date_end: date, status: "refunded" }); return { date, totalOrders: orders.length, totalRevenue, avgOrderValue, refundCount: refunds.length, topProducts: Object.entries(productSales) .sort((a, b) => b[1] - a[1]) .slice(0, 5) }; } ``` ### Example 2: Customer Lifetime Value Analysis ```javascript async function analyzeCustomerLTV(customerIds) { const results = []; for (const customerId of customerIds) { const customer = await mcp.callTool("commercevault-edd", "get_customer", { customer_id: customerId, include_purchases: true }); const orders = await mcp.callTool("commercevault-edd", "list_orders", { customer_id: customerId, status: "completed" }); const ltv = orders.reduce((sum, order) => sum + order.total, 0); const firstPurchase = orders[orders.length - 1]?.date; const daysSinceFirst = Math.floor( (new Date() - new Date(firstPurchase)) / (1000 * 60 * 60 * 24) ); results.push({ customerId, email: customer.email, ltv, orderCount: orders.length, avgOrderValue: ltv / orders.length, daysSinceFirst, purchaseFrequency: orders.length / (daysSinceFirst / 30) // orders per month }); } return results.sort((a, b) => b.ltv - a.ltv); } ``` ### Example 3: License Management Automation ```javascript async function renewExpiredLicenses() { const licenses = await mcp.callTool("commercevault-edd", "list_licenses", { status: "expired", expiry_date_end: new Date().toISOString().split('T')[0] }); const renewalResults = []; for (const license of licenses) { try { // Get customer info const customer = await mcp.callTool("commercevault-edd", "get_customer", { customer_id: license.customer_id }); // Create renewal order const renewal = await mcp.callTool("commercevault-edd", "create_order", { customer_id: license.customer_id, products: [{ product_id: license.product_id, price: license.renewal_price }], license_renewal: license.license_key }); renewalResults.push({ license: license.license_key, customer: customer.email, status: "renewed", orderId: renewal.order_id }); } catch (error) { renewalResults.push({ license: license.license_key, status: "failed", error: error.message }); } } return renewalResults; } ``` ## Common Patterns ### Caching Strategy ```javascript // Enable cache for frequently accessed data const getCachedProduct = async (productId) => { const cacheKey = `product:${productId}`; const cached = await mcp.callTool("commercevault-edd", "cache_get", { key: cacheKey }); if (cached) return cached; const product = await mcp.callTool("commercevault-edd", "get_product", { product_id: productId }); await mcp.callTool("commercevault-edd", "cache_set", { key: cacheKey, value: product, ttl: 3600 }); return product; }; ``` ### Pagination Handling ```javascript async function getAllOrders(filters) { let page = 1; let allOrders = []; let hasMore = true;
在 GitHub 查看
这个 SKILL.md 很大,SkillsMP 这里只预览前一段内容。 在 GitHub 查看