关于 pline.ai
pline.ai MCP 服务连接托管 API,为需要网页数据的 MCP 客户端提供抓取与搜索能力。服务在本机运行并通过 HTTPS 调用后端,API 密钥由用户提供。
主要功能
- 01抓取网页并提取内容
- 02批量抓取与任务状态管理
- 03爬取网站并发现 URL
- 04映射网站与搜索网页
- 05保存结果或下载任务文件
适用场景
- 01提取单个网页内容
- 02批量处理多个网页
- 03发现网站中的相关 URL
- 04搜索网页并用于后续分析
MCP 相关
向 MCP 客户端提供抓取、批量抓取、爬取、站点映射和搜索工具。客户端通过 stdio 启动本地服务,也可使用 Streamable HTTP 模式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y pline-apiPLINE_BASE_URLpline.ai API base URL. Optional; defaults to https://apix.pline.ai/v1.PLINE_API_KEY密钥Your own pline.ai API key. Sent to the API as the x-api-key header.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
pline.ai MCP 服务
在自己的机器上运行此 MCP 服务,通过托管的 pline.ai API 抓取页面、爬取网站、发现 URL 并进行搜索。每位用户都需提供自己的 API 密钥。
Your MCP client → local MCP process (stdio) → hosted pline.ai API (HTTPS)
抓取后端仍运行在 pline.ai 的基础设施上。你无需在本地运行编排器、浏览器抓取器、Redis 或 Temporal。
使用 npx 运行
此服务以 pline-api 的名称发布到 npm:这是一个小型启动器,会从可选依赖项中选择适用于你平台的预构建二进制文件(macOS arm64/x64、Linux x64/arm64、Windows x64);若不可用,则会从 GitHub Release 下载并校验校验和。唯一要求是 Node.js 18+:
{
"mcpServers": {
"pline.ai": {
"command": "npx",
"args": ["-y", "pline-api"],
"env": {
"PLINE_BASE_URL": "https://apix.pline.ai/v1",
"PLINE_API_KEY": "your-own-api-key"
}
}
}
}
参数会直接传递给二进制文件(npx -y pline-api --http 127.0.0.1:8080),设置 PLINE_MCP_BINARY=/path/to/pline-mcp 可让启动器运行你自己的构建版本。启动器源代码位于 ../npm;各平台的软件包命名为 pline-api-<os>-<cpu>。
安装预构建二进制文件
按照仓库设置指南中的平台下载和校验和说明进行操作。解压 pline-mcp(Windows 上为 pline-mcp.exe),然后在下方配置 MCP 客户端并填写其绝对路径。安装预构建版本无需 Rust、Cargo 或检出仓库。
运行 Docker 镜像
每个版本也会以多平台镜像形式发布到 ghcr.io/grepsr/pline-mcp(linux/amd64 和 linux/arm64);MCP Registry 条目 io.github.grepsr/pline-api 指向的就是此软件包。安装 Docker 后,MCP 客户端无需下载二进制文件,即可通过 stdio 运行此服务:
{
"mcpServers": {
"pline.ai": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "PLINE_BASE_URL", "-e", "PLINE_API_KEY",
"ghcr.io/grepsr/pline-mcp:0.3.9", "--stdio"],
"env": {
"PLINE_BASE_URL": "https://apix.pline.ai/v1",
"PLINE_API_KEY": "your-own-api-key"
}
}
}
}
不带值的 -e NAME 会将客户端提供的环境变量传递到容器中,因此密钥不会出现在命令行上。镜像以非特权用户身份运行,且无法访问你的文件系统,因此除非挂载卷,否则无法使用 save_dir 和 download_dir。请将标签固定为某个发布版本;latest 会不断更新。不带 --stdio 启动时,同一镜像也会提供 Streamable HTTP:
docker run --rm -p 8080:8080 -e PLINE_BASE_URL=https://apix.pline.ai/v1 ghcr.io/grepsr/pline-mcp:0.3.9
从 Git 构建
你需要 Git、当前稳定版 Rust 工具链及 Cargo,以及一个 API 密钥。除非通过 PLINE_BASE_URL 覆盖,否则此服务会调用公共 API https://apix.pline.ai/v1。
在仓库根目录中:
git clone https://github.com/grepsr/pline-api.git
cd pline-api
cargo build --manifest-path mcp-server/Cargo.toml --release --locked
cp .env.example .env
编辑 .env,填入你的 API URL 和密钥,然后在启动 MCP 客户端前加载该文件:
set -a
. ./.env
set +a
这些环境变量加载命令适用于 POSIX shell。在其他平台上,请在 shell 或 MCP 客户端配置中设置相同的两个环境变量。此服务不会自动加载 .env;Git 会忽略此文件。
PLINE_BASE_URL 是可选项,默认为公共 API https://apix.pline.ai/v1。用户的机器无法访问内部部署地址。
连接 MCP 客户端
对于使用 mcpServers JSON 配置的客户端,请添加此条目。将二进制文件路径、API URL 和密钥替换为你自己的值。Windows 上的二进制文件带有 .exe 后缀。
{
"mcpServers": {
"pline.ai": {
"command": "/absolute/path/to/pline-mcp",
"args": ["--stdio"],
"env": {
"PLINE_BASE_URL": "https://apix.pline.ai/v1",
"PLINE_API_KEY": "your-own-api-key"
}
}
}
}
请使用二进制文件的绝对路径,以便客户端可以从任意工作目录启动它。
对于源代码构建版本,可执行文件位于检出目录中的 mcp-server/target/release/pline-mcp。请将真实凭据保存在本地客户端设置中,而不要放在已提交的配置文件里。
从仓库根目录启动 Claude Code 时,根目录下的 .mcp.json 会通过 Cargo 运行此服务,并从 shell 展开两个环境变量。首次发布构建可能需要一些时间;提前构建可避免在客户端尝试连接时等待。
MCP 客户端会启动并管理 stdio 进程。你无需启动 HTTP 监听器或开放端口。日志会输出到 stderr(使用 RUST_LOG=debug 可查看更多详情)。
更新
对于预构建安装,请下载新的归档文件,验证其校验和,然后替换可执行文件。 对于源码构建:
git pull --ff-only
cargo build --manifest-path mcp-server/Cargo.toml --release --locked
重启或重新连接 MCP 客户端,以加载重新构建的二进制文件。
工具
| 工具 | 端点 |
|---|---|
scrape | POST /scrape |
batch_scrape_start / batch_scrape_status / batch_scrape_cancel | /batch/scrape |
crawl_start / crawl_status / crawl_cancel | /crawl |
map_site | POST /map |
search | GET /serp |
sessions_list | 本地:为此调用方记忆的主机到会话映射 |
工具结果包含结构化 JSON。API 错误会返回 HTTP 状态码和服务的
detail 消息。客户端会将你的密钥作为 x-api-key 发送到已配置的 API。
scrape 会在进程生命周期内按调用方和主机记忆会话。再次抓取同一主机时会复用该会话,除非你传入 session_id 或设置 new_session=true。同一主机的抓取会在本地串行执行。已记忆会话收到 4xx 响应后,会被丢弃,供下次调用重新建立。
通过 stdio 使用时,save_dir 会将抓取输出写入本地文件系统,并返回其路径。不设置时,
输出会截断至 max_chars(默认值为 60000);truncated_outputs 会列出被截断的字段。
通过 stdio 使用时,状态工具可以将已完成任务的产物下载到本地 download_dir。
带有 save_dir 或 download_dir 的 HTTP 请求会在联系 API 前被拒绝。
阅读 pline://guide 了解使用指南,阅读 pline://reference 了解 API 字段和限制。
这些文档也可在 docs/guide.md 和
docs/reference.md 中查看。
托管 OAuth 连接
远程 MCP 端点可以使用 Pline 登录,无需让每位 Agent 用户都粘贴 API 密钥。登录后,每位用户都会选择一个工作区和一个有效的 API 密钥。按照
docs/oauth-hosting.md 配置 Pline Web 应用和主机。
配置
可执行文件为 pline-mcp;其公开 MCP 标识为 pline.ai。
本地 stdio 使用时,请设置 PLINE_BASE_URL 和 PLINE_API_KEY。
HTTP 模式下,PLINE_MCP_HTTP_ADDR 用于设置监听地址,
PLINE_MCP_ALLOWED_HOSTS 接受以逗号分隔的允许主机列表。OAuth 模式还会使用
PLINE_PLATFORM_BASE_URL(Pline Web 应用源)、PLINE_SUPABASE_URL(Supabase 项目源)
和 PLINE_MCP_PUBLIC_URL(公开 MCP 源)。
此服务的发布位置
此服务已发布到官方 MCP Registry,名称为 io.github.grepsr/pline-api,其软件包包括 npm
软件包和上文的 GHCR 镜像;仓库根目录也可安装为 Claude
Code 插件(pline-ai),该插件会运行 npm 软件包。根目录中的 .cursor/mcp.json
和 .vscode/mcp.json 会为 Cursor 和 VS Code
工作区配置 npx -y pline-api。PUBLISHING.md 介绍了各项发布条目的生成方式及其维护方法。
HTTP 模式
该二进制文件还支持 Streamable HTTP,例如用于本地传输开发:
PLINE_BASE_URL=https://apix.pline.ai/v1 \
./mcp-server/target/release/pline-mcp --http 127.0.0.1:8080
/health 用于报告存活状态。/mcp 通过 Authorization: Bearer 或
x-api-key 接收调用方的 API 密钥;旧版 /<key>/mcp 路由也仍可用,但会将凭据放在 URL 和访问日志中。
服务会转发每个调用方的密钥,而不是使用 stdio 环境密钥。配置好平台和 OAuth 环境变量后,也接受 Supabase OAuth
访问令牌。用户会在 Pline 的 OAuth 授权同意页面中选择一个活跃的工作区 API 密钥,服务则会针对每个请求通过经过身份验证的 Pline 平台解析该密钥。MCP 进程不会保存共享 API
密钥。
配置 Supabase OAuth 2.1,并启用动态客户端注册,将 /oauth/consent 设为
授权 UI 路径。在启用托管端点之前,从
pline-hades-api-service 代码库运行 uv run alembic upgrade head,以应用 API 服务迁移。
HTTP 传输为无状态:不会发出 Mcp-Session-Id,独立的 GET 流和 DELETE
会话请求会返回 405。每个 POST 请求都使用自己的 API 密钥;已记忆的抓取会话仍限定于该密钥。不支持 HTTP
模式下的会话重放和 MCP 取消通知。上文的 Git 安装使用 stdio。
开发
从 mcp-server/ 目录运行:
cargo test --locked
cargo clippy --locked --all-targets --all-features -- -D warnings
cargo fmt --check
指南和参考文档通过 include_str! 嵌入;编辑后需重新构建。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。