PhantomAPI
Compiles any software into an API by learning from user demonstrations, providing a deterministic, low-latency MCP server with zero token cost at runtime.
README
PhantomAPI
Compile any software into an API.
你公司的 ERP 没有 API。你的 CRM 的 API 要加钱才开放。那个 2009 年的内部系统永远不会有 API。
你不需要 API 文档。你需要一个编译器。
phantom learn https://your-legacy-crm.example
浏览器打开,你演示一遍:搜索客户、打开详情、修改标签、导出报表。PhantomAPI 同步分析四层信息 —— DOM/无障碍树、网络请求、应用状态、操作语义 —— 编译出 Typed Action Graph:
Generated capabilities:
customer.search(query)
customer.get(id)
customer.update_tags(id, tags)
report.export(type, dateRange)
然后:
phantom serve
✓ REST API + OpenAPI 3.1 http://localhost:7777
✓ MCP server phantom mcp
✓ TypeScript SDK phantom sdk -o crm.ts
✓ Recorded regression tests phantom test
✓ Permission manifest phantom serve --allow read
从此 Agent 不再"寻找右上角的按钮、点击坐标 812,147、等待页面变化",而是:
await crm.report.export({ type: 'sales', dateRange: 'last_month' });
学习一次,之后零模型调用。 LLM 只在编译期出现;运行期是确定性执行引擎 —— 零 token 成本、毫秒级延迟、可版本化、可 code review。
与浏览器 Agent 的区别
| 浏览器 Agent | PhantomAPI | |
|---|---|---|
| 每次调用 | 模型看页面、逐步点击 | 直接网络请求(UI 仅兜底) |
| 延迟 | 数十秒 | 毫秒级 |
| 成本 | 每次都烧 token | 仅编译时一次 |
| 稳定性 | 每次都可能翻车 | 回归测试守护,改版即 CI 红灯 |
| 产物 | 无 | API + MCP + SDK + 测试,可进 git |
快速开始
pnpm install && npx playwright install chromium
pnpm demo-crm & # 启动一个"故意没有 API"的演示 CRM(带登录+CSRF)
# 编译:打开浏览器,演示一遍你的操作,关闭窗口即完成
pnpm phantom learn http://localhost:4010 -o my-crm --refine
# 产物即刻可用
DEMO_USER=admin DEMO_PASS=secret123 \
PHANTOM_USERNAME=admin PHANTOM_PASSWORD=secret123 \
pnpm phantom serve my-crm # REST + OpenAPI
curl -X POST localhost:7777/actions/customer.search \
-H 'content-type: application/json' -d '{"query":"alice"}'
pnpm phantom test my-crm # 重放录制的回归测试(改版检测)
pnpm phantom sdk my-crm -l ts -o crm.ts # TypeScript SDK
pnpm phantom sdk my-crm -l py -o crm_sdk.py # Python SDK
pnpm phantom mcp my-crm # 接入 Claude Code / Cursor
--refine 是差分录制:同一流程用不同的值再演示一遍,两遍中变化的值被证明是参数,
相同且无数据流证据的折叠为常量 —— 参数推断靠证据,不靠猜。
会话与凭据:演示中的登录流程(密码框数据流)被自动识别为内部动作 session.refresh,
录制值脱敏、凭据经环境变量注入、TAG 文件零 secret。运行时 401/403 自动重登录并重试;
登录响应中的 CSRF token 被识别为"先取后用"依赖链,自动捕获并注入后续请求。
LLM 是可选的:参数、类型、依赖链全部来自确定性分析(数据流追踪 + 差分 + 时间窗因果对齐)。
--llm 仅用于润色命名(任何 OpenAI 兼容端点,经 PHANTOM_LLM_BASE_URL 配置),不接也完全可用。
核心概念:Typed Action Graph (TAG)
TAG 是"对一个软件的一次操作"的声明式中间表示(spec)。每个 action 同时携带网络层执行(首选,快且稳)与 UI 层执行(兜底,多选择器 + 自修复),运行时自动降级。TAG 是纯结构、零凭据,可提交进 git、发 PR、社区共享。
路线图
- M0 ✅ TAG spec v0.1 · REST/OpenAPI · MCP · TS SDK · 回归测试 · 权限白名单 · demo CRM
- M1 ✅
phantom learn:录制 → 因果关联 → 数据流参数推断 · 差分录制(--refine)· 会话管理(登录识别为session.refresh,凭据脱敏) - M2 ✅ CSRF/token 依赖链 · UI 兜底执行器(多候选选择器)· GraphQL 识别(operation 即动作,variables 即参数)· 分页参数(可选 + 默认值)· Python SDK · 可选 LLM 命名(
--llm) - M3 Phantom Registry:
phantom install jira· 桌面应用(accessibility API)
伦理边界
PhantomAPI 面向你有权访问的软件:内部系统、遗留 ERP、自有 SaaS 后台、授权自动化。我们不做也不接受:验证码破解、反爬对抗、指纹伪装、绕过访问控制。
License
Apache-2.0
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。