mcpField
P
pline.ai

pline.ai

本地服务
github.com浏览器自动化10今天更新

关于 pline.ai

pline.ai MCP 服务连接托管 API,为需要网页数据的 MCP 客户端提供抓取与搜索能力。服务在本机运行并通过 HTTPS 调用后端,API 密钥由用户提供。

主要功能

  1. 01抓取网页并提取内容
  2. 02批量抓取与任务状态管理
  3. 03爬取网站并发现 URL
  4. 04映射网站与搜索网页
  5. 05保存结果或下载任务文件

适用场景

  1. 01提取单个网页内容
  2. 02批量处理多个网页
  3. 03发现网站中的相关 URL
  4. 04搜索网页并用于后续分析

MCP 相关

向 MCP 客户端提供抓取、批量抓取、爬取、站点映射和搜索工具。客户端通过 stdio 启动本地服务,也可使用 Streamable HTTP 模式。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"grepsr-pline-api": {
"command": "npx",
"args": [
"-y",
"pline-api"
],
"env": {
"PLINE_BASE_URL": "<PLINE_BASE_URL>",
"PLINE_API_KEY": "<PLINE_API_KEY>"
}
}
}
}
启动命令npx -y pline-api
需要配置的环境变量
PLINE_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmpline-api0.3.10
ocighcr.io/grepsr/pline-mcp:0.3.10

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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 客户端,以加载重新构建的二进制文件。

工具

工具端点
scrapePOST /scrape
batch_scrape_start / batch_scrape_status / batch_scrape_cancel/batch/scrape
crawl_start / crawl_status / crawl_cancel/crawl
map_sitePOST /map
searchGET /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! 嵌入;编辑后需重新构建。

评论

支持 Markdown

第一次接触 MCP?

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

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