关于 proxlane
proxlane 是一个 MCP 服务,让 AI Agent 通过 Proxlane 网关抓取网页。它返回可读页面内容或分类错误,不会把拦截页当作成功结果。
主要功能
- 01通过 Proxlane 网关抓取网页
- 02可选 JavaScript 渲染和选择器等待
- 03文本或 HTML 输出并提示截断
- 04分类错误及重试指引
适用场景
- 01获取网站的可读内容
- 02等待 JavaScript 渲染后的页面内容
- 03判断请求被拦截及是否适合重试
MCP 相关
该 MCP 服务向 MCP 客户端提供 `fetch_page` 工具,并使用网关 URL 和网关 API 密钥连接正在运行的 Proxlane 网关。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 2 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 要抓取的页面,使用 http 或 https。 |
| format | enum | 否 | "text"(默认)表示可读文本,"html" 表示原始页面。text | html |
| render | boolean | 否 | 在生成快照前运行 JavaScript。成本会高出数倍;仅在页面需要时使用。 |
| country | string | 否 | 用于抓取的两字母国家/地区代码,例如 "us" 或 "de"。 |
| wait_for | string | 否 | 快照前等待出现的 CSS 选择器。启用后会自动渲染。若元素始终未出现,页面将视为抓取失败。 |
| max_chars | integer | 否 | 将结果截断为指定字符数。 |
详细介绍
@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 |
format | text(默认)或 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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。