Skip to main content
Glama
tkhq

secure-browser-mcp

Official
by tkhq

secure-browser-mcp

一个将机密填入浏览器、但不会将其展示给代理的 MCP 服务器。

代理看到的是机密引用,而不是机密值。机密存放在 Turnkey Secrets 中。服务器导出机密,在自身内存中解密,然后通过 CDP 将其键入页面。该值永远不会进入对话、会话记录或模型上下文。

它覆盖无法通过 API 代理的机密:输入到 Web 表单中的密码、卡号和社会安全号。

状态:脚手架。 接口、工具集和安全边界已就位。大多数处理器返回 not_implemented。完整设计见 docs/DESIGN.md,关于它能防御什么、不能防御什么,见 docs/THREAT-MODEL.md。

工作原理

  1. 代理调用 list_secret_refs,获取 id、名称和目标绑定。不会得到任何值。

  2. 代理使用 navigate、snapshot、click 和 type_text 驱动浏览器。

  3. 代理调用 fill_secret(secret_id, element_uid)。

  4. 服务器根据机密的目标绑定检查页面。该绑定在导入时通过 Turnkey 静态属性设置,无法更改。

  5. 服务器从 Turnkey 导出机密(临时 P-256 密钥,HPKE),通过 CDP 将其键入字段,然后丢弃该值。

  6. 每个工具结果在到达代理之前都会经过脱敏层。快照、网络日志和截图绝不会回显已填入的值。

没有 evaluate_script 工具。这是安全决策,而不是缺陷。

Related MCP server: PhantomAuth

快速开始

bun install
bun run typecheck
bun run dev          # starts the MCP server on stdio (mock secrets backend)

检查工具集:

bunx @modelcontextprotocol/inspector bun src/index.ts

在配置 Turnkey 凭证之前,服务器使用内存中的模拟后端。真实后端是 @turnkey/sdk-server 之上的一个薄适配器(importSecret / exportSecret / getSecrets,已在 tkhq/sdk#1479 中合并)。

对未发布 SDK 代码的依赖

Secrets API 方法已在 tkhq/sdk 的 main 分支上,但尚未发布到 npm。vendor/ 目录存放从本地 ../sdk 检出打包的 tarball,并通过 package.json 中的 overrides 固定版本。一旦 @turnkey/sdk-server@8.3.0 发布,就移除 vendor tarball 和 overrides。

重新生成 tarball:

cd ../sdk && pnpm install && pnpm turbo build --filter=@turnkey/sdk-server --filter=@turnkey/crypto
cd packages/<pkg> && pnpm pack --out ../../../secure-browser-mcp/vendor/turnkey-<pkg>.tgz

目录结构

路径

内容

src/broker/

机密引用、SecretsClient 接口、Turnkey 和模拟后端、目标绑定策略

src/browser/

浏览器所有权和 CDP 机密注入

src/redaction/

每个工具结果都要经过的脱敏层

src/tools/

每个 MCP 工具一个文件

docs/

设计和威胁模型

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to securely fill web forms with credentials from SecureVault, keeping raw secrets hidden from the agent.
    8 npm
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Gives agents an autonomous browser that takes a single goal-level call and drives a real Chrome step by step, returning a verified result or a concrete question instead of guessing. It keeps passwords out of prompts, requires approval before buy/pay/delete actions, and detects login walls and bot challenges.
    9
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to look up stored logins by URL, name, or alias and use them without seeing the secrets, injecting authentication into HTTP requests, running commands with credentials in the environment and scrubbed output, and fetching 2FA codes, subject to per-credential policies and user approval.
    23
    MIT