GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者提供的说明(英文原文)
Mobile E2E MCP (51 tools): iOS + Android, native UI + canvas/WebGL, no-vision, RN debug
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"podium": {
"command": "npx",
"args": [
"-y",
"podium-mcp"
]
}
}
}在终端中运行这条命令
claude mcp add podium -- npx -y podium-mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"podium": {
"command": "npx",
"args": [
"-y",
"podium-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"podium": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"podium-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
注册名称已通过 GitHub 账户 hoainho 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.4.0)于5个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:GitHub, Desktop Commander, Cloudflare MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
One baton. Every instrument.
A single MCP stdio endpoint with 51 tools for iOS (simulator + real) and Android device control, native UI automation, end-to-end flows, trustworthy assertions, React Native debugging, WebView DOM + network inspection, and a no-vision canvas/WebGL brain for Pixi/Konva/Fabric/Phaser/Three/Babylon (validated live in WebKit) — plus an experimental engine bridge for instrumented Unity/GL builds (AltTester) — one connection instead of half a dozen servers.
-2ea44f.svg)
One prompt → podium drives Safari live → types the URL → explores the profile → opens a repo. Footage captured on a live iPhone 16 Pro simulator.
A podium is where a maestro stands — one place to conduct the whole orchestra. This MCP server unifies eight capability sets behind a single stdio endpoint:
simctl), real iPhones (devicectl), and Android (adb) behind one platform-tagged device model.idb/mobilecli with a Maestro fallback (no per-gesture JVM spin-up).WKWebView DOM to tap coordinates, evaluate JS, drive navigation, and capture in-page HTTP traffic as JSON/HAR.adb (gestures + uiautomator hierarchy); real iOS via devicectl lifecycle + an opt-in WebDriverAgent backend.window.__podiumEngine WebGL bridge) — code-complete + mock-tested, not yet run against a live Unity build.Rather than wiring several MCP servers into every client config, podium-mcp exposes everything behind one connection, with a shared execFile layer (no shell), consistent structured errors, automatic retry around Maestro's iOS-driver flakiness, and a single health-check tool to confirm what's available on the host.
Driving a React Native app end-to-end usually means juggling several MCP servers — one for device/app control, one for UI flows, one for Metro/debugger logs, another for WebView inspection — each with its own config entry, quirks, and failure modes. podium-mcp collapses that into one server with:
execFile-based command runner (no shell — arguments are passed verbatim),adb) is absent,Podium is built on two choices that make it fast and cheap: it drives UIs as *structured data* — never screenshots — and routes gestures through a *native backend* with no per-action JVM spin-up.
A screenshot-driven agent sends an image to a vision model on every step. Podium returns a compact structured element list instead. On an equivalent 8-step mobile flow (1179×2556 screenshots vs ~20-element lists):
| Approach | Per step | 8-step flow |
|---|---|---|
| Screenshot / vision loop | ~2,070 tokens | 16,557 tokens |
| Podium — no-vision, structured | ~390 tokens | 3,117 tokens |
| Savings | 5.3× | −13,440 tokens (−81%) |
vision loop ████████████████████████████████ 16,557 tokens
Podium ██████ 3,117 tokens (5.3× cheaper, −81%)
The gap compounds with every step — a 30-step session runs roughly 62k vs 12k input tokens. On top of per-step cost, the full 51-tool schema travels with every request (~3,612 tokens, ~71/tool); Podium keeps tool descriptions lean so the tool block never dominates the context window.
For canvas / WebGL UIs the advantage is structural, not just cheaper: the Canvas Brain addresses objects by name and text, where a screenshot-only agent must re-analyze pixels on every frame.
Gestures route through idb / mobilecli instead of spinning up Maestro's JVM per action (measured on a live iPhone 16 Pro simulator):
| Operation | Maestro (per-call JVM) | Podium native | Speedup |
|---|---|---|---|
tap_on | ~14.7 s | ~0.6 s | ~24× |
inspect_screen | ~8.9 s | ~0.9 s | ~10× |
All 51 tools — device & app control, UI automation, declarative Maestro flows, evidenced assertions, WebView DOM + network capture, React Native / Metro debugging, and no-vision canvas/WebGL automation (plus an experimental engine bridge for instrumented Unity/GL) — sit behind a single stdio endpoint, replacing the usual stack of half a dozen separate MCP servers.
Token figures are heuristic estimates (~4 chars/token; Anthropic's ~750 px/token
image formula) — reproduce with
npm run token-bench, or swap in the Anthropic
count_tokensAPI for exact counts. Speed figures were measured on a live
iPhone 16 Pro simulator (
npm run benchmark).
xcrun, simctl)fetch and WebSocket; .npmrc sets engine-strict=true)idb + idb_companion) — preferred native gesture backend when both are present; auto-detectedPATH (or at ~/.maestro/bin) — the run_flow engine and the gesture fallback pathmetro_* debugging toolsadb — adb paths are detection-only and degrade gracefully when absentPlatform scope (v0.3.0): podium automates iOS simulators, real iPhones (
devicectllifecycle + opt-in WebDriverAgent), and Android emulators/devices (adbgestures +uiautomatorhierarchy).device_listtags each target with its platform and the backend is selected per target. When a toolchain (e.g.adb) is absent, those paths degrade to an informative result instead of failing.
No manual config — one-time marketplace setup, then install:
/plugin marketplace add github:hoainho/podium-mcp
/plugin install podium-mcp@podium
The plugin auto-starts the MCP server (all 51 tools) and ships five skills:
| Skill | Invoke | What it does | |||
|---|---|---|---|---|---|
| Device info | /podium-mcp:device-info [ ] | Health check, screen size, orientation, app list | |||
| E2E flow | /podium-mcp:e2e [path or description] | Run or author a Maestro flow | |||
| Bug repro | /podium-mcp:bug-repro | Video + logs + crash evidence capture | |||
| RN debug | `/podium-mcp:rn-debug [UDID] [logs\ | apps\ | crash\ | all]` | Metro logs, connected apps, crash reports |
| Canvas brain | /podium-mcp:canvas | Inspect / resolve / tap canvas-WebGL UIs, no vision |
{
"mcpServers": { "podium": { "command": "npx", "args": ["-y", "podium-mcp"] } } }
git clone git@github.com:hoainho/podium-mcp.git
cd podium-mcp npm install npm run build
Register the built server with any MCP client. Claude Code (.mcp.json):
{
"mcpServers": { "podium": { "type": "stdio", "command": "node", "args": ["/absolute/path/to/podium-mcp/dist/index.js"] } } }
Quick manual smoke test over raw stdio (lists the 51 registered tools):
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"smoke","version":"0"}}}' \ '{"jsonrpc":"2.0","method":"notifications/initialized"}' \ '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | node dist/index.js
Always call `podium_health` first to confirm which toolchain is available on the host.
xcrun / maestro / native backend availability.udid.app_list, app_state, screen_size, orientation_get.app_launch, then tap_on / input_text / swipe / press_key, plus set_location and orientation_set. Batch several with run_steps.inspect_screen to discover elements, run_flow for declarative checks, then assert_visible / validate_flow for an evidenced verdict.webview_inspect → tap coordinates, webview_eval, webview_navigate, webview_network.screenshot / record_start→record_stop; `metro_lo只显示了开头部分;其余内容请在仓库中阅读