pline.ai について
pline.ai は、ホスト型 API に接続してウェブデータを扱う MCP サーバーです。MCP クライアントがローカルで起動し、ユーザーの API キーを使って HTTPS 経由でリクエストします。
主な機能
- 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、Cargo を含む最新の安定版 Rust ツールチェーン、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 シェル向けです。他のプラットフォームでは、シェルまたは MCP クライアントの設定で同じ 2 つの環境変数を設定してください。サーバーは .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 経由でサーバーを実行し、シェルから 2 つの環境変数を展開します。最初のリリースビルドには時間がかかることがあります。あらかじめビルドしておくと、クライアントの接続時に待たずに済みます。
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 メッセージが返されます。クライアントは、設定された API に x-api-key としてキーを送信します。
scrape は、プロセスの実行中、呼び出し元とホストごとにセッションを記憶します。同じホストへの 2 回目のスクレイプでは、
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、API フィールドと制約事項は pline://reference を参照してください。
ドキュメントは docs/guide.md と
docs/reference.md でもご覧いただけます。
ホスト型 OAuth 接続
リモート MCP エンドポイントでは、エージェントのユーザー全員に API キーを貼り付けてもらう代わりに、Pline のサインインを利用できます。
サインイン後、各ユーザーはワークスペースと有効な API キーを選択します。Pline の Web アプリとホストを設定するには、
docs/oauth-hosting.md に従ってください。
設定
実行ファイルは pline-mcp で、公開 MCP ID は 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 では、動的クライアント登録を有効にし、認可 UI のパスとして
/oauth/consent を設定してください。ホスト型エンドポイントを有効にする前に、
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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。