@packedgedev/mcp
v0.2.0
Published
Packedge MCP server — manage your Packedge store (products, licenses, customers, sites, revenue) from any MCP-compatible AI agent.
Maintainers
Readme
@packedgedev/mcp
Manage your Packedge store — products, licenses, customers, sites, releases, plans, webhooks, payments, analytics, and more — from any MCP-compatible AI agent (Claude Desktop, Claude Code, Cursor, …).
The server is a thin, local adapter over the Packedge API-key-authenticated
/v1 API. The intelligence runs in your agent; this just exposes the verbs.
Setup
- Create an API key in the Packedge console → Settings → API keys.
Copy it (shown once) — it looks like
pk_…. - Add the server to your agent, passing the key via
PACKEDGE_API_KEY.
Claude Desktop / Claude Code / Cursor
Add to your MCP config (claude_desktop_config.json, or the equivalent
mcpServers block in Cursor / .mcp.json):
{
"mcpServers": {
"packedge": {
"command": "npx",
"args": ["-y", "@packedgedev/mcp"],
"env": {
"PACKEDGE_API_KEY": "pk_your_key_here"
}
}
}
}Then ask your agent things like:
- "List my Packedge products."
- "Issue a license for
prd_…to [email protected] with 3 seats." - "Upload ~/dist/my-plugin-1.4.0.zip as version 1.4.0 and publish it."
- "Test my Slack webhook and show its recent deliveries."
- "How are sales trending this month?"
- "Export all licenses to /tmp/licenses.csv."
Configuration
| Env var | Required | Default | Purpose |
|---|---|---|---|
| PACKEDGE_API_KEY | ✅ | — | Your pk_… API key. |
| PACKEDGE_BASE_URL | | https://api.packedge.dev | Override for local/dev (http://localhost:8090). |
| PACKEDGE_READONLY | | off | 1/true registers only read tools — no create/update/delete. Recommended if you only want lookups. |
Tools
81 tools across 16 modules. Tools marked (write) mutate data and are
hidden when PACKEDGE_READONLY is set; (write, destructive) tools
delete/disable things and well-behaved hosts ask for confirmation before
running them. In read-only mode the server exposes 37 of the 81 tools.
Products
| Tool | Description |
|---|---|
| packedge_products_list | List products (status filter, paging). |
| packedge_product_get | Full details for one product. |
| packedge_product_create | Create a product (slug + public key auto-generated). (write) |
| packedge_product_update | Patch product fields. (write) |
| packedge_product_archive | Archive a product (soft delete). (write, destructive) |
Licenses
| Tool | Description |
|---|---|
| packedge_licenses_list | List licenses (status/product/customer filters). |
| packedge_license_get | One license with its sites and customer. |
| packedge_license_create | Issue a license to a customer email. (write) |
| packedge_license_update | Change status, seats, or expiry. (write, destructive) |
| packedge_license_revoke | Revoke a license (busts the edge cache, fires license.revoked). (write, destructive) |
| packedge_licenses_bulk | Bulk revoke / suspend / activate / extend. (write, destructive) |
| packedge_license_delete | PERMANENTLY delete a license. (write, destructive) |
Customers
| Tool | Description |
|---|---|
| packedge_customers_list | List customers (email/name filters). |
| packedge_customer_get | One customer with their licenses. |
| packedge_customer_create | Create a customer record. (write) |
| packedge_customer_update | Patch customer fields. (write) |
| packedge_customer_delete | PERMANENTLY delete a customer. (write, destructive) |
| packedge_customers_bulk | Bulk delete customers. (write, destructive) |
Sites
| Tool | Description |
|---|---|
| packedge_sites_list | List activated sites (license/product/status filters). |
| packedge_site_get | One site with its license and product. |
| packedge_site_deactivate | Deactivate a site, freeing a seat. (write, destructive) |
| packedge_sites_bulk_deactivate | Deactivate many sites at once. (write, destructive) |
Dashboard & Analytics (always available, read-only)
| Tool | Description |
|---|---|
| packedge_dashboard_stats | Headline counts + all-time revenue. |
| packedge_revenue_summary | All-time + rolling-window revenue with a daily series. |
| packedge_dashboard_chart | Daily series for revenue or licenses. |
| packedge_sales_report | Sales summary / trend / breakdown with shared filters. |
| packedge_usage_analytics | Downloads, domains, or activation trends (Pro+). |
| packedge_product_report | Per-product license/site/event/feedback aggregates (paid plans). |
| packedge_feature_usage | Per-product feature analytics from custom SDK events. |
| packedge_sdk_status | Whether a product's SDK integration is sending events. |
Releases
| Tool | Description |
|---|---|
| packedge_releases_list | A product's releases (version, channel, stable, downloads). |
| packedge_release_download_url | Signed, time-limited (24h) download URL for a release zip. |
| packedge_release_inspect | Preview a local zip's readme.txt metadata — nothing stored. (write) |
| packedge_release_upload | Upload a local zip and create the release in one step. (write) |
| packedge_release_update | Patch notes, compat fields, or status (publishing goes live). (write) |
| packedge_release_set_stable | Make a published release the stable update (or roll back). (write) |
| packedge_release_delete | Delete a release and its stored zip. (write, destructive) |
Plans
| Tool | Description |
|---|---|
| packedge_plans_list | A product's pricing plans. |
| packedge_plan_create | Create a plan (does not push to Stripe/Polar — sync after). (write) |
| packedge_plan_update | Patch a plan; pricing changes re-create provider products. (write) |
| packedge_plan_sync | Reconcile a plan with the connected Stripe/Polar account. (write) |
| packedge_plan_delete | Soft-delete a plan and archive its provider products. (write, destructive) |
Webhooks
| Tool | Description |
|---|---|
| packedge_webhooks_list | A product's webhook subscribers. |
| packedge_webhook_get | One webhook incl. signing secret and disable state. |
| packedge_webhook_deliveries | Recent deliveries, or one delivery's full request/response. |
| packedge_webhook_create | Create a subscriber (secret shown once). (write) |
| packedge_webhook_update | Patch name/URL/events/enabled (re-enable clears failures). (write) |
| packedge_webhook_regenerate_secret | Mint a new signing secret (old one stops working). (write, destructive) |
| packedge_webhook_test | Send a synthetic test event and report the outcome. (write) |
| packedge_webhook_redeliver | Replay one past delivery's payload. (write) |
| packedge_webhook_delete | PERMANENTLY delete a webhook. (write, destructive) |
Payments
| Tool | Description |
|---|---|
| packedge_payments_list | List payments/orders (search, status, date filters). |
| packedge_payment_get | One payment with linked license/product/subscription. |
| packedge_payment_create | Record a manual/offline order + issue its license. (write) |
Subscriptions
| Tool | Description |
|---|---|
| packedge_subscriptions_list | List subscriptions (search/product/status filters). |
| packedge_subscription_create | Record a manual subscription + issue its license. (write) |
| packedge_subscription_cancel | Cancel a subscription immediately. (write, destructive) |
| packedge_subscriptions_bulk | Bulk-cancel subscriptions. (write, destructive) |
Exports (always available, read-only)
| Tool | Description |
|---|---|
| packedge_export_csv | CSV export of licenses, customers, payments, sales, or per-product data — inline preview or saved to a local file. |
Events & Logs (always available, read-only)
| Tool | Description |
|---|---|
| packedge_events_list | Paginated SDK/event feed across products. |
| packedge_events_stats | Aggregate event analytics: totals, trends, uninstall reasons, rates. |
| packedge_logs_list | Paginated audit log (Business tier). |
Feedback
| Tool | Description |
|---|---|
| packedge_feedback_list | List customer feedback (product/sentiment/tag filters). |
| packedge_feedback_stats | Sentiment/rating/tag breakdowns. |
| packedge_feedback_tags_list | List feedback tags. |
| packedge_feedback_tag_create | Create a tag. (write) |
| packedge_feedback_tag_update | Rename/recolor a tag. (write) |
| packedge_feedback_tag_delete | Delete a tag and its assignments. (write, destructive) |
| packedge_feedback_tag_assign | Assign/unassign a tag on a feedback entry. (write) |
Notifications
| Tool | Description |
|---|---|
| packedge_notifications_list | The API-key owner's in-app notification feed + unread count. |
| packedge_notifications_mark_read | Mark one or all notifications read. (write) |
Tickets
| Tool | Description |
|---|---|
| packedge_tickets_list | The account's Packedge support tickets. |
| packedge_ticket_get | One ticket with its full message thread. |
| packedge_ticket_create | Open a support ticket. (write) |
| packedge_ticket_reply | Reply on a ticket (reopens closed ones). (write) |
| packedge_ticket_close | Close a ticket. (write) |
Portal
| Tool | Description |
|---|---|
| packedge_portal_settings_get | Customer-portal account URL + blocked-customer count. |
| packedge_portal_blocked_customers | List customers blocked from the portal. |
| packedge_portal_settings_update | Set/clear the portal account URL. (write) |
| packedge_portal_block_customer | Block a customer from the portal. (write, destructive) |
| packedge_portal_unblock_customer | Restore a customer's portal access. (write) |
To revoke a license, prefer packedge_license_revoke (it busts the edge
validation cache and fires the license.revoked webhook) over
packedge_license_delete, which is permanent.
Notes & limits
- The
/v1API is rate-limited to 120 requests/minute; the client retries429s honoringRetry-After. Running locally, this limit is per-machine. - Some endpoints are plan-gated on the Packedge side: releases, webhooks, and
product reports require a paid plan; usage analytics and per-product CSV
exports require Pro+; audit logs require Business. Gated calls return a
clear
402message. - Release uploads accept local
.zipfiles up to 100 MB (absolute paths).
Develop
pnpm --filter @packedgedev/mcp build # bundle to dist/
pnpm --filter @packedgedev/mcp typecheck
# run against a local API with a test key:
PACKEDGE_API_KEY=pk_… PACKEDGE_BASE_URL=http://localhost:8090 node dist/index.js