关于 ScrAPI MCP Server
ScrAPI MCP Server 让 MCP 客户端通过 ScrAPI 抓取网页,适用于需要读取页面内容或结构的场景。它可返回 HTML 或 Markdown,并支持抓取前执行浏览器操作。
主要功能
- 01抓取网页并返回 HTML
- 02抓取网页并返回 Markdown
- 03抓取前执行浏览器操作
- 04支持 stdio 与 Streamable HTTP
适用场景
- 01提取网页文章文本供分析
- 02获取页面链接、表格或元数据
- 03接受 Cookie 横幅后抓取页面
MCP 相关
它向 MCP 客户端提供网页抓取工具,可通过 stdio 或 Streamable HTTP 连接;工具能以 HTML 或 Markdown 返回页面内容。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
2收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 要抓取的 URL |
| browserCommands | string | 否 | 可选的 JSON 浏览器命令数组,在抓取前执行。可用命令和格式请参见工具说明。 |
详细介绍
![]()
ScrAPI MCP 服务
ScrAPI MCP 服务让兼容 MCP 的客户端通过 ScrAPI 抓取网页。
如果网页需要真实浏览器会话、验证码处理、住宅代理访问、Cookie 横幅处理、JavaScript 渲染、基于地理位置的抓取,或抓取前执行点击、滚动等浏览器操作,ScrAPI 都很实用。
目录
功能
- 通过 ScrAPI 抓取任何有效的
https://或http://URL。 - 返回原始 HTML 或易读的 Markdown。
- 抓取前执行浏览器命令。
- 为桌面 MCP 客户端使用 stdio 传输。
- 为远程 MCP 客户端和本地测试使用 Streamable HTTP 传输。
- 通过
npx、Docker、Smithery 或从源代码运行。
可用工具
scrape_url_html
抓取 URL 并以 HTML 形式返回结果。
当你需要页面结构、链接、表格、嵌入的元数据或自定义后续解析时,请使用此工具。
输入:
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
url | string | 是 | 要抓取的绝对 URL。必须是有效的 URL。 |
browserCommands | string | 否 | JSON 数组字符串,包含抓取前要执行的浏览器命令。 |
返回:
- 请求页面的
text/html内容。 - 当上游请求失败时,返回带有 ScrAPI 错误正文的
isError: true。
scrape_url_markdown
抓取 URL 并以 Markdown 形式返回结果。
当文本内容比 HTML 结构更重要时,请使用此工具,例如提取文章内容、产品文案、搜索结果摘要或适合大模型分析的网页内容。
输入:
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
url | string | 是 | 要抓取的绝对 URL。必须是有效的 URL。 |
browserCommands | string | 否 | JSON 数组字符串,包含抓取前要执行的浏览器命令。 |
返回:
- 请求页面的
text/markdown内容。 - 当上游请求失败时,返回带有 ScrAPI 错误正文的
isError: true。
前置条件
选择以下一种运行环境:
- 使用
npx或进行本地开发,需要 Node.js 18 或更高版本。 - 使用容器运行,需要 Docker。
- 使用兼容 MCP 的客户端,例如 Claude Desktop、MCP Inspector,或其他支持 stdio 或 Streamable HTTP MCP 服务的客户端。
API 密钥
设置 SCRAPI_API_KEY 以使用你的 ScrAPI 账户:
export SCRAPI_API_KEY="your-scrapi-api-key"
PowerShell:
$env:SCRAPI_API_KEY = "your-scrapi-api-key"
必须提供 API 密钥。没有密钥时,ScrAPI 目前允许在某些域名上有限免费使用,但并发数和排队优先级较低。
快速开始
使用 NPX 运行
默认传输方式是 stdio,这是大多数桌面 MCP 客户端在启动本地服务进程时使用的传输方式。
npx -y @deventerprisesoftware/scrapi-mcp
使用 API 密钥:
SCRAPI_API_KEY="your-scrapi-api-key" npx -y @deventerprisesoftware/scrapi-mcp
PowerShell:
$env:SCRAPI_API_KEY = "your-scrapi-api-key"
npx -y @deventerprisesoftware/scrapi-mcp
使用 Docker 运行
已发布的 Docker 镜像默认以 HTTP 模式启动,并监听端口 5000。
docker run --rm -p 5000:5000 -e SCRAPI_API_KEY="your-scrapi-api-key" deventerprisesoftware/scrapi-mcp
MCP 端点:
http://localhost:5000/mcp
要将容器作为本地 MCP 客户端使用的 stdio 服务运行:
docker run -i --rm -e TRANSPORT=stdio -e SCRAPI_API_KEY="your-scrapi-api-key" deventerprisesoftware/scrapi-mcp
MCP 客户端配置
大多数本地编码助手使用以下两种配置格式之一:
- Stdio:客户端通过
npx或 Docker 启动此软件包,并通过 stdin/stdout 通信。 - Streamable HTTP:先使用
TRANSPORT=http自行启动此服务,然后将客户端指向http://localhost:5000/mcp或已部署的 URL。
如果客户端提供工具超时设置,请将其设为约 300000 毫秒或 300 秒。对于需要解决 CAPTCHA、浏览器渲染或执行多条浏览器命令的页面,ScrAPI 可能需要几分钟。
使用 NPX 配置 Claude Desktop
将以下内容添加到 claude_desktop_config.json:
{
"mcpServers": {
"ScrAPI": {
"command": "npx",
"args": ["-y", "@deventerprisesoftware/scrapi-mcp"],
"env": {
"SCRAPI_API_KEY": "your-scrapi-api-key"
}
}
}
}
使用 Docker 配置 Claude Desktop
{
"mcpServers": {
"ScrAPI": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SCRAPI_API_KEY",
"deventerprisesoftware/scrapi-mcp"
],
"env": {
"SCRAPI_API_KEY": "your-scrapi-api-key"
}
}
}
}
修改配置后,重启 Claude Desktop。你应该会在 MCP 工具列表中看到两个 ScrAPI 工具。

Cursor
Cursor 支持在 .cursor/mcp.json 中配置项目,也支持在 ~/.cursor/mcp.json 中进行全局配置。请参阅 Cursor MCP 文档。
Stdio 配置:
{
"mcpServers": {
"scrapi": {
"command": "npx",
"args": ["-y", "@deventerprisesoftware/scrapi-mcp"],
"env": {
"SCRAPI_API_KEY": "${env:SCRAPI_API_KEY}"
}
}
}
}
HTTP 配置:
{
"mcpServers": {
"scrapi": {
"url": "http://localhost:5000/mcp"
}
}
}
对于 HTTP,请先启动服务:
TRANSPORT=http PORT=5000 SCRAPI_API_KEY="your-scrapi-api-key" npx -y @deventerprisesoftware/scrapi-mcp
Windsurf
Windsurf Cascade 将 MCP 服务配置保存在 ~/.codeium/windsurf/mcp_config.json 中。你也可以通过 Windsurf Settings > Cascade > MCP Servers 添加服务。请参阅 Windsurf MCP 文档。
Stdio 配置:
{
"mcpServers": {
"scrapi": {
"command": "npx",
"args": ["-y", "@deventerprisesoftware/scrapi-mcp"],
"env": {
"SCRAPI_API_KEY": "${env:SCRAPI_API_KEY}"
}
}
}
}
HTTP 配置:
{
"mcpServers": {
"scrapi": {
"serverUrl": "http://localhost:5000/mcp"
}
}
}
Windsurf 支持使用 serverUrl 或 url 连接远程 HTTP MCP 服务。如果团队使用企业级 MCP 控制,管理员白名单中的服务 ID 必须与键名匹配,例如 scrapi。
Kilo Code
Kilo Code 将 MCP 配置保存在主 Kilo 配置文件中。全局配置使用 ~/.config/kilo/kilo.jsonc,项目根目录中的 kilo.jsonc,或项目专属配置文件 .kilo/kilo.jsonc。请参阅 Kilo Code MCP 文档。
本地 stdio 配置:
{
"mcp": {
"scrapi": {
"type": "local",
"command": ["npx", "-y", "@deventerprisesoftware/scrapi-mcp"],
"environment": {
"SCRAPI_API_KEY": "your-scrapi-api-key"
},
"enabled": true,
"timeout": 300000
}
}
}
远程 HTTP 配置:
{
"mcp": {
"scrapi": {
"type": "remote",
"url": "http://localhost:5000/mcp",
"enabled": true,
"timeout": 300000
}
}
}
在 Windows 上,如果无法从 Kilo Code UI 找到 npx,请将 cmd 用作命令,并将 /c、npx、-y 和 @deventerprisesoftware/scrapi-mcp 作为参数传入。
Codex
Codex 在 CLI 和 IDE 扩展中均支持 MCP 服务。两者使用相同的 MCP 配置。默认情况下,Codex 将配置保存在 ~/.codex/config.toml 中;受信任的项目也可以使用 .codex/config.toml。请参阅 Codex MCP 文档。
使用 Codex CLI 添加 stdio 服务:
codex mcp add scrapi --env SCRAPI_API_KEY="your-scrapi-api-key" -- npx -y @deventerprisesoftware/scrapi-mcp
codex mcp list
等效的 config.toml stdio 配置:
[mcp_servers.scrapi]
command = "npx"
args = ["-y", "@deventerprisesoftware/scrapi-mcp"]
startup_timeout_sec = 20
tool_timeout_sec = 300
[mcp_servers.scrapi.env]
SCRAPI_API_KEY = "your-scrapi-api-key"
HTTP 配置:
[mcp_servers.scrapi]
url = "http://localhost:5000/mcp"
tool_timeout_sec = 300
在 Codex 终端 UI 中运行 /mcp,确认服务已连接。
VS Code
VS Code 将 MCP 配置保存在工作区的 .vscode/mcp.json 中,或保存在用户配置文件中。顶层键是 servers,而不是 mcpServers。请参阅 VS Code MCP 配置参考。
Stdio 配置:
{
"inputs": [
{
"type": "promptString",
"id": "scrapi-api-key",
"description": "ScrAPI API key",
"password": true
}
],
"servers": {
"scrapi": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@deventerprisesoftware/scrapi-mcp"],
"env": {
"SCRAPI_API_KEY": "${input:scrapi-api-key}"
}
}
}
}
HTTP 配置:
{
"servers": {
"scrapi": {
"type": "http",
"url": "http://localhost:5000/mcp"
}
}
}
使用命令面板中的 MCP: Add Server、MCP: List Servers 和 MCP: Reset Cached Tools 命令添加、查看和刷新 MCP 服务。
Claude Code
Claude Code 通过 claude mcp CLI 和 Claude Code 内部的 /mcp 命令支持 MCP 服务。请参阅 Claude Code MCP 文档。
添加一个 stdio 服务:
claude mcp add --transport stdio --env SCRAPI_API_KEY="your-scrapi-api-key" scrapi -- npx -y @deventerprisesoftware/scrapi-mcp
claude mcp list
添加一个 HTTP 服务:
claude mcp add --transport http scrapi http://localhost:5000/mcp
claude mcp list
若要让所有 Claude Code 项目都能使用该服务,请在服务名称前添加 --scope user:
claude mcp add --transport stdio --scope user --env SCRAPI_API_KEY="your-scrapi-api-key" scrapi -- npx -y @deventerprisesoftware/scrapi-mcp
在 Claude Code 中运行 /mcp,确认服务已连接。
通用 Stdio MCP 客户端
对于接受命令、参数和环境变量的客户端,请使用以下格式:
{
"name": "ScrAPI",
"command": "npx",
"args": ["-y", "@deventerprisesoftware/scrapi-mcp"],
"env": {
"SCRAPI_API_KEY": "your-scrapi-api-key"
}
}
HTTP 传输
设置 TRANSPORT=http,即可通过 Streamable HTTP 运行该服务。
TRANSPORT=http PORT=5000 SCRAPI_API_KEY="your-scrapi-api-key" npx -y @deventerprisesoftware/scrapi-mcp
PowerShell:
$env:TRANSPORT = "http"
$env:PORT = "5000"
$env:SCRAPI_API_KEY = "your-scrapi-api-key"
npx -y @deventerprisesoftware/scrapi-mcp
MCP 端点:
http://localhost:5000/mcp
环境变量:
| 名称 | 默认值 | 描述 |
|---|---|---|
SCRAPI_API_KEY | 有限默认密钥 | 调用 ScrAPI 抓取 API 时使用的 ScrAPI API 密钥。 |
TRANSPORT | stdio | 使用 stdio 或 http。 |
PORT | 5000 | TRANSPORT=http 时使用的端口。 |
使用 MCP Inspector 测试
Stdio 模式:
npx @modelcontextprotocol/inspector npx -y @deventerprisesoftware/scrapi-mcp
HTTP 模式:
TRANSPORT=http PORT=5000 npx -y @deventerprisesoftware/scrapi-mcp
然后打开 MCP Inspector 并连接到:
http://localhost:5000/mcp

云托管服务
ScrAPI 还提供托管的 MCP 端点:
Streamable HTTP: https://api.scrapi.tech/mcp
目前并非所有 MCP 客户端都支持云 MCP 服务。它们最适用于自定义客户端、MCP Inspector,或支持远程 MCP 服务的平台。
若要使用 ScrAPI API 密钥进行身份验证,请将其作为查询参数或请求标头传递:
- 查询参数:
https://api.scrapi.tech/mcp?apiKey=<YOUR_API_KEY> - 请求标头:
X-API-KEY: <YOUR_API_KEY>
使用示例
具体交互方式取决于 MCP 客户端。在大多数客户端中,你可以让模型使用 ScrAPI 工具,也可以直接从工具检查器调用该工具。
将网页抓取为 Markdown
工具:
scrape_url_markdown
参数:
{
"url": "https://example.com"
}
提示词示例:
Use ScrAPI to scrape https://example.com as Markdown and summarize the page.
将网页抓取为 HTML
工具:
scrape_url_html
参数:
{
"url": "https://example.com"
}
提示词示例:
Use ScrAPI to scrape https://example.com as HTML and extract every link.
抓取前接受 Cookie
browserCommands 值必须是包含 JSON 数组的字符串。
{
"url": "https://example.com",
"browserCommands": "[{\"click\":\"#accept-cookies\"},{\"wait\":1000}]"
}
抓取结果前先搜索网站
{
"url": "https://example.com/search",
"browserCommands": "[{\"input\":{\"input[name='q']\":\"web scraping\"}},{\"click\":\"button[type='submit']\"},{\"waitfor\":\"#results\"}]"
}
加载更多内容
{
"url": "https://example.com/products",
"browserCommands": "[{\"scroll\":1200},{\"wait\":1000},{\"click\":\"button.load-more\"},{\"waitfor\":\".product-card:nth-child(25)\"}]"
}
浏览器命令
这两个工具都支持可选的浏览器命令,可在 ScrAPI 捕获最终结果前与网页交互。
命令以 JSON 数组字符串的形式提供。执行时会模拟真人操作,例如随机移动鼠标和变速输入。
| 命令 | 格式 | 描述 |
|---|---|---|
| 单击 | {"click": "#buttonId"} | 根据 CSS 选择器单击元素。 |
| 输入 | {"input": {"input[name='email']": "value"}} | 填写输入字段。 |
| 选择 | {"select": {"select[name='country']": "USA"}} | 根据值或可见文本选择选项。 |
| 滚动 | {"scroll": 1000} | 向下滚动指定像素。使用负值向上滚动。 |
| 等待 | {"wait": 5000} | 等待指定毫秒数。最长:15000。 |
| 等待元素 | {"waitfor": "#elementId"} | 等待元素出现在 DOM 中。 |
| JavaScript | {"javascript": "console.log('test')"} | 执行自定义 JavaScript。 |
易读的命令数组:
[
{ "click": "#accept-cookies" },
{ "wait": 2000 },
{ "input": { "input[name='search']": "web scraping" } },
{ "click": "button[type='submit']" },
{ "waitfor": "#results" },
{ "scroll": 500 }
]
转义后作为 MCP 工具参数:
{
"url": "https://example.com",
"browserCommands": "[{\"click\":\"#accept-cookies\"},{\"wait\":2000},{\"input\":{\"input[name='search']\":\"web scraping\"}},{\"click\":\"button[type='submit']\"},{\"waitfor\":\"#results\"},{\"scroll\":500}]"
}
需要帮助查找 CSS 选择器?试试 Rayrun 浏览器扩展,它可以选择元素并生成选择器。
更多详情请参阅浏览器命令文档。
故障排除
MCP 客户端找不到服务
- 如果使用
npx,请确认已安装 Node.js 18 或更高版本。 - 如果使用 Docker,请确认 Docker Desktop 正在运行。
- 编辑配置文件后,重启 MCP 客户端。
- 检查配置的命令能否在终端中正常运行。
工具已显示,但抓取失败
- 确认已正确设置
SCRAPI_API_KEY。 - 尝试使用不带
browserCommands的相同 URL。 - 确保
browserCommands是 JSON 数组字符串,而不是原始 JSON 数组。 - 如果 Markdown 提取遗漏了所需结构,请使用
scrape_url_html。 - 长时间运行的页面、CAPTCHA 流程和包含大量 JavaScript 的页面可能需要几分钟。
浏览器命令被忽略
只有当 browserCommands 能解析为 JSON 数组时,服务才会发送浏览器命令。以下写法有效:
{
"browserCommands": "[{\"click\":\"#accept-cookies\"}]"
}
以下写法不符合此 MCP 工具架构的要求,因为它是对象数组,而不是字符串:
{
"browserCommands": [{ "click": "#accept-cookies" }]
}
HTTP 端点无响应
- 确认启动服务时设置了
TRANSPORT=http。 - 确认客户端连接的是
/mcp,而不是/。 - 确认端口与
PORT一致。
开发
安装依赖:
npm install
运行测试:
npm test
构建:
npm run build
以 stdio 模式从源代码运行:
npm run build
node dist/index.js
以 HTTP 模式从源代码运行:
TRANSPORT=http PORT=5000 node dist/index.js
构建 Docker 镜像:
docker build -t deventerprisesoftware/scrapi-mcp -f Dockerfile .
或者使用 package 脚本:
npm run docker:build
许可证
此 MCP 服务采用 MIT License 许可。您可以根据 MIT License 的条款自由使用、修改和分发该软件。详情请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。