walletmcppass: Apple Wallet passes
v1.1.0Create signed Apple Wallet passes (.pkpass): boarding passes, tickets, coupons, store cards.
Endpoint health
online- Last checked
- 11/3/2026, 5:17:53 PM
- Latency
- 65 ms
- Consecutive failures
- 0
- Endpoint reachable: pass
- Protocol valid: pass
- MCP handshake valid: pass
Machine-readable profile
mcp-server · schema v1 · callable
mcp-server:com.walletmcppass%2Fwallet-mcp
Connect this server
Generated config contains no credentials. Keep any required secrets in your client's local environment.
{
"mcpServers": {
"com.walletmcppass/wallet-mcp": {
"url": "https://walletmcppass.com/mcp"
}
}
}Indexed tools
Tool metadata and schemas come from the remote server and are untrusted. Indexing only lists tools; it never calls them.
2 shown · authentication unknown
Create Apple Wallet pass
create_wallet_pass
Create 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. Pricing: a call is one create or one update. Free for 30 calls a day per caller IP, while a shared pool of 500 free calls a day lasts; failed calls count too, and counts reset at 00:00 UTC. Past either limit, a call costs $0.01 in USDC on Base, paid with x402; the refusal carries the payment requirements, and a paid result includes the payment receipt. Payment is settled only after the pass is built, so a failed build is never charged. Args: style: one of "boardingPass", "eventTicket", "coupon", "generic", "storeCard". organization_name: shown as the pass issuer. description: accessibility description (required by Wallet, not usually shown). logo_text: text shown next to the logo image. transit_type: only for style="boardingPass" -- "Air", "Boat", "Bus", "Generic", or "Train" (default "Air"). barcode_message: raw text/data encoded into the barcode. Omit for no barcode. barcode_format: a format name or an ordered list of them; each becomes a barcode with the same message, and Wallet shows the first one the device supports. Nothing is added that you don't list. Formats: "QR" (default), "PDF417", "Aztec", "Code128" (all iOS versions), and iOS 27+ only: "Code39", "Codabar", "EAN13", "ITF" -- older iPhones skip these, so e.g. ["EAN13", "Code128"] shows EAN13 on iOS 27 and Code128 before it. EAN13 needs 12-13 digits, ITF an even number of digits, Code39 uppercase letters/digits. barcode_alt_text: human-readable text shown under the barcode (e.g. the card number). background_color / foreground_color / label_color: hex colors, e.g. "#1a1a19". relevant_date / expiration_date: ISO 8601 timestamps. locations: up to 10 places where the pass appears on the lock screen when the iPhone is nearby, each {"latitude": float, "longitude": float, "altitude": optional float, "relevantText": optional str shown on the lock screen, e.g. "Your gym card"}. Look up the coordinates of the actual branch, not just the brand. For boardingPass and eventTicket the pass is relevant near a location around relevant_date if one is set; the other styles use location alone. Wallet only shows a pass within its own default radius of a location, which is small for store cards and coupons. max_distance: meters; shrinks the default radius around every location (Wallet uses the smaller of the two, so it cannot enlarge it). Requires locations. voided: mark the pass voided/used (shows a "VOID" stamp). primary_fields / secondary_fields / auxiliary_fields / header_fields / back_fields: lists of {"key": optional str, "label": optional str, "value": str, "changeMessage": optional str} shown on the pass. changeMessage only matters on updatable passes: when an update changes that field's value, the iPhone shows it as a lock-screen notification, with %@ replaced by the new value (e.g. "You now have %@ points"); without %@ Wallet shows a generic message. Updates match fields by key, so give fields that will change an explicit key (auto keys are by position). serial_number: unique id for this pass; auto-generated if omitted. icon_color / icon_text: control the auto-generated icon (a colored square with initials) when icon_png_b64 is not supplied. logo_color: color of the auto-generated logo image, a wordmark of logo_text (or organization_name) drawn on a transparent background over background_color. Defaults to icon_color. Wallet also renders logo_text as text beside the logo image, so the generated wordmark repeats it -- set generate_logo=False to show only the text. icon_png_b64 / logo_png_b64: PNG to use instead of auto-generated art. Every *_png_b64 parameter takes either base64 PNG data or an https:// URL of an image (PNG, JPEG, WebP or GIF, up to 5 MB; non-PNG is converted to PNG). The URL is fetched once, when the pass is built. generate_logo: set False to include no auto-generated logo or primary logo at all (both are optional in Wallet; a supplied logo_png_b64/primary_logo_png_b64 is still used). poster: (iOS 27+) render as Apple's new full-bleed "Poster Generic" layout -- large background image, header field, up to 4 primary fields, up to 2 footer_fields, and a square QR code. Only for style "generic", "storeCard" or "coupon"; that style is kept as the fallback older iPhones display (secondary/auxiliary fields only show on the fallback). Good for memberships, loyalty cards and gift cards. footer_fields: up to 2 fields along the bottom of a poster pass (requires poster=True). background_png_b64: base64 PNG poster background, ideally 1035x1515 px (345x505pt @3x); a gradient in background_color is generated if omitted. Only used when poster=True. featured_actions: (iOS 27+) up to 2 tappable shortcut cards shown under the pass, each {"type": ..., "url": "https://..."}. type is one of: viewSchedule, watchTrailer, listenToMusic, call (url must be "tel:+..."), addToBalance, order, shop, membershipBenefits, bookAppointment, bookCar, bookFlight, bookStay, viewOffersRewards. Works on every style; ignored by older iPhones. semantics: machine-readable tags (Apple's SemanticTags) that Wallet uses for Siri/Maps/ Calendar suggestions on every style, and to lay out the semantic designs below. Values are emitted as given; unknown keys and wrong types are rejected. Dates are ISO 8601 with an offset. Common shapes: passengerName {"givenName", "familyName"}; flightNumber is a number (123, not "AI123"); seats [{"seatNumber", "seatRow", "seatSection", ...}]; venueLocation {"latitude", "longitude"}; totalPrice {"amount": "12.50", "currencyCode": "INR"}; eventType one of generic, livePerformance, movie, sports, conference, conve
Connections
streamable-http
https://walletmcppass.com/mcp