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

@quick-desk/mcp

v0.1.7

Published

MCP server for QuickDesk — let an AI agent work your support tickets.

Readme

@quick-desk/mcp

Let an AI agent work your QuickDesk support desk — read tickets, triage them, leave internal notes, manage tasks.

Get a key

In QuickDesk, go to Settings → Developers and create a key. Pick the role the agent should have: the key can do exactly what that role allows and nothing more, so start narrow. You'll see the key once.

Connect it

There is nothing to install. Every client below runs the server with npx, which fetches this package on demand.

Settings → Developers in QuickDesk shows these same snippets with your key already filled in, which is the quickest route if you have the portal open.

Claude Code

claude mcp add quickdesk --env QUICKDESK_API_KEY=qd_live_... -- npx -y @quick-desk/mcp

Check it with claude mcp list.

Codex

codex mcp add quickdesk --env QUICKDESK_API_KEY=qd_live_... -- npx -y @quick-desk/mcp

That writes to ~/.codex/config.toml. To edit it by hand instead:

[mcp_servers.quickdesk]
command = "npx"
args = ["-y", "@quick-desk/mcp"]

[mcp_servers.quickdesk.env]
QUICKDESK_API_KEY = "qd_live_..."

VS Code

code --add-mcp '{"name":"quickdesk","command":"npx","args":["-y","@quick-desk/mcp"],"env":{"QUICKDESK_API_KEY":"qd_live_..."}}'

Then open Copilot chat in agent mode.

Claude Desktop, Cursor, Windsurf, Zed, Gemini CLI

These take the same block. Only the file it goes in changes: Claude Desktop uses claude_desktop_config.json (Settings → Developer → Edit config), Cursor uses ~/.cursor/mcp.json or a per-project .cursor/mcp.json, and Gemini CLI uses ~/.gemini/settings.json.

{
  "mcpServers": {
    "quickdesk": {
      "command": "npx",
      "args": ["-y", "@quick-desk/mcp"],
      "env": { "QUICKDESK_API_KEY": "qd_live_..." }
    }
  }
}

Then ask your agent something like "What QuickDesk tickets are waiting on us, and which look urgent?"

Replying to customers is off by default

The server will not expose quickdesk_reply_to_ticket unless you start it with QUICKDESK_MCP_ALLOW_SEND=1. A public reply emails your customer and cannot be undone, so it is opt-in rather than something an agent can reach for by accident. Everything else — reading, triaging, assigning, internal notes — works without it.

When the tool is withheld it is absent from the tool list entirely, so an agent plans around it instead of trying and failing.

"env": {
  "QUICKDESK_API_KEY": "qd_live_...",
  "QUICKDESK_MCP_ALLOW_SEND": "1"
}

Tools

Ticketssearch_tickets, get_ticket, get_ticket_timeline, update_ticket, claim_ticket, add_internal_note, link_tickets, get_ticket_links, merge_tickets, get_ticket_ai_context, and reply_to_ticket (gated).

Workspacewhoami, search_customers, update_customer, list_team, list_saved_replies, list_conversations, get_ticket_sla.

Taskslist_tasks, get_task, create_task, update_task, delete_task, list_task_lists, link_task_to_ticket.

All names are prefixed quickdesk_. List results come back compact and paginated — follow nextCursor until it is null.

Settings

| Variable | Default | What it does | |---|---|---| | QUICKDESK_API_KEY | — | Required. Your key from Settings → Developers. | | QUICKDESK_API_BASE | https://api.quickdesk.co.uk | Point at a self-hosted or local API. | | QUICKDESK_MCP_ALLOW_SEND | unset | Set to 1 to allow replying to customers. |

When something is refused

Errors say what to do rather than restating a status code:

  • Invalid key → the key is wrong or revoked; make a new one.
  • Not allowed → the key's role lacks that capability. Call quickdesk_whoami to see what it holds, then widen the role or make a key on a different one.
  • Billing limit → a plan or add-on issue, not permissions. Widening the role will not help. Note the API answers a plan gate with the same 403 it uses for a role gate, so the two are told apart by the error code, not the status.
  • Rate limited → keys allow 120 requests a minute.
  • No answer → requests give up after 30 seconds rather than hanging the agent, and say so. A broad search is the usual cause; narrow it and retry.

Licence

MIT