perplexity-comet-mcp について
perplexity-comet-mcp は、Claude Code と Perplexity Comet ブラウザーを接続する MCP サーバーです。Claude がコーディングを担当する間、Comet が Web 閲覧、リサーチ、複数タブでのワークフローを自律的に実行します。hanzili/comet-mcp のフォークで、Windows と WSL への対応とタブ管理が追加されています。
主な機能
- 01自律的な Web 閲覧とデータ抽出
- 02包括的な分析のための Deep Research モード
- 03保護機能付きのタブ追跡・切り替え・終了
- 04安定性に基づく応答完了の検出
- 05指数バックオフによる自動再接続
- 06Windows、WSL、macOS への対応
活用シーン
- 01コーディング中に Comet で情報を調べ、Web データを取得する
- 02ログインが必要な Web コンテンツにアクセスする
- 03複数タブのワークフローでブラウザータブを管理する
- 04SNS やフォームにファイルをアップロードする
MCP 対応
Chrome DevTools Protocol 経由で Comet ブラウザーを操作し、comet_connect、comet_ask、comet_poll、comet_tabs、comet_upload などのツールを Claude Code などの MCP クライアントに公開する MCP サーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
8掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
Perplexity Comet MCP
Claude Code と Perplexity の Comet ブラウザーを連携させ、自律的なウェブ閲覧、調査、複数タブのワークフロー管理を実現する、本番環境向けの MCP(Model Context Protocol)サーバーです。
Perplexity Comet MCP を選ぶ理由
| アプローチ | 制限 |
|---|---|
| 検索 API | 静的なテキストのみで、操作やログインには対応していません |
| ブラウザー自動化 | 単一エージェントモデルではコンテキストが圧迫され、焦点が分散します |
| Perplexity Comet MCP | Claude がコーディングを行う間、Comet が自律的にブラウジングを処理します |
これは hanzili/comet-mcp を大幅に強化したフォークで、Windows 対応、スマートな完了検出、堅牢な接続処理、完全なタブ管理を備えています。
特長
主な機能
- 自律的なウェブ閲覧 - Claude がコーディングに集中する間、Comet がページを移動し、クリックや入力を行い、データを抽出します
- ディープリサーチモード - Perplexity の調査機能を活用し、包括的な分析を行います
- ログインが必要なページへの対応 - 実際のブラウザーセッションを通じて、認証が必要なコンテンツにアクセスします
- 動的コンテンツ - JavaScript の完全なレンダリングと操作に対応します
強化機能(このフォークで新たに追加)
| 機能 | 説明 |
|---|---|
| Windows/WSL 対応 | Windows および WSL 環境に完全対応 |
| タブ管理 | 保護機能付きで、ブラウザータブの追跡、切り替え、終了が可能 |
| スマートな完了検出 | 固定タイムアウトを使わずに応答の完了を検出 |
| 自動再接続 | 接続が切断された場合、指数バックオフで復旧 |
| 確実な単発実行 | 一貫した実行のため、操作前にヘルスチェックを実行 |
| エージェント型の自動トリガー | 自然な言葉でのプロンプトから、ブラウザー操作を自動的に開始 |
オリジナルとの比較
| 機能 | オリジナル | 強化版 |
|---|---|---|
| プラットフォーム対応 | macOS | Windows、WSL、macOS |
| 利用可能なツール | 6 | 8(+comet_tabs、+comet_upload) |
| 完了検出 | 固定タイムアウト | 安定性ベース |
| 接続復旧 | なし | バックオフ付き自動再接続 |
| タブ管理 | なし | 完全な登録と制御 |
| ヘルスモニタリング | なし | キャッシュされたヘルスチェック |
| 最後のタブの保護 | なし | ブラウザーのクラッシュを防止 |
インストール
前提条件
- Node.js 18 以降
- Perplexity Comet Browser がインストールされていること
- Claude Code または互換性のある MCP クライアント
npm からインストール
npm install -g perplexity-comet-mcp
ソースからインストール
git clone https://github.com/RapierCraft/perplexity-comet-mcp.git
cd perplexity-comet-mcp
npm install
npm run build
Claude Code の設定
Claude Code の MCP 設定(~/.claude/settings.json または VS Code の設定)に追加します。
{
"mcpServers": {
"comet-bridge": {
"command": "node",
"args": ["/path/to/perplexity-comet-mcp/dist/index.js"]
}
}
}
Windows ユーザー: Windows のフルパスを使用してください。
{
"mcpServers": {
"comet-bridge": {
"command": "node",
"args": ["C:\\Users\\YourName\\perplexity-comet-mcp\\dist\\index.js"]
}
}
}
ツールリファレンス
comet_connect
Comet ブラウザーへの接続を確立します。起動していない場合は自動的に起動します。
Parameters: None
Returns: Connection status message
例:
> comet_connect
Comet started with debug port 9223
Connected to Perplexity (cleaned 2 old tabs)
comet_ask
Comet にプロンプトを送信し、応答が完了するまで待ちます。URL や操作を求めるリクエストに対しては、エージェント型のブラウジングを自動的に開始します。
Parameters:
- prompt (required): Question or task for Comet
- newChat (optional): Start fresh conversation (default: false)
- timeout (optional): Max wait time in ms (default: 120000)
Returns: Complete response text
例:
# Simple research query
> comet_ask "What are the latest features in Python 3.12?"
# Agentic browsing (auto-triggered)
> comet_ask "Go to github.com/trending and list top Python repos"
# Site-specific data extraction
> comet_ask "Check the price of iPhone 15 on amazon.com"
comet_poll
進行中のタスクの状態と進捗を確認します。完了している場合は応答を返します。
Parameters: None
Returns: Status (IDLE/WORKING/COMPLETED), steps taken, or final response
例:
> comet_poll
Status: WORKING
Browsing: https://github.com/trending
Current: Scrolling page
Steps:
- Preparing to assist you
- Navigating to github.com
- Clicking on Trending
- Scrolling page
comet_stop
エージェント型のタスクが軌道を外れた場合、現在のタスクを停止します。
Parameters: None
Returns: Confirmation message
comet_screenshot
現在のブラウザー画面のスクリーンショットを撮影します。
Parameters: None
Returns: PNG image data
comet_tabs
ブラウザータブを表示、管理します。複数のタブを使うワークフローに不可欠です。
Parameters:
- action (optional): "list" (default), "switch", or "close"
- domain (optional): Domain to match (e.g., "github.com")
- tabId (optional): Specific tab ID
Returns: Tab listing or action confirmation
使用例:
# List all external tabs
> comet_tabs
2 browsing tab(s) open:
- AGENT-BROWSING: github.com [ACTIVE]
URL: https://github.com/trending
- AGENT-BROWSING: stackoverflow.com
URL: https://stackoverflow.com/questions
# Switch to a tab
> comet_tabs action="switch" domain="stackoverflow.com"
Switched to stackoverflow.com (https://stackoverflow.com/questions)
# Close a tab (protected if last tab)
> comet_tabs action="close" domain="github.com"
Closed github.com
タブの保護:
- 最後に残った外部ブラウジングタブは閉じられません(Comet のクラッシュを防ぎます)
- 内部タブ(chrome://、Perplexity UI)は自動的に除外されます
comet_mode
用途に応じて Perplexity の検索モードを切り替えます。
Parameters:
- mode (optional): "search", "research", "labs", or "learn"
Returns: Current mode or confirmation of switch
| モード | 用途 |
|---|---|
| search | ウェブをすばやく検索 |
| research | 詳細で包括的な分析 |
| labs | データ分析と可視化 |
| learn | 教育的な解説 |
comet_upload
ウェブページのファイル入力要素にファイルをアップロードします。ソーシャルメディアへの画像投稿、フォームへのファイル添付、ドキュメントのアップロードに不可欠です。
Parameters:
- filePath (required): Absolute path to the file to upload
- selector (optional): CSS selector for specific file input
- checkOnly (optional): If true, only checks what file inputs exist
Returns: Success message or error with available inputs
使用例:
# Upload an image to the first file input found
> comet_upload filePath="/home/user/screenshot.png"
File uploaded successfully: /home/user/screenshot.png
# Check what file inputs exist on the page
> comet_upload filePath="dummy" checkOnly=true
Found 2 file input(s) on the page:
1. #image-upload
2. input[name="attachment"]
# Upload to a specific input
> comet_upload filePath="/home/user/doc.pdf" selector="#attachment-input"
File uploaded successfully: /home/user/doc.pdf
画像を投稿するワークフロー:
- 投稿作成ページに移動します(例:Reddit、Twitter)
comet_upload checkOnly=trueを使ってファイル入力要素を探しますcomet_upload filePath="..." selector="..."を使ってファイルを添付します- フォームの送信を続行します
アーキテクチャ
┌─────────────────┐ MCP Protocol ┌──────────────────┐
│ Claude Code │ ◄──────────────────► │ Perplexity │
│ (Your IDE) │ │ Comet MCP │
└─────────────────┘ └────────┬─────────┘
│
Chrome DevTools
Protocol
│
┌────────▼─────────┐
│ Comet Browser │
│ (Perplexity) │
└──────────────────┘
│
┌────────▼─────────┐
│ External │
│ Websites │
└──────────────────┘
主なコンポーネント
| コンポーネント | 目的 |
|---|---|
index.ts | MCP サーバーとツールハンドラー |
cdp-client.ts | 再接続ロジックを備えた Chrome DevTools Protocol クライアント |
comet-ai.ts | Perplexity とのやり取り、プロンプトの送信、応答の抽出 |
types.ts | タブ、状態、CDP 型の TypeScript インターフェース |
設定
環境変数
| 変数 | 説明 | デフォルト |
|---|---|---|
COMET_PATH | Comet 実行ファイルのカスタムパス | 自動検出 |
COMET_PORT | CDP デバッグポート | 9223 |
Comet のカスタムパス
# Windows
set COMET_PATH=C:\Custom\Path\comet.exe
# macOS/Linux
export COMET_PATH=/custom/path/to/Comet.app/Contents/MacOS/Comet
トラブルシューティング
接続の問題
問題: Error: Failed to list targets: ECONNREFUSED
解決方法:
- Comet ブラウザーがインストールされていることを確認します
- 起動中の Comet をすべて終了します
comet_connectを実行して、適切なフラグを付けて自動起動します
問題: 長時間のタスク中に WebSocket connection closed が発生する
解決方法: このバージョンでは再接続が自動的に処理されます。問題が続く場合は、タイムアウトを延長します。
comet_ask prompt="..." timeout=180000
Windows 固有の問題
問題: Windows で ECONNRESET エラーが発生する
解決方法: このバージョンには、PowerShell を使用した fetch の回避策が含まれています。以下を確認してください。
- PowerShell が PATH で利用可能である
- ファイアウォールが localhost:9223 をブロックしていない
問題: Windows で Comet が見つからない
解決方法: カスタムパスを設定します。
set COMET_PATH=%LOCALAPPDATA%\Perplexity\Comet\Application\comet.exe
WSL 固有の問題
問題: WSL cannot connect to Windows localhost:9223
説明: WSL2 はデフォルトで別のネットワーク名前空間を使用します。MCP は Chrome DevTools Protocol(CDP)を使用するため、Windows の localhost への WebSocket 接続が必要です。
解決方法: WSL のミラーネットワークを有効にします。
%USERPROFILE%\.wslconfigを作成または編集します(例:C:\Users\YourName\.wslconfig)。
[wsl2]
networkingMode=mirrored
- WSL を再起動します。
wsl --shutdown
- 新しい WSL ターミナルを開き、もう一度試します。
代替方法: WSL ではなく、Windows PowerShell から Claude Code を実行します。
問題: UNC paths are not supported という警告が表示される
説明: これは WSL から起動した場合に PowerShell が出す無害な警告です。MCP が自動的に処理します。
タブ管理の問題
問題: Cannot close - this is the only browsing tab
説明: これは意図的な保護機能です。Comet では外部タブを少なくとも 1 つ開いておく必要があります。先に別のタブを開いてから、不要なタブを閉じてください。
開発
ソースからビルド
git clone https://github.com/RapierCraft/perplexity-comet-mcp.git
cd perplexity-comet-mcp
npm install
npm run build
開発モードで実行
npm run dev
テストを実行
npm test
プロジェクト構成
perplexity-comet-mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── cdp-client.ts # CDP connection management
│ ├── comet-ai.ts # AI interaction logic
│ └── types.ts # TypeScript definitions
├── dist/ # Compiled JavaScript
├── package.json
├── tsconfig.json
└── README.md
コントリビューション
コントリビューションを歓迎します。プルリクエストを送信する前に、CONTRIBUTING.md をお読みください。
開発ガイドライン
- TypeScript の strict モードへの準拠を維持する
- 新機能にはテストを追加する
- API の変更に応じてドキュメントを更新する
- 既存のコードスタイルに従う
帰属
このプロジェクトは、hanzili による comet-mcp を拡張したフォークです。
RapierCraft による主な拡張
- Windows および WSL のプラットフォームサポート
- タブ管理システム(comet_tabs ツール)
- スマートな完了検出
- 指数バックオフによる自動再接続
- ヘルスチェックのキャッシュ
- エージェント型プロンプトの自動変換
- 最後のタブの保護
- 内部タブのフィルタリング
ライセンス
MIT ライセンス。詳細は LICENSE をご覧ください。
リンク
RapierCraft によって精密に構築されました
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。