关于 OTPilot
供 AI Agent 使用的 MCP 服务,可通过 OTPilot 已批准的账号登录网站和运行命令,而不向 Agent 返回密码或 2FA 代码。用户可在 OTPilot 浏览器扩展中按 Agent 批准账号并设置访问限制。
主要功能
- 01使用已批准账号登录网站
- 02在命令环境中注入密钥
- 03清除命令输出中的密钥
- 04按 Agent 批准账号并限制访问
- 05申请访问其他账号
适用场景
- 01登录网站而不暴露凭据
- 02运行需要机密环境值的命令
- 03允许 Agent 使用指定账号
MCP 相关
stdio MCP 服务提供列出及申请账号、通过 browser_login 登录、运行命令和查询访问申请状态的工具。密钥不会返回给 Agent;OTPilot 会从命令输出中清除密钥。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
面向 AI Agent 的 OTPilot(@otpilot/mcp)
让 Claude Code、Codex、Cursor 或任何 MCP Agent 登录网站并使用你的密码和 2FA 验证码运行命令——Agent 全程都看不到这些信息。你可以在 OTPilot 浏览器扩展中选择允许每个 Agent 使用哪些账户。
npx -y @otpilot/mcp@latest connect
- 它会显示一个验证码,并打开 OTPilot 登录页面(免费账户即可)。
- 在扩展中,Agents 会显示该 Agent:如果验证码匹配,就批准它。
- 为它开放一些账户(Agents → + Add account),也可以让它在工作时申请账户。
Claude Code 插件(MCP 服务加上一项教 Claude 如何使用它的技能):
/plugin install otpilot --marketplace OTPilot/OTPilot
(Claude Code 2.1.275 之前的版本:/plugin marketplace add OTPilot/OTPilot,然后运行 /plugin install otpilot@otpilot。)
然后连接一次:npx -y @otpilot/mcp@latest connect --name "Claude Code"。
或者自行将服务添加到你的 Agent 中(connect 会为你显示以下配置):
| Agent | |
|---|---|
| Claude Code | claude mcp add otpilot -- npx -y @otpilot/mcp@latest |
| Codex | ~/.codex/config.toml:[mcp_servers.otpilot] command = "npx" args = ["-y", "@otpilot/mcp@latest"] |
| Cursor | ~/.cursor/mcp.json:{ "mcpServers": { "otpilot": { "command": "npx", "args": ["-y", "@otpilot/mcp@latest"] } } } |
对于 Codex 和其他会读取 AGENTS.md 的 Agent,添加一行提示,让它们知道何时使用该工具:"涉及密码、2FA 验证码、API 密钥或任何登录时,请使用 otpilot MCP 工具(list_accounts、browser_login、run);不要让我粘贴机密信息。"
每个 Agent 都有独立身份,并且需要单独批准:分别连接 Claude Code 和 Codex(connect --name Codex),并按 connect 的提示添加 --profile <name>。
在服务器或 VPS 上运行
在 Agent 运行的设备上运行——可以是笔记本电脑、VPS 或容器。在没有浏览器的服务器上,跳过自动打开步骤,并在任何已登录 OTPilot 的设备上打开打印出的链接;如果验证码匹配,请在扩展中批准:
npx -y @otpilot/mcp@latest connect --name VPS --no-open
npx -y @otpilot/mcp@latest --profile vps # what the agent runs
npx playwright install --with-deps chromium # only for browser_login without Chrome
如果没有密钥链(例如纯净的 Linux 机器),凭据会保存到 ~/.config/otpilot/mcp-<profile>.json(0600):你允许使用的账户会在该机器上打开,因此只连接你信任的机器——能够取得该机器 root 权限的人也能使用这些账户。
工具
| 工具 | Agent 可获取的内容 |
|---|---|
list_accounts | 可使用的账户名称和站点 |
request_access(query, reason) | 向你申请另一个账户;你可以在扩展中选择 |
browser_login(account, url?) | OTPilot 执行登录(用户名、密码、2FA——仅在账户所属站点上),并返回包含会话的 Playwright storageState 文件 |
run(command, env) | 在命令的环境变量中提供机密信息并运行命令({ "PGPASSWORD": "Staging DB/password" };…/totp 可获取新的 2FA 验证码);输出中会移除所有机密信息 |
check_request(request_id) | 查看你是否已回复仍在等待处理的请求 |
任何工具都不会返回密码、2FA 验证码或其他任何值。
安全性
- Agent 自己的密钥。
connect会创建一个 ECDH P-256 密钥对;私钥保存在你的操作系统密钥链中。你允许的每个账户都是一份副本,仅包含你选择的内容(仅 2FA 验证码、登录信息或指定字段),并在扩展程序中使用该密钥加密。OTPilot 的服务器只能看到密文。 - 两次批准。 连接 Agent 不会赋予它任何权限;每个账户都需要单独为该 Agent 授权。验证码会在两端分别根据 Agent 的公钥生成,因此替换密钥会导致验证码不同。
- 由你设置限制: 限时授权或授权持续到撤销为止;“每次都询问我”;以及“仅允许使用以下命令”:
run随后只接受指定程序,该程序按名称调用,并从服务器的 PATH 中解析(绝不从工作目录或临时目录解析),作为一条不可串联或重定向的命令执行——这是为了防止错误和简单的伎俩,并不能防范会在你的 PATH 中植入自己二进制文件的 Agent。 - 仅使用 HTTPS(本地主机可使用普通 HTTP),并且返回内容中的所有密钥都会被清除——在截断输出之前清除,避免留下只清除了一半的内容。超时会终止命令及其启动的所有进程。
- 仅限正确的网站。
browser_login只会在账户已保存的网站范围内的页面上填写信息。 - 可在扩展程序的 Agents 视图中查看活动并撤销授权。
- 坦诚说明限制: 能运行命令的 Agent 可以自行决定命令的作用,也可能故意尝试泄露密钥。OTPilot 会从返回内容中清除密钥;对于敏感账户,请仅允许访问 2FA 验证码、限制可执行的命令,或启用“每次都询问我”。
命令
otpilot-mcp connect [--name "Claude Code"] [--profile p] [--no-open]
otpilot-mcp status [--profile p] # name, verification code, allowed accounts
otpilot-mcp disconnect [--profile p] # forget the credentials here (revoke it in the extension too)
otpilot-mcp [serve] [--profile p] # the MCP server (stdio) — what your agent runs
browser_login 使用你已安装的 Google Chrome(或 Edge);若未安装,请运行 npx playwright install chromium。会话保存在工作目录下的 .otpilot/ 中:请勿将其提交到 git。
许可证:GPL-3.0。源代码:github.com/OTPilot/OTPilot。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。