为 LM Studio 模型提供两种访问网络的方式。
WebBrain Web Tools 为任何支持工具的 LM Studio 聊天添加公开 URL 读取功能。附加 WebBrain 扩展后,同一插件还可以将目标委派到你已登录的 Chromium 配置文件。
从 LM Studio Hub 安装 webbrain/web-tools。不要为此路径注册 @webbrain/mcp-server 或使用 MCP 端口 17374;LM Studio 插件的浏览器委派使用端口 17375。
模型能访问什么
| 路线 | 适用场景 | 无法做到的事 |
|---|---|---|
fetch_url / research_url | 公开文章、文档、API、JSON、文本和静态 HTML。 | 无浏览器 Cookie、JavaScript 渲染、点击、输入或已认证会话。 |
browser_task | 已登录的仪表盘、网页邮件、客户端渲染的应用和需要可见浏览器交互的任务。 | 需要 Chromium 上的 WebBrain 和插件桥接连接。 |
安装前的准备
| 要求 | 检查内容 |
|---|---|
| LM Studio | 打开当前桌面应用。其内置运行时可以运行已安装的插件;普通使用不需要单独安装 Node.js。 |
| 支持工具的模型 | 使用能够调用工具的模型和聊天配置。不支持工具使用的纯文本模型不会调用插件。 |
| 网络访问 | 两个 HTTP 工具会从本地插件进程联系你请求的 URL。 |
| 可选的浏览器连接 | 对于 browser_task,请在 Chrome、Edge、Brave、Opera 或 Vivaldi 中安装 WebBrain,并保持端口 17375 空闲。 |
| 活跃的 WebBrain 提供商 | 浏览器任务仍然通过 WebBrain 扩展内配置的提供商运行。 |
安装并启用 WebBrain Web Tools
- 保持 LM Studio 打开。打开 webbrain/web-tools Hub 列表 并选择 Run in LM Studio。你也可以在同一台机器上打开下面的深层链接。
- 在聊天中启用插件。打开聊天输入旁的集成或工具控件,打开 webbrain/web-tools。
- 选择支持工具的模型。插件会向该聊天提供其工具;模型会根据你的请求决定何时调用它们。
- 先尝试公开网络路线。询问:"读取 https://news.ycombinator.com 并总结当前头条的主要主题。"模型应该使用
research_url。
lmstudio://plugin?owner=webbrain&name=web-toolsCLI 安装
lms clone 会将 Hub 项目复制到当前目录;它不会自动安装该副本。进入克隆的目录并运行安装形式的 lms dev:
lms clone webbrain/web-tools
cd web-tools
lms dev --install参阅 LM Studio 的 lms clone 参考 和 lms dev --install 参考 了解 CLI 行为。
插件赋予模型的能力
| 工具 | 用途 | 需要浏览器扩展? |
|---|---|---|
fetch_url | 获取已知的 HTTP(S) URL。处理 JSON、HTML、纯文本、请求头和请求体,并对二进制响应进行摘要而非内联。 | 否 |
research_url | 提取可读的文章或文档文本,同时去除常见的导航元素。 | 否 |
browser_task | 将自然语言的 Ask 或 Act 目标委派到已登录浏览器中的 WebBrain。 | 是 |
browser_status | 检查扩展连接,或通过 runId 轮询现有运行。 | 是 |
browser_respond | 将用户的回答转发到暂停在 needs_user_input 状态的运行。 | 是 |
browser_abort | 停止正在进行的运行。已完成的操作不会被撤销。 | 是 |
当结果超出返回预算时,HTTP 工具会保留开头、选定的高信号中间段落和结尾。压缩结果会报告 compacted: true 并包含压缩元数据。当省略的内容重要时,请请求更窄的页面或增加 maxChars。
无需浏览器即可使用公开 HTTP 工具
读取已知文章
使用 research_url 读取 https://example.com/article,给出作者的主要论点、支持证据和已说明的局限性。
检查 API 响应
使用 fetch_url 读取 https://api.example.com/status。返回 HTTP 状态和指示服务健康状况的字段。
research_url 通常更适合处理文章内容。当响应类型、JSON 结构、请求头、方法或请求体很重要时,使用 fetch_url。
这些请求是匿名的,不会执行页面 JavaScript。如果结果报告 spaSuspected: true,或页面需要登录,请停止重试 HTTP 路线,在连接扩展后使用 browser_task。
连接你正在使用的浏览器
- 在 Chromium 浏览器中安装 WebBrain。桥接适用于 Chrome、Edge、Brave、Opera 和 Vivaldi。Firefox 无法承载此连接。
- 在 LM Studio 中启用 webbrain/web-tools。插件在初始化时会打开其本地回环监听器。
- 打开 WebBrain 设置。进入通用 → 高级 → 云桥接。
- 设置插件 URL。输入
ws://127.0.0.1:17375/extension,然后启用云桥接。 - 验证完整路径。要求 LM Studio 模型调用
browser_status。连接成功的结果证明插件监听器和扩展握手均已就绪。
扩展只有一个出站桥接套接字。端口 17375 将其连接到此插件,端口 17374 连接到 MCP 服务器,端口 17373 连接到 WebBrain Cloud。更改 URL 会切换目标,而不会合并它们。
LM Studio 聊天模型决定调用 browser_task 并接收结果。WebBrain 扩展使用 WebBrain 内配置的活跃提供商执行委派的浏览器运行。如果页面内容必须保留在本地设备上,请将该 WebBrain 提供商也配置为使用本地模型。
不改变页面的读取
使用 Ask 模式下的 browser_task 读取我浏览器中已打开的账户仪表盘,列出最近五条警报。不要更改任何内容。
通过权限闸门进行交互
使用 Act 模式下的 browser_task 打开我浏览器中已显示的草稿,将公司名称更新为 Acme Europe。在任何最终提交或确认之前停止。
让正在进行的浏览器运行继续
browser_task 会等待结果,但其超时不会取消扩展中已在运行的工作。保留返回的 runId,并使用与状态匹配的恢复工具。
running使用 browser_status 轮询needs_user_input提问,然后使用 browser_respondcompleted结果已就绪failed查看错误和证据aborted已停止;之前的操作仍然有效- 超时后不要启动重复的
browser_task;轮询现有运行。 - 永远不要为 WebBrain 的澄清问题编造答案。询问用户并逐字转发他们的回答。
browser_abort停止后续步骤。它无法撤销已提交的表单、已发送的消息或其他已完成的操作。
保持两个信任面清晰
- 公开 HTTP 在本地插件进程中运行。
fetch_url可以发送方法、请求头和请求体,因此仅在你有意时才请求修改操作。 - 默认阻止私有网络目标。本地回环、RFC1918、链路本地、云元数据和常见内网主机名均被拒绝。仅在你理解的明确本地网络任务中使用
allowPrivate: true。 - 重定向会被重新检查。插件会验证每个目标,并在重定向跨域时去除类似凭据的请求头。
- 浏览器监听器保持在本地回环。永远不要转发或代理端口
17375。扩展握手可以识别客户端但不是共享密钥认证;将本地软件视为可信软件。 - Ask 模式是默认选项。仅在请求的结果需要可见浏览器交互时使用 Act,并保持浏览器在你可以停止意外行为的范围内。
- LM Studio 模型可以看到工具结果。浏览器运行还会通过 WebBrain 内配置的活跃提供商发送任务上下文。请慎重选择两个模型的边界。
有关实现级别的细节和残余 DNS 重绑定限制,请阅读插件的 安全说明。
按症状排查
| 症状 | 通常含义 | 解决方法 |
|---|---|---|
| 工具没有出现 | 此聊天未启用插件,或所选模型无法调用工具。 | 在聊天输入旁启用 webbrain/web-tools,并选择支持工具的模型。 |
browser_status 报告已断开连接 | 插件可用,但 WebBrain 扩展尚未连接。 | 使用 Chromium,启用云桥接,并精确输入 ws://127.0.0.1:17375/extension。 |
| 监听器无法启动或报告地址冲突 | 另一个插件实例或进程已占用端口 17375。 | 关闭重复实例,然后重新加载插件。先使用 lsof -nP -iTCP:17375 -sTCP:LISTEN 检查。 |
| 公开页面为空 | 页面使用 JavaScript 渲染或将内容隐藏在登录后。 | 如果 spaSuspected 为 true,连接扩展并使用 browser_task。 |
| 任务超时但浏览器仍在操作 | 等待预算已用尽,但 WebBrain 运行未被取消。 | 使用返回的 runId 调用 browser_status,或在需要停止时使用 browser_abort。 |
| Firefox 始终无法连接 | Firefox 没有离屏文档桥接运行时。 | 使用 Chromium 浏览器进行浏览器工具操作。两个公开 HTTP 工具无需扩展即可使用。 |
| MCP 或 WebBrain Cloud 已断开连接 | LM Studio URL 替换了扩展的单个桥接目标。 | 完成后将设置切换回端口 17374(MCP)或 17373(WebBrain Cloud)。 |
桥接环境配置
| 变量 | 默认值 | 含义 |
|---|---|---|
WEBBRAIN_BRIDGE_PORT | 17375 | 扩展连接的本地回环端口。 |
WEBBRAIN_BRIDGE_PATH | /extension | WebSocket 路径;必须与 WebBrain 设置中的 URL 匹配。 |
WEBBRAIN_COMMAND_TIMEOUT_MS | 30000 | 一个桥接命令和回复的超时预算。 |
如果你为本地开发的插件更改了端口或路径,请更新 WebBrain 设置中的云桥接 URL 以匹配。大多数用户应保持默认值。
