mcpField
C
camoufox-mcp

camoufox-mcp

ローカル
github.com/baixiangerブラウザ自動化736 週間前に更新

camoufox-mcp について

camoufox-mcp は、Camoufox の検出対策 Firefox ブラウザーを自動化する MCP サーバーです。AI エージェントに、ブラウザー操作、分離セッション、ページ検査、ネットワークとコンソールの監視ツールを提供します。

主な機能

  1. 01ページ移動と要素操作
  2. 02分離セッションと保存済み認証状態の管理
  3. 03スナップショット、スクリーンショット、ページテキストの取得
  4. 04JavaScript 実行とフレームワーク状態の抽出
  5. 05ネットワークリクエストの監視と傍受

活用シーン

  1. 01Camoufox によるブラウザー操作の自動化
  2. 02複数の認証済みブラウザープロファイルの並行実行
  3. 03ページ検査とネットワーク活動の記録

MCP 対応

この MCP サーバーは、セッション、ページ、操作、検査、監視などの Camoufox ブラウザー自動化ツールを MCP クライアントに公開します。stdio で起動できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"baixianger-camoufox": {
"command": "npx",
"args": [
"-y",
"camoufox-mcp"
]
}
}
}
起動コマンドnpx -y camoufox-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmcamoufox-mcp1.0.0

ツール

42

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

🦊 Camoufox MCP

AI エージェント向けの検出回避ブラウザー自動化

npm version npm downloads License: MIT Node.js

Camoufox を使用したブラウザー自動化用 MCP サーバーです。Camoufox は検出回避機能を備えた Firefox ブラウザーです。

インストール

npx camoufox-mcp

Claude Desktop の設定

claude_desktop_config.json に追加します。

基本:

{
  "mcpServers": {
    "camoufox": {
      "command": "npx",
      "args": ["camoufox-mcp"]
    }
  }
}

プロキシを使用する場合(環境変数経由):

{
  "mcpServers": {
    "camoufox": {
      "command": "npx",
      "args": ["camoufox-mcp"],
      "env": {
        "PROXY_SERVER": "http://1.2.3.4:8080",
        "PROXY_USER": "username",
        "PROXY_PASS": "password"
      }
    }
  }
}

続いて、~/.config/camoufox-mcp/settings.json に追加します。

{
  "proxy": {
    "enabled": true,
    "server": "${PROXY_SERVER}",
    "username": "${PROXY_USER}",
    "password": "${PROXY_PASS}",
    "geoip": true
  }
}

Camoufox MCP を選ぶ理由

機能Camoufox MCPChrome DevTools MCP
検出回避
ボット検出の回避✅ 組み込み❌ 検出される
フィンガープリントのランダム化✅❌
WebRTC の漏えい防止✅❌
Canvas フィンガープリントの偽装✅❌
自動化
人間らしいカーソル移動✅ 現実的な軌跡❌ 瞬時に移動
人間らしい遅延を伴うクリック✅❌
GeoIP 自動設定付きプロキシ✅ タイムゾーン/ロケール❌ 手動
JavaScript の評価
MainWorld eval(__NUXT__、__NEXT_DATA__)✅✅
Isolated eval(async/await)✅✅
セッション管理
分離されたブラウザーセッション✅ 複数のコンテキスト❌ 単一のコンテキスト
認証済みセッションの事前読み込み✅ Cookie/localStorage の注入❌
セッション状態のエクスポート✅ JSON に保存❌
機能
Cookie ポップアップの自動非表示✅ 50 種類以上のセレクター❌
ユーザー操作の記録✅❌
ネットワークの傍受✅✅
コンソールの記録✅✅
パフォーマンスのトレース❌✅
ブラウザー
エンジンFirefox(Gecko)Chrome(Chromium)
自動インストール✅ 約 150MB✅

ツール

セッション管理

セッションは分離されたブラウザーコンテキストを提供します。各セッションは、それぞれ独自の Cookie、localStorage、キャッシュを持ちます。セッションを使うと、複数の認証済みプロファイルを同時に実行できます。

ツール説明
create_session新しい分離セッションを作成します。必要に応じて、JSON ファイルから Cookie/localStorage を事前に読み込めます
list_sessions各セッションのページ数とメタデータを含め、すべてのセッションを一覧表示します
save_sessionセッションの Cookie と localStorage を JSON ファイルにエクスポートします
close_sessionセッションと、そのセッションに属するすべてのページを閉じます
list_context_files設定に登録されているコンテキストファイルを一覧表示します
ページ管理
ツール説明
new_page新しいページを作成します。必要に応じて、特定のセッション内に作成できます
list_pagesセッション ID とともに、開いているすべてのページを一覧表示します
select_pageページをアクティブに設定します
close_pageページを閉じます
ナビゲーションと操作
ツール説明
navigate_pageURL への移動、戻る、進む、または再読み込みを行います
clickUID で要素を指定してクリックします
hover要素にカーソルを合わせます
fillフォームフィールドに入力します
fill_form複数のフォームフィールドに一度に入力します
press_keyキーまたはキーの組み合わせを押します
drag要素を別の場所にドラッグします
検査
ツール説明
take_snapshot操作可能な要素の UID を含むテキストスナップショットを取得します
take_screenshotページまたは要素のスクリーンショットを取得します
get_page_textテキストコンテンツを抽出します
evaluate_mainworldページコンテキストで JS を実行します(同期のみ)
evaluate_isolated分離されたコンテキストで JS を実行します(async に対応)
get_framework_stateNext.js/Nuxt.js の状態を抽出します
コンテキストの注入
ツール説明
inject_contextJSON ファイルからセッションに Cookie と localStorage を注入します
モニタリング
ツール説明
start_network_capture / stop_network_captureネットワークリクエストをキャプチャします
get_network_logs / clear_network_logsキャプチャしたリクエストを表示/消去します
intercept_network / remove_interceptリクエストをブロックまたは変更します
start_console_capture / stop_console_captureコンソールメッセージをキャプチャします
get_console_logs / clear_console_logsコンソールメッセージを表示/消去します
start_recording / stop_recording / get_recording_statusユーザーの操作を記録します
ユーティリティ
ツール説明
dismiss_popupsCookie 同意ポップアップを自動的に閉じます
wait_forテキストまたはセレクターを待ちます
wait_for_navigationナビゲーションの完了を待ちます
reload_settings設定ファイルから設定を再読み込みします
get_config_paths設定ファイルのパスを表示します
init_user_configユーザー設定ディレクトリを初期化します

セッション

セッションを使用すると、複数の認証済みプロファイルを並行して実行できます。各セッションは、独自の Cookie と localStorage を持つ独立したブラウザーコンテキストです。

Browser (single Camoufox instance)
  ├── Session "github" (cookies from github.json)
  │     ├── Page: github.com
  │     └── Page: github.com/repo
  ├── Session "linkedin" (cookies from linkedin.json)
  │     └── Page: linkedin.com/feed
  └── Session "default" (no pre-loaded state)
        └── Page: example.com
使用例

認証情報を事前に読み込んだセッションを作成する:

  1. contextPath: "github-cookies.json" を指定して create_session を実行します。sessionId が返されます
  2. url: "https://github.com" と sessionId を指定して new_page を実行すると、GitHub にログイン済みの状態で開きます

2 つのアカウントを同時に実行する:

  1. contextPath: "account1.json" を指定して create_session を実行します。セッション A になります
  2. contextPath: "account2.json" を指定して create_session を実行します。セッション B になります
  3. セッション A で new_page を実行すると、アカウント 1 でログインします
  4. セッション B で new_page を実行すると、アカウント 2 でログインします

セッションの状態を後で使用するために保存する:

  1. セッションで手動でログインします
  2. outputPath: "my-session.json" を指定して save_session を実行すると、Cookie と localStorage がエクスポートされます
  3. 次回、contextPath: "my-session.json" を指定して create_session を実行すると、状態が復元されます
コンテキストファイルの形式

コンテキストファイルには、Playwright の storageState 形式が使用されます。

{
  "cookies": [
    {
      "name": "session_id",
      "value": "abc123",
      "domain": ".example.com",
      "path": "/",
      "expires": 1735689600,
      "httpOnly": true,
      "secure": true,
      "sameSite": "Lax"
    }
  ],
  "origins": [
    {
      "origin": "https://example.com",
      "localStorage": [
        { "name": "token", "value": "xyz789" }
      ]
    }
  ]
}
コンテキストファイルを設定に登録する

settings.json にコンテキストファイルのパスを追加すると、list_context_files から参照できるようになります。セッションは必要に応じて遅延作成されるため、エージェントが create_session を呼び出すまではメモリを使用しません。

{
  "contextPaths": [
    "/path/to/github-cookies.json",
    "/path/to/linkedin-cookies.json"
  ]
}

エージェントは list_context_files を呼び出して利用可能なファイルを確認し、必要に応じて目的の contextPath を指定して create_session を呼び出し、読み込むことができます。

設定

~/.config/camoufox-mcp/settings.json を作成します。

{
  "browser": {
    "headless": false,
    "viewport": [1280, 1080],
    "timeout": 30000,
    "humanize": 0.5
  },
  "proxy": {
    "enabled": true,
    "server": "http://proxy.example.com:8080",
    "username": "user",
    "password": "pass",
    "geoip": true
  },
  "contextPaths": []
}
プロキシの例

HTTP/HTTPS プロキシ:

{ "proxy": { "enabled": true, "server": "http://1.2.3.4:8080" } }

SOCKS5 プロキシ:

{ "proxy": { "enabled": true, "server": "socks5://1.2.3.4:1080" } }

認証あり(環境変数を使用):

{
  "proxy": {
    "enabled": true,
    "server": "${PROXY_SERVER}",
    "username": "${PROXY_USER}",
    "password": "${PROXY_PASS}",
    "geoip": true
  }
}

geoip: true を設定すると、プロキシ IP の位置情報に基づいてブラウザーのタイムゾーンと言語・地域設定が自動調整されます。

詳細はこちら

  • Camoufox - 検出防止機能を備えた Firefox ブラウザー
  • camoufox-js - JavaScript/TypeScript バインディング

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。