mcpField
P
proxlane

proxlane

本地服务
proxlane.dev浏览器自动化41 天前更新

关于 proxlane

proxlane 是一个 MCP 服务,让 AI Agent 通过 Proxlane 网关抓取网页。它返回可读页面内容或分类错误,不会把拦截页当作成功结果。

主要功能

  1. 01通过 Proxlane 网关抓取网页
  2. 02可选 JavaScript 渲染和选择器等待
  3. 03文本或 HTML 输出并提示截断
  4. 04分类错误及重试指引

适用场景

  1. 01获取网站的可读内容
  2. 02等待 JavaScript 渲染后的页面内容
  3. 03判断请求被拦截及是否适合重试

MCP 相关

该 MCP 服务向 MCP 客户端提供 `fetch_page` 工具,并使用网关 URL 和网关 API 密钥连接正在运行的 Proxlane 网关。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"proxlane-proxlane": {
"command": "npx",
"args": [
"-y",
"@proxlane/sdk"
],
"env": {
"PROXLANE_API_KEY": "<PROXLANE_API_KEY>",
"PROXLANE_URL": "<PROXLANE_URL>"
}
}
}
}
启动命令npx -y @proxlane/sdk
需要配置的环境变量
PROXLANE_API_KEY密钥The gateway's own PROXLANE_API_KEY, not a provider's
PROXLANE_URLWhere the gateway listens

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@proxlane/sdk0.1.1

工具

1

收录的工具列表 · 更新于 2 天前

参数类型必填说明
urlstring是要抓取的页面,使用 http 或 https。
formatenum否"text"(默认)表示可读文本,"html" 表示原始页面。text | html
renderboolean否在生成快照前运行 JavaScript。成本会高出数倍;仅在页面需要时使用。
countrystring否用于抓取的两字母国家/地区代码,例如 "us" 或 "de"。
wait_forstring否快照前等待出现的 CSS 选择器。启用后会自动渲染。若元素始终未出现,页面将视为抓取失败。
max_charsinteger否将结果截断为指定字符数。

详细介绍

@proxlane/sdk

一个 MCP 服务,为 AI Agent 提供一个如实报告失败的网页抓取工具。

普通的抓取会向 Agent 返回状态码为 200、正文却是验证码的页面,而 Agent 会对验证码进行总结。此工具通过你自己的 Proxlane 网关抓取内容,在多个抓取 API 之间切换,并检查每个响应是否为拦截页面。Agent 会收到可读文本形式的页面,或者一条说明发生了什么以及是否值得重试的失败信息。拦截页面绝不会作为内容返回。

设置

你需要一个正在运行且至少配置了一个提供商密钥的网关。只需一个容器: proxlane.dev/docs/quickstart。

然后将服务添加到你的 MCP 客户端。Claude Code:

claude mcp add proxlane --env PROXLANE_URL=http://localhost:8787 --env PROXLANE_API_KEY=your-gateway-key -- npx -y @proxlane/[email protected]

Claude Desktop、Cursor 和其他客户端在 JSON 配置中也需要相同的三项内容:

{
  "mcpServers": {
    "proxlane": {
      "command": "npx",
      "args": ["-y", "@proxlane/[email protected]"],
      "env": {
        "PROXLANE_URL": "http://localhost:8787",
        "PROXLANE_API_KEY": "your-gateway-key"
      }
    }
  }
}

PROXLANE_API_KEY 是网关自己的密钥,而不是提供商的密钥。提供商密钥保留在网关上。 如上所示,固定版本:否则 npx -y 会运行最近发布的版本,并在其环境中使用该密钥。

每次调用都会消耗提供商额度,使用 render 或 wait_for 时消耗量会高出数倍。此工具特意没有标记为只读,因此即使客户端会自动批准只读工具,也仍会询问是否批准。

工具

fetch_page

参数
url必填http 或 https
render可选先运行 JavaScript;费用会高出数倍
wait_for可选要等待的 CSS 选择器;会启用 render,如果该元素始终未出现,页面请求就会失败
country可选两位字母代码,例如 us
formattext(默认)或 html
max_chars默认值为 20000超出长度的结果会被截断,并注明已截断

失败时,结果会标记为错误,内容如下:

{ "ok": false, "outcome": "SOFT_BLOCK", "class": "blocked", "retryable": true, "chain": "scraperapi:SOFT_BLOCK>brightdata:SOFT_BLOCK" }

class 是六种固定类别之一,不会增加;retryable 的值由它决定:网站自身给出的响应(target)和错误请求(client)不值得重试;拦截或提供商问题之后可能值得重试。网关已经尝试了所有可用的提供商,因此立即重试并无意义。

在自己的进程中

import { createServer } from '@proxlane/sdk';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';

await createServer({ gatewayUrl: 'http://localhost:8787', apiKey: process.env.PROXLANE_API_KEY! })
	.connect(new StdioServerTransport());

Apache-2.0。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。