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

@wippyapp/mcp

v0.1.0

Published

MCP server for Wippy — query your CPA practice data (clients, returns, deadlines, dashboard) via Claude

Readme

@wippyapp/mcp

MCP server for Wippy — query your CPA practice data via Claude (Desktop, Code, or any MCP client).

What it does

Exposes 5 read-only tools backed by the Wippy API. Once installed, Claude can answer questions like "who are my Smith clients?", "what's due this week?", or "how many active returns do I have?" directly against your firm's data.

| MCP tool | What it returns | |---|---| | lookup_client | Up to 5 active clients matching a name, with their recent returns | | get_return_status | Up to 10 returns for a client (optionally filtered by tax year) | | get_upcoming_deadlines | Filing deadlines in the next N days (1-180, default 30) | | search_practice | Full-text search across clients, entities, and returns | | get_dashboard_stats | Firm-wide snapshot: active clients, active returns, returns by status, total billed |

All tools are firm-scoped, audit-logged, and read-only. The Wippy backend applies a per-token rate limit of 1000 calls per 24 hours.

Setup

1. Generate a Wippy API token

Visit https://wippy.app/account/api-tokens and click Create token. Copy the token immediately — it's shown once, then only its hash is stored. The token looks like wpy_pat_42_<long-secret>.

2. Add to Claude Desktop

Edit your Claude Desktop config:

  • macOS~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows%APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "wippy": {
      "command": "npx",
      "args": ["-y", "@wippyapp/mcp"],
      "env": {
        "WIPPY_API_TOKEN": "wpy_pat_..."
      }
    }
  }
}

Restart Claude Desktop. The 5 Wippy tools appear in the tool list (look for the hammer icon in the chat).

3. Add to Claude Code

claude mcp add wippy -- npx -y @wippyapp/mcp

Then set the token:

export WIPPY_API_TOKEN="wpy_pat_..."

Example queries

  • "Who are my Smith clients?"lookup_client { name: "Smith" }
  • "What's the status of John Smith's 2025 1040?"get_return_status { clientName: "Smith", taxYear: 2025 }
  • "What deadlines are coming up in the next 14 days?"get_upcoming_deadlines { days: 14 }
  • "Search my practice for anything matching Acme"search_practice { query: "Acme" }
  • "How many active returns and clients do I have right now?"get_dashboard_stats {}

Claude chooses which tool to call based on the question; you don't need to invoke them manually.

Environment variables

| Variable | Required | Default | Purpose | |---|---|---|---| | WIPPY_API_TOKEN | yes | — | Personal access token from /account/api-tokens | | WIPPY_API_URL | no | https://wippy.app | Override the API base URL (staging / local dev) |

Troubleshooting

"Wippy API token was rejected"

The token is invalid, revoked, or has a typo. Visit https://wippy.app/account/api-tokens to generate a new one and update your config. (Old tokens can't be re-shown; you have to create a new one.)

"Token lacks required scope: mcp:read"

The token was minted without the mcp:read scope. Create a new token — the default checkbox should already be selected; if you unchecked it, recreate with the box checked.

"Cannot reach Wippy API"

Network connectivity or DNS issue. If you're pointing at staging or local dev, double-check WIPPY_API_URL:

"env": {
  "WIPPY_API_TOKEN": "wpy_pat_...",
  "WIPPY_API_URL": "https://staging.wippy.app"
}

"Wippy rate limit exceeded"

You're at 1000 calls per token per 24 hours. The error message includes the retry-after time. Budgets are per-token — mint a second token under a different name if you need more headroom for separate use cases.

Tools don't appear in Claude Desktop after install

  1. Confirm the config JSON parses (no trailing commas, proper quoting).
  2. Quit Claude Desktop fully (Cmd-Q / right-click → Quit, not just close the window) and reopen.
  3. Check Claude Desktop's MCP log (Settings → Developer → Open MCP Logs) for spawn errors.

Backend compatibility

0.1.x requires the Wippy backend deployed 2026-05-24 or later (when /api/mcp/* shipped — see WIP-651).

If a new tool ships server-side, this package bumps its minor version. If a tool's argument shape changes incompatibly, the package bumps its major version. Patch releases are server-compatible.

Development

npm install
npm run build        # tsc → dist/
npm test             # vitest run
npm run typecheck    # tsc --noEmit

The package depends on @modelcontextprotocol/sdk v1 (stable). When the SDK reaches v2 stable, the migration plan lives in docs/migration.md of that repo — server.tool()server.registerTool(), and the schema shape changes from raw-shape to z.object(...).

Releasing

This package is published manually by Sam:

npm version patch    # or minor / major
npm run build && npm test
npm publish --access public
git push --tags

The prepublishOnly script enforces a build + test gate before publication.

License

MIT — see LICENSE.