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

@walletap/mcp-server

v0.3.1

Published

MCP server for Walletap — issue and manage Apple Wallet & Google Wallet passes from AI assistants

Readme

@walletap/mcp-server

Issue and manage Apple Wallet & Google Wallet passes from any AI assistant.

Quick Start

npx @walletap/mcp-server

Or install globally:

npm install -g @walletap/mcp-server
walletap-mcp

Authentication

Set your Walletap API key as an environment variable:

export WALLETAP_API_KEY=wt_live_xxxxxxxxxxxxxxxxxxxx

You can find your API key in the Walletap dashboard under Settings.

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "walletap": {
      "command": "npx",
      "args": ["-y", "@walletap/mcp-server"],
      "env": {
        "WALLETAP_API_KEY": "wt_live_xxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

Cursor / Windsurf

Add to .cursor/mcp.json or .windsurf/mcp.json:

{
  "mcpServers": {
    "walletap": {
      "command": "npx",
      "args": ["-y", "@walletap/mcp-server"],
      "env": {
        "WALLETAP_API_KEY": "wt_live_xxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

HTTP Remote Mode

For self-hosted deployments, n8n, Make, or Zapier AI:

walletap-mcp --transport http

This starts an HTTP server (default port 3001) exposing:

  • POST /mcp — JSON-RPC endpoint
  • GET /mcp/sse — Server-Sent Events for streaming
  • GET /health — Health check

Docker example:

FROM node:22-alpine
RUN npm install -g @walletap/mcp-server
ENV WALLETAP_API_KEY=wt_live_xxxxxxxxxxxxxxxxxxxx
ENV MCP_PORT=3001
EXPOSE 3001
CMD ["walletap-mcp", "--transport", "http"]

Tools Reference

| Tool | What it does | Key inputs | |------|-------------|------------| | list_passes | List passes for a template with pagination | templateId, status, limit | | search_passes | Search passes by email or phone | templateId, searchQuery | | export_passes | Export passes as CSV | templateId, status | | get_pass | Get a single pass with wallet URLs | id or externalId+templateId | | create_pass | Create one or more wallet passes | passes[], sendToEmail, sendToPhone | | update_pass | Update pass fields, stamps, or balance | id, templateFields, stampOperation, balanceOperation | | notify_pass | Send notification to one pass holder | passId, title, content | | list_templates | List all pass templates | limit, startAfter | | create_template | Create a new template | name, type | | update_template | Update template config/design | templateId, data | | delete_template | Delete a template | templateId | | send_template_notification | Notify all pass holders in a template | templateId, title, content | | create_certificate | Create Apple Wallet certificate | templateId | | list_locations | List all business locations | — | | create_location | Create a new location | name, latitude, longitude | | update_location | Update location details | id, name, address | | delete_location | Delete a location | id | | create_reader | Create a VTAP NFC reader | name, templateId, phone | | list_sub_accounts | List team members | — | | create_sub_account | Create a team member | email, displayName, password | | update_sub_account | Update team member permissions | userId, permissions, templateIds | | delete_sub_account | Remove a team member | userId | | translate_pass_text | Translate pass text to multiple languages | texts, sourceLanguage, targetLanguages |

Example Prompts

Here are things you can say to your AI assistant with Walletap connected:

  • "Create a loyalty card template called 'Coffee Rewards' and issue a pass to [email protected]"
  • "Show me all passes for my loyalty template that haven't been installed yet"
  • "Add 3 stamps to the pass with external ID 'CUST-42' in my stamp card template"
  • "Send a notification to all pass holders: 'Double points this weekend! Visit any location to earn 2x.'"
  • "Export all my loyalty passes as CSV for the marketing team"
  • "Translate our pass labels into Spanish, French, and German"

API Base URL

By default connects to https://api.walletap.io. Override with:

export WALLETAP_API_BASE_URL=https://your-custom-instance.example.com

License

MIT