Back to Directory/Developer Tools

io.github.ivangr1/walletap

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

Developer ToolsTypeScriptv0.1.3

@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

ToolWhat it doesKey inputs
list_passesList passes for a template with paginationtemplateId, status, limit
search_passesSearch passes by email or phonetemplateId, searchQuery
export_passesExport passes as CSVtemplateId, status
get_passGet a single pass with wallet URLsid or externalId+templateId
create_passCreate one or more wallet passespasses[], sendToEmail, sendToPhone
update_passUpdate pass fields, stamps, or balanceid, templateFields, stampOperation, balanceOperation
notify_passSend notification to one pass holderpassId, title, content
list_templatesList all pass templateslimit, startAfter
create_templateCreate a new templatename, type
update_templateUpdate template config/designtemplateId, data
delete_templateDelete a templatetemplateId
send_template_notificationNotify all pass holders in a templatetemplateId, title, content
create_certificateCreate Apple Wallet certificatetemplateId
list_locationsList all business locations—
create_locationCreate a new locationname, latitude, longitude
update_locationUpdate location detailsid, name, address
delete_locationDelete a locationid
create_readerCreate a VTAP NFC readername, templateId, phone
list_sub_accountsList team members—
create_sub_accountCreate a team memberemail, displayName, password
update_sub_accountUpdate team member permissionsuserId, permissions, templateIds
delete_sub_accountRemove a team memberuserId
translate_pass_textTranslate pass text to multiple languagestexts, 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 john@example.com"
  • "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

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @walletap/mcp-server

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-ivangr1-walletap": {
      "command": "npx",
      "args": [
        "-y",
        "@walletap/mcp-server"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@walletap/mcp-servernpm

Compatible MCP Clients

io.github.ivangr1/walletap works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More