Puter MCP
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
Read and manage your Epic MyChart records: labs, meds, imaging, notes, messages, refills.
选择你使用的 AI 应用,然后复制设置。
通过 2/3 项检查 · 在你的电脑上运行
第一步:你用哪个 AI?
选择你用的应用,步骤会显示在下方。
可连接 Claude,但需要先准备
不需要密钥,不用安装程序 · 仅限电脑上的 Claude 应用(Windows 或 Mac),网页和手机不可用
用 OpenRecord — MyChart for Claude 告诉我你能帮我做什么,然后做一件给我看✓ 如果 Claude 说正在使用 OpenRecord — MyChart for Claude,或回答中出现 OpenRecord — MyChart for Claude 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同
ChatGPT 暂时无法连接 OpenRecord — MyChart for Claude
OpenRecord — MyChart for Claude 需要安装在你的电脑上,而 ChatGPT 只能连接在网上运行的服务器
Claude Code 暂时无法连接 OpenRecord — MyChart for Claude
开发者只提供了电脑版 Claude 应用的安装文件
A · 使用能连接 OpenRecord — MyChart for Claude 的应用
Cursor 暂时无法连接 OpenRecord — MyChart for Claude
开发者只提供了电脑版 Claude 应用的安装文件
A · 使用能连接 OpenRecord — MyChart for Claude 的应用
VS Code 暂时无法连接 OpenRecord — MyChart for Claude
开发者只提供了电脑版 Claude 应用的安装文件
A · 使用能连接 OpenRecord — MyChart for Claude 的应用
依据这个服务器的连接方式和各应用自己的文档,检查于 2026年11月10日。
在你的电脑上运行,适用于
ClaudeGooseLM StudioMsty StudioCherry StudioVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月16日
注册名称已通过 GitHub 账户 Fan-Pier-Labs 验证,该账户拥有此仓库
代码最后更新于3天前
GitHub 无法识别许可证类型;请打开文件自行查看
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
提问、分享技巧或报告无法使用。按“有帮助”数量排序。
还没有评价
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 3 项适用的基础检查中通过了 2 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于3天前,最新版本(2.3.0)于3天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 MCPB。
同一分类中有:Puter MCP, XcodeBuildMCP, Anki MCP Server, Sosumi, Zapier
同一分类、其他作者、命令已通过检查。官方的排在前面,再按星标排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
MCP server for Anki flashcards: adaptive review, notes, media, and deck management via AnkiConnect.
Search and read Apple developer documentation, HIG, and WWDC transcripts as Markdown.
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
A Claude Desktop Extension (.mcpb) that gives Claude access to your Epic MyChart patient portal. Read your medications, lab results, imaging, messages, billing, and more — or send a message to your care team, request a refill, and manage emergency contacts — all through a natural conversation.
cd claude-desktop-extension
bun install bun run pack # builds dist/server.cjs and produces openrecord.mcpb
Then double-click openrecord.mcpb (or drag it into Claude Desktop → Settings → Extensions).
After installing, open a new Claude chat and say:
Set up my MyChart.
In Claude Desktop, Claude shows an inline step-based setup widget (get_setup_widget). It opens on a choice between two routes, and connects accounts one at a time: nearly every portal asks for a 2FA code, so each account runs to the end before the next is offered. The full flow is diagrammed in docs/mcpb-setup-flow.md.
Import from your browser (the easier one):
import_browser_passwords (and list_accounts, to mark logins already connected).connect_imported_account, then the same 2FA and passkey steps as below. If the saved password is stale, it becomes the manual sign-in step with the username filled in.Enter manually:
fake-mychart.fanpierlabs.com sandbox (Homer Simpson fake data, no real credentials needed — sign in with homer / donuts123).setup_account. Validation/login errors show inline beneath the button.setup_account reports the portal requires a code; entering it calls complete_2fa.register_passkey; Skip for now finishes without one, and the message handed back to the chat says which happened so Claude doesn't offer again.After every account, either route lands on one list: the accounts connected so far, then Connect for another imported login (while any are left), Enter an account manually, and I'm done, which sends one message to the chat naming the connected accounts and how each passkey offer went.
A call that outruns Claude Desktop's timeout comes back parked (see pending-call.ts) — most likely the scan, waiting on the keychain prompt. The note carries the call's id as structuredContent.pending_call.id, and the widget waits it out with check_pending_call rather than showing the note.
The widget is a small React app in src/setup-widget/: flow.ts is the whole flow as a reducer (every tool result is interpreted there, and unit-tested), host.ts is the MCP Apps JSON-RPC bridge, and the .tsx files only render. scripts/bundle-setup-widget.ts bundles it with esbuild, and a tsup plugin inlines the result into dist/server.cjs as the virtual:setup-widget module, so the resource is still one self-contained HTML page.
Logos. MyChart's only per-instance brand asset is the wide banner logo
(
media.epic.com, ~640×230), so the widget uses it everywhere — a
banner-shaped slot in the dropdown and a banner above the inputs on the
sign-in / 2FA steps. Square favicons aren't used: ~half of instances are
multi-tenant (many orgs share one host, e.g. 200+ on
mychart.ochin.org) and
favicons are per-host, so they can't distinguish those orgs; most are also
just the generic Epic icon.
That host has to be named in the widget resource's
_meta.ui.csp
(
SETUP_UI_RESOURCE_METAinsrc/ui.ts): the MCP Apps host builds the
sandbox CSP from that declaration and every directive defaults to
'none',
so an undeclared origin —
data:included — renders as a broken image.
Without the widget (Claude.ai web, other MCP clients), Claude walks through the same setup sequence using ordinary tool calls:
~/.openrecord-mcpb/ on your machine. Never sent to Anthropic.Or skip typing a password entirely, if your browser already has one saved:
import_id, and the credential stays on your machine. A login saved in more than one browser is one entry, even when the browsers hold different passwords.setup_account.Anything it cannot confirm is left out rather than guessed at — use setup_account for those, or run the import again later if a portal was temporarily unreachable. See read-local-passwords/README.md for what is read and how confirmation works.
delete_passkey or disconnect_account.After setup, every data tool takes a required account parameter — the account id returned by list_accounts, username@hostname. Multiple accounts can be active at the same time — just pass a different account per call. That includes several logins on the *same* hostname (a household sharing one health system): each keeps its own credentials, passkey, and session. An id resolves only on a perfect hostname + username match; there is no hostname-only shorthand, so a call can never land on the wrong login.
The data tools are not listed anywhere in this package. They are generated from the shared capability registry (shared/capabilities/), which is also what the CLI and the mobile app derive their surfaces from — so this extension cannot quietly support less than they do. registerAllTools hand-writes only the five account-management tools above, which manage credentials on this machine and have no counterpart in the other clients.
What's my next appointment at uchealth?
Refill my lisinopril (use my mass general account).
Send a message to Dr. Smith asking about my latest blood pressure reading.
Show me my last imaging study.
connect_google_calendar puts every connected account's upcoming appointments on a Google calendar and keeps them there. The setup widget offers it after I'm done when the accounts have appointments to sync; otherwise ask Claude to "sync my appointments to Google Calendar".
calendar.app.created: OpenRecord creates a "MyChart Appointments" calendar and can see and change only that one. It never reads the user's other calendars.src/google-calendar/worker.ts is compiled with bun build --compile --aot into openrecord-calendar, one binary per Mac architecture, using this extension's own scrapers, credential store and passkeys: tray (the menu-bar item), connect (loopback + PKCE consent in the browser), sync (one pass) and disconnect.tray.ts) drives AppKit through bun:ffi (objc.ts). [NSApp run] owns the main thread, and menu clicks, timers and wake notifications call straight into JS, so the process sleeps in the run loop while idle (0% CPU, about 80 MB). A sync runs as a child process of the same binary, started with NSTask, and writes its outcome to the state file the menu reads. It syncs when 4 hours have passed since the last sync, checking every 15 minutes and 30 seconds after a wake (once Wi-Fi is back), because a timer's clock stops while the Mac sleeps. Its icon is the medical cross (cross.case; macOS has no hospital symbol). The menu lists the connected MyChart accounts and has Sync Now, Open Google Calendar and Turn Off Calendar Sync.machineLogin (resolveSessionWithoutUser), so it never makes MyChart send a 2FA code: nobody is there to type one. An account that has only a password and hits 2FA fails with a hint to save a passkey. See docs/login-modes.md.osascript, since UNUserNotificationCenter refuses a binary that isn't an app bundle), and the menu says why. Sync Now retries everything with the count reset to zero, and so does connecting again..mcpb, which would be ~200 MB bigger. deploy.sh uploads them beside it as https://openrecord.fanpierlabs.com/calendar/openrecord-calendar-darwin- - . Content-addressed names make them immutable, so every released bundle keeps finding its own. What ships is applet/calendar-binaries.json, the SHA-256 per architecture. On first connect the tool downloads the matching binary and installs it at ~/.openrecord-mcpb/bin/openrecord-calendar only if the