npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@packedgedev/mcp

v0.2.0

Published

Packedge MCP server — manage your Packedge store (products, licenses, customers, sites, revenue) from any MCP-compatible AI agent.

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

  1. Create an API key in the Packedge console → Settings → API keys. Copy it (shown once) — it looks like pk_….
  2. 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 /v1 API is rate-limited to 120 requests/minute; the client retries 429s honoring Retry-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 402 message.
  • Release uploads accept local .zip files 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