crawlport について
crawlportは、Firecrawlを利用するコマンドラインツール兼MCPサーバーです。エージェントやターミナル利用者向けに、ページ取得、検索、構造化データ抽出、llms.txt生成などのウェブ収集・調査機能を提供します。
主な機能
- 01ページを読みやすい形式で取得
- 02URLのマッピングとサイトのクロール
- 03ウェブ検索
- 04プロンプトやスキーマに沿ったデータ抽出
- 05一括スクレイピングと詳細調査
- 06llms.txtコンテンツの生成
活用シーン
- 01ウェブページの内容を読みやすい形で取得
- 02サイト内の対象ページを発見してクロール
- 03複数のウェブ情報源を検索・調査
- 04指定スキーマでページの項目を抽出
MCP 対応
MCPサーバーは、スクレイピング、マッピング、検索、クロール、抽出、調査、一括処理、llms.txt生成のFirecrawlツールを提供します。Firecrawl APIキーが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
10掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | スクレイピングする単一ページの URL。 |
| proxy | string | いいえ | スクレイピングリクエストで使用するプロキシモード。Firecrawl API が受け付ける値を指定します。 |
| actions | array | いいえ | スクレイピング前に実行するブラウザー操作。Firecrawl のアクションオブジェクトで指定します。 |
| formats | array | いいえ | スクレイピングしたページの出力形式(markdown や html など)。 |
| timeout | integer | いいえ | スクレイピングリクエストのタイムアウト(ミリ秒)。 |
| waitFor | integer | いいえ | スクレイピング前にページが安定するまで待機する時間(ミリ秒)。 |
| blockAds | boolean | いいえ | true の場合、ページのスクレイピング中に広告とポップアップをブロックします。 |
| excludeTags | array | いいえ | スクレイピング結果から除外する HTML タグ。 |
| includeTags | array | いいえ | スクレイピング結果に含める HTML タグ。設定すると、これらのタグ内のコンテンツのみを返します。 |
| onlyMainContent | boolean | いいえ | true の場合、ナビゲーションやその他の定型コンテンツを除き、ページのメインコンテンツのみを返します。 |
詳細
crawlport
crawlport は、Firecrawl を基盤とする、エージェントと読み取り可能なウェブをつなぐ窓口です。1 ページを渡すと、整った Markdown が返されます。サイト全体を渡すと、ページをマップしたり、セクションをクロールしたり、リストをまとめてスクレイピングしたりできます。質問を渡すと、検索したり、指定したスキーマに従ってページから構造化フィールドを抽出したり、複数のソースを横断して調査したり、サイトが自らについて公開する llms.txt を作成したりできます。CLI または MCP サーバーとして実行でき、Firecrawl API キーが必要です。
セットアップ
Firecrawl からキーを取得して、環境変数に設定します。
export FIRECRAWL_API_KEY=<redacted>
変数が設定されていない場合、すべてのコマンドとツール呼び出しは FIRECRAWL_API_KEY が指定されていないことを示すエラーで失敗します。外部には何も送信されません。
インストール
npx @reneturcios/crawlport scrape https://example.com/some/page
または、コンテナイメージを実行します。
docker run -i -e FIRECRAWL_API_KEY ghcr.io/cloudcorprecords/crawlport
コンテナはデフォルトで MCP サーバーとして起動します(下記を参照)。CLI として使うには、CLI 引数を渡してください。
CLI
# One page, as markdown (add --formats html,links etc. for more)
crawlport scrape https://example.com/article --only-main-content
# Discover a site's URLs, optionally filtered
crawlport map https://example.com --search pricing --limit 100
# Web search, with locale controls
crawlport search "standing desk reviews" --limit 5 --lang en --country US
# Start a crawl, then poll it with the returned job id
crawlport crawl https://example.com/docs --limit 50 --max-depth 2
crawlport crawl-status <job-id>
# Structured extraction and batch scraping
crawlport extract https://example.com/a https://example.com/b --prompt "pull the price"
crawlport batch-scrape https://example.com/a https://example.com/b
crawlport batch-status <job-id>
# Research and llms.txt
crawlport deep-research "home battery storage costs in 2026" --max-urls 40
crawlport llmstxt https://example.com --max-urls 25
crawlport --version
成功した呼び出しでは、API の JSON レスポンスが出力されます。クロールとバッチのジョブは上流で非同期に処理されます。開始呼び出しはジョブ ID を返し、対応するステータスコマンドで進行状況と結果を確認します。終了コードは次のとおりです。
0 は成功、1 は API 呼び出しの失敗(キーがない場合を含む)、2 は使用方法のエラーです。
MCP サーバー
1 つのバイナリで、どちらの使い方にも対応します。mcp サブコマンドで stdio MCP サーバーを起動します。
npx -y @reneturcios/crawlport mcp
MCP クライアントの設定:
{
"mcpServers": {
"crawlport": {
"command": "npx",
"args": ["-y", "@reneturcios/crawlport", "mcp"],
"env": { "FIRECRAWL_API_KEY": "your-key-here" }
}
}
}
ツール
| ツール | 入力 | 機能 |
|---|---|---|
firecrawl_scrape | url(必須);formats、onlyMainContent、waitFor、timeout、actions、includeTags、excludeTags、blockAds、proxy(任意) | POST /v1/scrape で 1 ページをスクレイピングします。 |
firecrawl_map | url(必須);search、limit、ignoreSitemap | POST /v1/map でサイト内の検出済み URL を一覧表示します。 |
firecrawl_search | query(必須);limit、lang、country、scrapeOptions | POST /v1/search でウェブ検索します。必要に応じて各検索結果もスクレイピングします。 |
firecrawl_crawl | url(必須);limit、maxDepth、allowBackwardLinks、allowExternalLinks、excludePaths、includePaths、scrapeOptions | POST /v1/crawl でクロールを開始し、ジョブ ID を返します。 |
firecrawl_check_crawl_status | id(必須) | GET /v1/crawl/{id} でクロールジョブの状態を確認します。 |
firecrawl_extract | urls(必須);prompt、schema、enableWebSearch、allowExternalLinks | POST /v1/extract で、プロンプトまたはスキーマに従って LLM 抽出を行います。 |
firecrawl_batch_scrape | urls(必須);formats、onlyMainContent | POST /v1/batch/scrape でバッチスクレイピングを開始し、ジョブ ID を返します。 |
firecrawl_check_batch_status | id(必須) | GET /v1/batch/scrape/{id} でバッチジョブの状態を確認します。 |
firecrawl_deep_research | query(必須);maxDepth、timeLimit、maxUrls | POST /v1/deep-research で複数のソースを横断して調査します。 |
firecrawl_generate_llmstxt | url(必須);maxUrls、showFullText | POST /v1/llmstxt で llms.txt の内容を生成します。 |
ツールの結果は上流の JSON で、整形してテキストとして出力されます。任意の引数は指定された場合にのみ転送され、それ以外の場合は API のデフォルト値が適用されます。上流でのエラーは、HTTP ステータスと API 独自のメッセージを含むツールエラーとして返されます。
開発
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev # run the CLI from source via tsx
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。