walletmcppass: Apple Wallet passes
com.walletmcppass/wallet-mcpVersion 1.2.0Create signed Apple Wallet passes (.pkpass), singly or in bulk: boarding passes, tickets, coupons.
Status
Responds346 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:22 UTC
- Latency
- 346 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 21:12 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://walletmcppass.com/mcpResponds346 msNo sign-in
Claude Code
claude mcp add --transport http wallet-mcp https://walletmcppass.com/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: wallet-mcp
Remote MCP server URL: https://walletmcppass.com/mcpCursor
{
"mcpServers": {
"wallet-mcp": {
"url": "https://walletmcppass.com/mcp"
}
}
}VS Code
code --add-mcp '{"name":"wallet-mcp","type":"http","url":"https://walletmcppass.com/mcp"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
4 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
create_wallet_passCreate a signed Apple Wallet pass (.pkpass) and return a link to download it.
Builds one pass in one of the five Wallet styles -- boardingPass, eventTicket, coupon,
storeCard or generic -- from the text fields, colors, barcode and optional PNG images
given below, signs it with this service's Apple Pass Type ID certificate, and returns an
https download_url valid for 1 hour. Opening the link on an iPhone shows "Add to
Apple Wallet". Passes install on any iOS version; the iOS 26/27 layouts fall back to the
classic style on older iPhones.
Barcodes: QR, PDF417, Aztec and Code128 on every iOS version; Code39, Codabar, EAN13 and
ITF on iOS 27+. The barcode encodes exactly barcode_message. Gate and till scanners read
that data, so a copy of an existing boarding pass, ticket or loyalty card only scans if
barcode_message is the original barcode's content (airline boarding passes are usually
PDF417 or Aztec, holding an IATA BCBP string such as "M1DOE/JANE ..."). This tool does not issue
tickets, check anyone in, or contact airlines or venues.
The link must be opened in Safari on the iPhone: Wallet adds a pass from Safari, but not
from a .pkpass file handed over by another app. Google Wallet on Android also imports these
files. Not supported: NFC passes.
With updatable=True the pass can be changed later with update_wallet_pass, and copies
already in Wallet refresh themselves. Its contents are then stored on this server for
updatable_hours (1 hour by default, at most 30 days), then deleted.
Returns {download_url, expires_in_seconds, serial_number, pass_type_identifier}, plus
edit_token and updatable_until when updatable=True. With x402_ready=False and 3 or fewer
free passes left today, also free_passes_left_today and x402_setup (how to set up x402
payments): pass that on to the user.
Pricing: a call is one create or one update. The first 10 successful calls each day per caller (IP | No | No | No | No |
create_wallet_pass_batchCreate one Apple Wallet pass per attendee from a single design, e.g. tickets for a guest list.
Paid, with no free tier: each new pass costs $0.01 in USDC on Base via x402, charged as one
payment for the whole call ($0.01 x the number of new passes). The first call is refused with
the exact amount; retry it unchanged with the signed payment in x402_payment. Nothing is charged
unless every pass builds. A row whose ticket is already in the batch is not charged again and gets
the same link.
Each pass gets a permanent https link (not the 1-hour download link of create_wallet_pass) that
always serves the latest version, and stays installable and updatable until event_end + 7 days.
Send the links to attendees yourself (email, WhatsApp, a form); this service sends nothing.
Args:
rows: up to 1000 attendees per call (5000 per batch), each {"name": str, "ticket": str,
"type": optional str (default "General admission"), "email": optional str}. ticket is
the unique id within the batch (and the default barcode message). Parse a CSV into
these rows yourself.
design: for a new batch, create_wallet_pass's parameters (style, organization_name,
description, colors, fields, images, ...; not serial_number/updatable/contact_email)
whose strings may contain {name} {ticket} {type} {email}, filled in per attendee.
Defaults: style "eventTicket", barcode_message "{ticket}". Leave out with batch_key.
event_end: for a new batch, when the event ends (ISO 8601, within a year). Leave out with batch_key.
batch_key: to add attendees to a batch made earlier, the batch_key it returned.
contact_email, x402_ready, x402_payment: as for create_wallet_pass (all calls are paid here).
Returns {batch_key (new batch only: it can't be recovered, give it to the user), batch_id,
passes: [{name, ticket, type, email, link, new}], created, reused, issued_tota | No | No | No | No |
update_wallet_passChange a pass made with create_wallet_pass(updatable=True); every iPhone that added it refreshes.
Takes the serial_number and edit_token returned when the pass was created, the required
contact_email and x402_ready, plus any of create_wallet_pass's parameters (x402_payment included), with the same meanings. Each parameter given replaces the
stored value completely (a fields list replaces the whole list, so resend unchanged fields
too); parameters left out keep their current values. Clear a text value with "" and a list
with []. To cancel a pass, set voided=True: Wallet marks it void on every iPhone.
Wallet asks the server for the new version as soon as Apple delivers the push, usually within
seconds. A field's changeMessage is shown on the lock screen when that field's value changes.
Only works until the pass's updatable_until time (set by updatable_hours at creation).
Returns {download_url, expires_in_seconds, serial_number, pass_type_identifier,
notified_devices, updatable_until}. notified_devices counts the iPhones the push was sent to, not ones that
have already refreshed. The download_url (valid 1 hour) is only needed to add the pass to a
new device. With x402_ready=False the result also has x402_setup, as for create_wallet_pass.
| Yes | No | Yes | No |
update_wallet_pass_batchChange every pass in a batch made with create_wallet_pass_batch (e.g. a new time or venue);
every iPhone that added one refreshes within seconds.
Paid: $0.01 per pass in the batch, as one x402 payment (refused first with the exact amount;
retry unchanged with x402_payment). Nothing is charged if the change doesn't build.
Each field list given replaces that list in the design (resend unchanged fields too; strings may
use {name} {ticket} {type} {email}). change_message (e.g. "Doors now open at %@") is shown on the
lock screen for fields whose value changed. contact_email and x402_ready are required.
Returns {batch_id, updated, notified_devices, charged, payment}.
| Yes | No | No | No |
Details
- Registry status
- Active
- Published
- Nov 13, 2026
- Updated
- Nov 13, 2026
- Categories (suggested)
- Finance and paymentsSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared