Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
walletmcppass: Apple Wallet passes
Resumen
Descripción del creador (original en inglés)
Create signed Apple Wallet passes (.pkpass): boarding passes, tickets, coupons, store cards.
Los tres pilares de PopNx MCP
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
- Opinión de usuariosiAún no hay reseñasLas reseñas se abrirán junto con las cuentas en una etapa posterior
- Nuestras revisiones básicasi0 de 1 superadasRevisado con información pública; el código aún no se ha escaneado
- UsoiAún sin medir★ –
Qué puedes hacer con él
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
- Conexión: Se ejecuta en la nube
- Transporte: Streamable HTTP
- Categoría: Tiendas en línea y pagos
Instalación
Elige la app de IA que usas y copia la configuración.
Antes de instalar
- Revisiones básicas: 0 de 1 superadas
- Se ejecuta en el servidor del creador: lo que le pidas pasa por su servidor.
- El registro no indica ninguna clave que completar.
Necesitas
- Se ejecuta en la nubeNo hay nada que instalar; se conecta por internet
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Funciona en Claude para web, escritorio y móvil:
- Abre Settings → Connectors
- Presiona Add custom connector
- Pega la dirección de abajo y presiona Add
- Si te pide iniciar sesión, inicia sesión en el servicio del creador
https://walletmcppass.com/mcpEjecuta esto en tu terminal
claude mcp add --transport http wallet https://walletmcppass.com/mcpO copia la configuración tú
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"wallet": {
"url": "https://walletmcppass.com/mcp"
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
O copia la configuración tú
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"wallet": {
"type": "http",
"url": "https://walletmcppass.com/mcp"
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
ChatGPT solo se conecta a servidores en internet:
- Abre ChatGPT en la web → Settings → Connectors (Apps)
- Presiona Create o Add (en algunos planes primero hay que activar Developer mode en Advanced)
- Pega la dirección de abajo, ponle un nombre y guarda
- Si te pide iniciar sesión, inicia sesión en el servicio del creador
https://walletmcppass.com/mcpLos nombres de los menús pueden variar un poco según el plan y con el tiempo.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Qué puede hacer
Todavía no hemos leído la lista de herramientas de este servidor; revisamos los endpoints por turnos.
Revisiones básicasi
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
- ! Precaución
El creador coincide con el repo
Quien lo publicó (walletmcppass.com) no es el dueño del repo (arshwaraich); puede que otra persona lo haya listado
- … Aún sin revisar
Sigue en mantenimiento
Todavía no hemos leído este repo en GitHub
- … Aún sin revisar
Tiene licencia
Todavía no hemos leído este repo en GitHub
- … Aún sin revisar
El endpoint responde
Aún sin revisar; revisamos los endpoints por turnos
- … Aún sin revisar
Inicio de sesión con OAuth
Aún sin revisar; revisamos los endpoints por turnos
- … Aún sin revisar
Sin instrucciones ocultas en las descripciones de herramientas
Aún sin revisar; leemos la lista de herramientas cuando revisamos el endpoint
Comparado con otros en Tiendas en línea y pagosi
- Más estrellas que el 0% de los otros 2534 servidores de esta categoría
- Publicado en el registro más recientemente que el 57% de los otros 2534 servidores de esta categoría
- Revisiones básicas iguales o mejores que el 36% de los otros 2534 servidores de esta categoría
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Preguntas frecuentes
¿Es seguro walletmcppass: Apple Wallet passes?
Superó 0 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
¿Qué claves o códigos necesita?
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
¿Se ejecuta en mi computadora o en la nube?
Se ejecuta en la nube del creador. Te conectas por internet sin instalar nada, pero lo que envías pasa por los servidores del creador.
¿Sigue en mantenimiento?
El repo de GitHub cambió por última vez –, y la última versión (1.1.0) llegó al registro hace 22 días.
¿Qué apps pueden usarlo?
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. Se conecta por URL, así que también funcionan las apps que aceptan servidores MCP remotos, como ChatGPT en modo desarrollador.
¿Qué puedo usar en su lugar?
En la misma categoría: Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce
Alternativas
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Stripe MCP
MCP server integrating with Stripe - tools for customers, products, payments, and more.
MCP Cn Commerce
8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending
README del creador
Abrir el README
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
wallet-mcp: free Apple Wallet pass generator for Claude, ChatGPT and any MCP client
Turn a PDF boarding pass, ticket, coupon or loyalty card into a signed Apple Wallet pass (.pkpass) from an AI assistant, with no Apple Developer account. wallet-mcp is the open-source server behind walletmcppass.com: an MCP server with two tools, create_wallet_pass and update_wallet_pass, and the same pass builder as a REST API.
| MCP endpoint | https://walletmcppass.com/mcp (Streamable HTTP) |
| REST API | POST https://walletmcppass.com/api/passes, PATCH .../api/passes/{serial} |
| Sign-in | None. No account or API key, just a contact email on each call |
| Price | Free for 30 calls (creates + updates) a day per IP address, 20 from 2026-11-18; past that $0.01 per call in USDC on Base, paid with x402 |
| Limits | 500 free calls a day in total; paid: 1,000 a day per IP, 10,000 in total; passes up to 10 MB |
| Pass types | Boarding pass, event ticket, coupon, store card, generic (+ iOS 27 poster layout) |
| Works with | Claude, ChatGPT, Codex, the OpenAI Responses API, Claude Code, any Streamable HTTP MCP client |
| Output | A download link, valid for 1 hour, that opens "Add to Apple Wallet" on an iPhone |
| Updates | Optional: updatable=True passes can be changed for 1 hour, or up to 30 days with updatable_hours, and installed copies refresh |
Quick start
Claude (web, desktop and mobile; any plan, Free allows one custom connector): open Customize → Connectors, click + Add → Add custom connector, name it walletmcppass, paste https://walletmcppass.com/mcp, choose No sign in and click Add. In a chat, click + → Connectors and switch it on. Full steps.
ChatGPT: go to chatgpt.com/plugins, select + → Add custom MCP server, name it walletmcppass, enter https://walletmcppass.com/mcp under Connection, set authentication to none and select Create as a plugin. In a chat, type @ and pick walletmcppass. Availability depends on your plan and workspace settings. Full steps.
Codex
codex mcp add walletmcppass --url https://walletmcppass.com/mcp
Claude Code
claude mcp add --transport http walletmcppass https://walletmcppass.com/mcp
OpenAI Responses API
from openai import OpenAI
client = OpenAI() response = client.responses.create( model="gpt-6-astra", tools=[{ "type": "mcp", "server_label": "walletmcppass", "server_description": "Creates signed Apple Wallet passes.", "server_url": "https://walletmcppass.com/mcp", "require_approval": "never", }], input="Make an Apple Wallet coupon for 20% off at Harbor Café, valid until 31 December, with the QR code CAFE20.", ) print(response.output_text)
Any other MCP client: add a remote Streamable HTTP server at https://walletmcppass.com/mcp, with no headers. No MCP client? Use the REST API.
Then ask for a pass:
- "Make an Apple Wallet boarding pass from this PDF." (with the PDF attached)
- "Turn my climbing gym card into a Wallet pass. Member number 004217, Code 128 barcode."
- "Create an event ticket for Blue Note on Friday at 9pm, seat B12, with this QR code text: TICKET-0042."
PDF boarding pass to Apple Wallet
Give your assistant the airline's PDF or a screenshot and it builds a Wallet boarding pass. Boarding passes are built from your real airline-issued barcode: the pass carries the same barcode data as your PDF (usually a PDF417 or Aztec code holding an IATA BCBP string), which is what security and gate scanners read. The service doesn't issue tickets, check you in or contact airlines, and the pass won't receive gate changes. Assistants read a PDF's printed text reliably but can't always decode the barcode image; if yours can't, scan it with a barcode scanner app and paste the text.
Compared with Create a Pass in iOS 27
Wallet in iOS 27 can scan a card or fill in a Standard, Membership or Event template on the iPhone, which covers a single simple card. wallet-mcp adds:
- boarding pass, coupon and store card layouts, Apple's iOS 26 semantic boarding pass and the iOS 27 poster layout;
- passes built by an assistant or app from a PDF, an email or a sentence, instead of a form on the phone;
- control over the barcode format (QR, PDF417, Aztec, Code 128 everywhere; Code 39, Codabar, EAN-13, ITF on iOS 27), colors, logo, images and back-of-pass text;
- a signed
.pkpassfile you can share, or add on an iPhone that isn't running iOS 27.
Privacy, terms and support
walletmcppass.com is an independent project, not affiliated with Apple. Pass contents aren't written to the request log, and pass files are deleted when their link expires after 1 hour; the request log keeps only the time, IP address, pass style and organization name, plus the contact email and x402 status every call must send. Updatable passes are stored for their update window (1 hour by default, at most 30 days) and then deleted. Questions and bug reports: GitHub issues.
Why this exists
Building a .pkpass by hand means writing pass.json, generating icon/logo art, hashing every file into a manifest, signing it with an Apple Pass Type ID certificate, and zipping it up flat — a fiddly, easy-to-get-wrong process (see the "gotchas" below). This wraps that whole pipeline behind a single MCP tool call, so an LLM agent (or you, through one) can just ask for a pass.
How it works
One process, one port, four things on it:
- The MCP endpoint (Streamable HTTP) at
/mcp— thecreate_wallet_passtool. - The REST API at
POST /api/passes— the same pass builder for non-MCP callers. It shares the rate limits and request log with the tool; each logged request records which one it came through (source=mcporapi). - A usage dashboard at
/and/api/stats— request counts, success/error rate, recent activity, all read from a local SQLite log. The hosted instance doesn't expose these publicly. - Short-lived download links at
/download/{token}— built passes are served with the correctapplication/vnd.apple.pkpasscontent type (required for Wallet to recognize the file) and expire after 1 hour, swept by file mtime so a crash/restart can't leak files.
server.py MCPServer instance: the tool + custom HTTP routes (REST API, dashboard, stats, downloads)
pass_builder.py Builds pass.json per style, signs the manifest with openssl smime, zips the .pkpass image_gen.py Pillow-based icon/logo generation (colored square + initials / wordmark) db.py SQLite request log + per-IP and global daily rate limits dashboard.html Static dashboard page, polls /api/stats every 15s wallet-mcp.service Example systemd unit (Restart=on-failure, boots enabled)
The tool: create_wallet_pass
Annotated with title: "Create Apple Wallet pass", readOnlyHint: false and destructiveHint: false: it only ever creates a new pass file.
style: "boardingPass" | "eventTicket" | "coupon" | "generic" | "storeCard"
organization_name, description # required logo_text, transit_type # transit_type only applies to boardingPass ("Air" default) barcode_message, barcode_format # format name or ordered list, e.g. ["EAN13", "Code128"]; omit message for no barcode
"QR" (default) | "PDF417" | "Aztec" | "Code128"; iOS 27+: "Code39" | "Codabar" | "EAN13" | "ITF"
Wallet shows the first listed format the device supports; no fallback is added
barcode_alt_text # human-readable text under the barcode background_color, foreground_color, label_color # hex "#1a1a19" or "rgb(26, 26, 25)" relevant_date, expiration_date # ISO 8601 locations # up to 10 of {latitude, longitude, altitude?, relevantText?}: show on the lock screen nearby max_distance # meters; can only shrink Wallet's default radius around each location voided # stamps the pass VOID primary_fields, secondary_fields, auxiliary_fields, header_fields, back_fields
lists of {key?, label?, value}
serial_number # auto-generated UUID if omitted icon_color, icon_text, logo_color # control the auto-generated art icon_png_b64, logo_png_b64 # supply your own PNG instead of auto-generated art generate_logo # False = no logo image (e.g. when logo_text alone is enough)
iOS 27+
poster # Poster Generic layout; style must be generic/storeCard/coupon (kept as fallback) footer_fields # up to 2, poster only background_png_b64 # poster background (1035x1515 px); gradient auto-generated if omitted featured_actions # up to 2 of {type, url}, e.g. {"type": "membershipBenefits", "url": "https://..."}
Semantic tags and layouts
semantics # Apple SemanticTags dict, emitted as given; unknown keys and bad types rejected semantic_layout # boardingPass (airline, iOS 26+) -> semanticBoardingPass; eventTicket -> posterEventTicket
required tags are checked; the classic style stays as the fallback, so keep its fields
info_links # top-level event-guide / airline-page links: bagPolicyURL, changeSeatURL, ...
Extra images (base64 PNG); which one shows depends on style and iOS version, see the tool docstring
primary_logo_png_b64, secondary_logo_png_b64, strip_png_b64, thumbnail_png_b64, artwork_png_b64
Returns { download_url, expires_in_seconds, serial_number, pass_type_identifier }. The download link is valid for one hour. Open it in Safari on the iPhone; Wallet won't add a .pkpass handed over by another app. Google Wallet on Android imports the same file.
The REST API: POST /api/passes
The JSON body takes exactly the tool's parameters above. The request model is generated from the same function signature, so the two can't drift apart. Unknown keys are rejected.
curl https://walletmcppass.com/api/passes \
-H 'Content-Type: application/json' \ -d '{"style": "generic", "organization_name": "Harbor Climbing Gym", "description": "Day pass", "contact_email": "you@yourcompany.com", "x402_ready": false, "primary_fields": [{"label": "Guest", "value": "Ada L."}], "barcode_message": "DAY-0042"}'
| Status | Body |
|---|---|
| 200 | Same as the tool: { download_url, expires_in_seconds, serial_number, pass_type_identifier } |
| 400 | {"error": "invalid request", "details": [...]} for a malformed body or wrong types; {"error": "..."} when the pass itself is invalid |
| 402 | Past a free limit (per-IP or global): an x402 PaymentRequired body (also base64'd in the PAYMENT-REQUIRED header). Retry with a payment, see below |
| 429 | {"error": "rate limit exceeded: ..."} or "service is at its daily request limit ..." — only when payments are off |
| 500 | {"error": "internal error building the pass"} |
As with the tool, bodies that fail schema validation are rejected before the rate limiter and aren't logged; pass-builder errors are logged and do count.
Updating a pass: update_wallet_pass / PATCH /api/passes/{serial}
Create the pass with updatable=True, and optionally updatable_hours (1 to 720, default 1) for how long it can be updated. The response adds updatable_until and an edit_token, a secret that is the only way to change that pass (no
Solo se muestra el principio; lee el resto en el repo