Spree Commerce developer docs for AI agents
Spree Commerce docs for AI coding agents: build headless B2B and marketplace ecommerce on its APIs.
Create signed Apple Wallet passes (.pkpass): boarding passes, tickets, coupons, store cards.
选择你使用的 AI 应用,然后复制设置。
通过 3/5 项检查 · 你的提问会经过开发者的服务器(walletmcppass.com)
第一步:你用哪个 AI?
选择你用的应用,步骤会显示在下方。
可连接 Claude · 约 2 分钟
不需要密钥,不用安装程序 · 在 claude.ai 或桌面应用设置一次,即可在聊天中使用 · 免费账户可添加 1 个 · Team/Enterprise 方案由所有者(Owner)添加
CustomizeConnectors
把这里的内容复制到 Claude 中同名的输入框,然后点击 Continue
walletmcppass: Apple Wallet passeshttps://walletmcppass.com/mcpAuthentication 保持 Claude 检测到的设置,然后点击 Add
+Connectorswalletmcppass: Apple Wallet passes
用 walletmcppass: Apple Wallet passes 告诉我你能帮我做什么,然后做一件给我看✓ 如果 Claude 说正在使用 walletmcppass: Apple Wallet passes,或回答中出现 walletmcppass: Apple Wallet passes 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同
仅企业版 ChatGPT 可连接
适用于网页版 ChatGPT Business、Enterprise 或 Edu,需由工作区管理员或所有者添加 · 使用 Free、Plus 或 Pro:你的 ChatGPT 方案暂时无法自行连接 MCP
Plugins+Add custom MCP server
输入名称,在 Connection 下粘贴地址,勾选风险提示,然后点击 Create as a plugin
walletmcppass: Apple Wallet passeshttps://walletmcppass.com/mcp开启新聊天,输入前先从插件列表中选择 walletmcppass: Apple Wallet passes
用 walletmcppass: Apple Wallet passes 告诉我你能帮我做什么,然后做一件给我看✓ 如果 ChatGPT 说正在使用 walletmcppass: Apple Wallet passes,或回答中出现 walletmcppass: Apple Wallet passes 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 OpenAI 帮助页面核实 · 你的界面可能因版本略有不同
可连接 Claude Code · 约 2 分钟
不需要密钥,不用安装程序
Mac:按 Command+空格,输入 Terminal · Windows:打开 PowerShell
claude mcp add --transport http --scope user wallet https://walletmcppass.com/mcp应能看到 walletmcppass: Apple Wallet passes 在列表中并显示已连接
用 walletmcppass: Apple Wallet passes 告诉我你能帮我做什么,然后做一件给我看✓ 如果 Claude Code 说正在使用 walletmcppass: Apple Wallet passes,或回答中出现 walletmcppass: Apple Wallet passes 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同
可连接 Cursor · 约 2 分钟
不需要密钥,不用安装程序
用 walletmcppass: Apple Wallet passes 告诉我你能帮我做什么,然后做一件给我看✓ 如果 Cursor 说正在使用 walletmcppass: Apple Wallet passes,或回答中出现 walletmcppass: Apple Wallet passes 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 Cursor 帮助页面核实 · 你的界面可能因版本略有不同
可连接 VS Code · 约 2 分钟
不需要密钥,不用安装程序
用 walletmcppass: Apple Wallet passes 告诉我你能帮我做什么,然后做一件给我看✓ 如果 VS Code 说正在使用 walletmcppass: Apple Wallet passes,或回答中出现 walletmcppass: Apple Wallet passes 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 VS Code 帮助页面核实 · 你的界面可能因版本略有不同
其他支持 MCP 的应用(如 Windsurf、Zed、Gemini CLI)添加方式各不相同,请在应用列表中查看
通过网页连接的应用使用的地址
https://walletmcppass.com/mcpJSON 设置在下方“开发者专用”中
Claude Code
claude mcp add --transport http --scope user wallet https://walletmcppass.com/mcpCursor (~/.cursor/mcp.json)
{
"mcpServers": {
"wallet": {
"url": "https://walletmcppass.com/mcp"
}
}
}VS Code (mcp.json)
{
"servers": {
"wallet": {
"type": "http",
"url": "https://walletmcppass.com/mcp"
}
}
}这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
依据这个服务器的连接方式和各应用自己的文档,检查于 2026年11月10日。
通过互联网连接,适用于
ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast
工具名称和描述与服务器在 2026年11月8日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。
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 th
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, with the same meani
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月12日
提问、分享技巧或报告无法使用。按“有帮助”数量排序。
还没有评价
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 5 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。
GitHub 仓库最后更新于昨天,最新版本(1.1.0)于27天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,因此也能用于支持远程 MCP 的应用,例如 ChatGPT Business 及以上方案。
同一分类中有:Spree Commerce developer docs for AI agents, Stripe MCP, Sessy — Amazon SES observability
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Spree Commerce docs for AI coding agents: build headless B2B and marketplace ecommerce on its APIs.
MCP server integrating with Stripe - tools for customers, products, payments, and more.
Read-only Amazon SES observability: search events, inspect bounces, pull delivery stats.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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 |
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:
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.
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:
.pkpass file you can share, or add on an iPhone that isn't running iOS 27.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.
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.
One process, one port, four things on it:
/mcp — the create_wallet_pass tool.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 = mcp or api)./ 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./download/{token} — built passes are served with the correct application/vnd.apple.pkpass content 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)
create_wallet_passAnnotated 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
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
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)
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://..."}
semantics # Apple SemanticTags dict, emitted as given; unknown keys and bad types rejected semantic_layout # boardingPass (airline, iOS 26+) -> semanticBoardingPass; eventTicket -> posterEventTicket
info_links # top-level event-guide / airline-page links: bagPolicyURL, changeSeatURL, ...
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.
POST /api/passesThe 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.
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