Bridge MCP について
Bridge MCPは、ローカルエージェントを介してAIクライアントからWindows PCを自動操作するMCPサーバーです。アプリ、入力、画面、ブラウザー、システムを制御し、危険なコマンドには承認を求められます。
主な機能
- 01デスクトップアプリの起動と管理
- 02マウス、キーボード、クリップボードの自動操作
- 03画面キャプチャとUI要素の検出
- 04ChromeとPlaywrightの操作
- 05コマンド実行とファイル管理
- 06危険なコマンドへの承認要求
活用シーン
- 01デスクトップアプリの反復タスクの自動化
- 02画面の確認とUIコントロールの操作
- 03AIクライアントからのブラウザーワークフロー実行
- 04リスクのあるシステムコマンドの確認
MCP 対応
Windowsデスクトップ制御、ブラウザー自動化、リソース、ワークフロープロンプトをMCPクライアントに公開します。MCPサーバーは登録済みのローカルエージェントにコマンドを中継し、公開したコールバックURL経由のリモートアクセスにも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🌉 Bridge MCP
あらゆる AI のための汎用 PC 操作
あらゆる AI に Windows PC の完全な操作権を付与します
機能 • クイックスタート • 設定 • ツール • トラブルシューティング • コントリビューション
🔄 永続化の仕組み
Bridge MCP v2.0 は、エージェントの登録情報を永続的な JSON ファイルに保存します。
- Windows:
%APPDATA%\bridge-mcp\agents.json - Linux/Mac:
~/.config/bridge-mcp/agents.json
これにより、次のことが可能になります。
- ✅ 一度登録すれば、ずっと使えます
- ✅ Claude Code のセッションを再起動しても維持されます
- ✅ コンピューターを再起動しても維持されます
- ✅ すべての AI クライアントで利用できます
初回セットアップ
- ローカルエージェントを起動します。
cd Bridge-MCP
python local_agent.py
-
エージェントが自動的に登録されます。手動で登録する必要はありません。
-
任意の Claude セッションで確認します。
Use list_agents() to see registered agents
トラブルシューティング
「No agents connected」と表示される場合:
- local_agent.py が実行中か確認します。ターミナルで実行されている必要があります
- ヘルス状態を確認します。
check_agent_health()ツールを使用します - 手動で登録します。
register_agent("local", "http://127.0.0.1:8006", "My PC")を使用します
ローカルエージェントをバックグラウンドサービスとして実行する
常時アクセスできるようにするには、local_agent を Windows サービスとしてインストールします。
python install_service.py install
python install_service.py start
削除するには:
python install_service.py stop
python install_service.py remove
🎯 Bridge MCP とは?
Bridge MCP は、あらゆる AI に Windows PC の完全な操作権を付与する Model Context Protocol(MCP) サーバーです。Claude、ChatGPT、Cursor、Gemini など、MCP 対応の AI であれば、Bridge MCP を使って次の操作ができます。
- 🖥️ アプリケーションを操作 - あらゆるアプリの起動、切り替え、サイズ変更、終了
- 🖱️ 入力を自動化 - マウスクリック、キーボード入力、ホットキー、スクロール
- 📸 画面を確認 - スクリーンショット、UI 要素の検出、デスクトップの状態確認
- 🌐 Web を閲覧 - Chrome の完全な自動化と操作
- ⚡ コマンドを実行 - PowerShell、CMD、ファイル操作
- 📋 クリップボードを管理 - コピー、貼り付け、クリア
AI にコンピューターを操作するための目と手を与えるようなものです。
✨ 機能
| カテゴリ | ツール | 説明 |
|---|---|---|
| 🚀 アプリ制御 | 8 個のツール | アプリケーションの起動、切り替え、終了、サイズ変更、最小化、最大化 |
| 🖱️ マウスとキーボード | 10 個のツール | クリック、入力、ホットキー、スクロール、ドラッグ、カーソル移動 |
| 📸 画面キャプチャ | 7 個のツール | スクリーンショット、デスクトップの状態確認、UI 要素の検索 |
| ⚡ システム | 8 個のツール | PowerShell、CMD、ファイルの読み取りと書き込み、システム情報 |
| 🌐 ブラウザー | 15 個のツール | Chrome の操作、タブ、ナビゲーション、Web スクレイピング |
| 📋 クリップボード | 3 個のツール | クリップボードのコピー、貼り付け、クリア |
| 🔧 ユーティリティ | 5 個以上のツール | 待機、ダイアログ、アクションシーケンス |
合計:PC の完全な自動化を実現する、40 個以上の強力なツール!
🏗️ アーキテクチャ
Bridge MCP は、プラットフォーム間で動作するリレーアーキテクチャを使用します。
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Any AI │ │ Cloud Relay │ │ Your Windows │
│ (Claude, etc.) │◄───────►│ (bridge_mcp) │◄───────►│ PC (Agent) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
- bridge_mcp.py - MCP サーバー(ローカルまたは FastMCP Cloud 上で実行)
- local_agent.py - コマンドを実行する PC 上の HTTP サーバー(ポート 8006)
🔒 エンタープライズ級のセキュリティ
Bridge MCP 2.0 には、次の機能が含まれています。
- 認証トークン: 不正アクセスを防ぐため、安全な Bearer トークンを使用します。
- 自動設定: トークンは自動生成され、
agents.jsonに保存されます。
🌐 次世代のブラウザー自動化
Playwright を活用することで、Bridge MCP では次のことが可能です。
- クリックと入力: Web サイト上のあらゆる要素を操作します。
- セマンティックな理解: ページの内容をプログラムで読み取ります。
- ヘッドレスモード: 自動化を非表示または表示状態で実行します。
🧠 セマンティックコンピュータービジョン
Bridge MCP がアプリを「認識」します:
- UI ツリー: Windows アプリのアクセシビリティツリーを読み取れます。
- 高精度: ボタンの正確な位置を把握します(ピクセルを推測する必要はありません)。
🛡️ セーフティセンチネル(人間による確認)
Bridge MCP で、操作をあなた自身で管理できるようになりました:
- コマンドのインターセプト: ファイルへの書き込みやシェルスクリプトの実行など、危険なコマンドはデフォルトでブロックされます。
- 承認オーバーレイ: 承認リクエストは AI アクティビティオーバーレイに直接、次の 3 つの選択肢とともに表示されます:
- ✓ APPROVE - このコマンドを 1 回実行します
- ✗ DENY - このコマンドをブロックします
- ✓ ALWAYS APPROVE - セーフモードを無効にし、以降のすべてのコマンドを承認します
- ダッシュボードでの管理: 保留中のリクエストをすべて
http://localhost:8006で確認できます - セーフモードの切り替え: Web ダッシュボードからいつでもセーフモードをオン/オフにできます
- 安心して利用: エージェントがファイルを削除する心配をせずに、実行したままにできます。
👁️ ターミネータービジョン(ライブ監視)
AI が見ているものをリアルタイムで確認できます:
- ライブストリーム: ダッシュボードには、デスクトップの低遅延 1080p MJPEG ストリームが表示されます。
- セマンティックオーバーレイ: AI が検出したすべてのボタン、リンク、ウィンドウが、緑色のバウンディングボックスで強調表示されます。
- 即時デバッグ: AI が正しい「Submit」ボタンを見つけたことを視覚的に確認できます。
📚 MCP 仕様を完全サポート
Bridge MCP は、Model Context Protocol の完全な仕様を実装するようになりました:
Resources API
デスクトップデータをアドレス指定可能なリソースとして公開します:
desktop://screenshot/latest- 現在のスクリーンショットdesktop://windows- 開いているウィンドウの一覧desktop://logs- エージェントのコマンドログfile:///{path}- デスクトップ上の任意のファイルを読み取りますdesktop://session/context- 最近のセッション履歴
Prompts API
ワンクリックで自動化できる、事前構築済みのワークフローテンプレート:
automate_desktop_task- 手順に沿ったタスクの自動化debug_error- 対話形式でのエラーのデバッグweb_automation- Playwright を使った Web ワークフロー
セッションメモリ
コンテキストを失わずに利用できます:
- 再起動後も直近 100 件のコマンドを保存します
- AI に最近のセッション履歴を提供します
- 「中断したところから再開する」ワークフローを実現します
🚀 クイックスタート
ステップ 1:リポジトリをクローンする
git clone https://github.com/BarhamAgha1/Bridge-MCP.git
cd Bridge-MCP
ステップ 2:依存関係をインストールする
pip install -r requirements-local.txt
注: Playwright ブラウザー(約 100 MB)は初回使用時に自動インストールされるため、手動でのセットアップは不要です!
ステップ 3:ローカルエージェントを起動する
python local_agent.py
このターミナルは開いたままにしてください!エージェントに次のように表示されます:
Bridge MCP Local Agent running on http://127.0.0.1:8006
ステップ 4:AI クライアントを設定する
Claude Desktop、Cursor、または VS Code の設定方法については、以下の設定をご覧ください。
ステップ 5:エージェントを登録する
AI との会話で、ローカルエージェントを登録します:
Use register_agent with:
- agent_id: "my-pc"
- callback_url: "http://127.0.0.1:8006"
- agent_name: "My Windows PC"
ステップ 6:操作を開始する!
screenshot()、click(100, 200)、type_text("Hello")、app_launch("notepad") などのツールを使います。
🔧 設定
Claude Desktop
-
%APPDATA%\Claude\claude_desktop_config.jsonにある設定ファイルを開きます -
Bridge MCP を追加します:
{
"mcpServers": {
"bridge-mcp": {
"command": "python",
"args": ["C:\\Users\\YourName\\Path\\To\\Bridge-MCP\\bridge_mcp.py"]
}
}
}
⚠️ 重要: パスを、リポジトリをクローンした実際の場所に置き換えてください!
パスの例:
C:\\Users\\PC\\Desktop\\Bridge-MCP\\bridge_mcp.pyD:\\Projects\\Bridge-MCP\\bridge_mcp.py
- Claude Desktop を完全に再起動します(終了してから、もう一度起動します)
Cursor
Cursor の環境設定にある MCP 設定に、同じ形式で追加します。
VS Code + Claude Code
プロジェクトに .vscode/mcp.json を作成します:
{
"mcpServers": {
"bridge-mcp": {
"command": "python",
"args": ["C:\\Users\\YourName\\Path\\To\\Bridge-MCP\\bridge_mcp.py"]
}
}
}
リモートアクセス(任意)
どこからでも PC を操作できるようにするには、ngrok を使ってローカルエージェントを公開します:
ngrok http 8006
その後、エージェント登録時に ngrok の URL(例:https://xxxx.ngrok.io)を callback_url として指定します。
🛠️ 利用可能なツール
🚀 アプリ制御ツール
| ツール | 説明 | 例 |
|---|---|---|
app_launch | アプリケーションを起動 | app_launch("notepad") |
app_switch | 開いているアプリに切り替え | app_switch("Chrome") |
app_close | アプリケーションを終了 | app_close("notepad") |
app_list | 開いているすべてのアプリを一覧表示 | app_list() |
🖱️ 入力ツール(マウスとキーボード)
| ツール | 説明 | 例 |
|---|---|---|
click | 座標をクリック | click(500, 300) |
double_click | ダブルクリック | double_click(500, 300) |
right_click | 右クリック | right_click(500, 300) |
type_text | テキストを入力 | type_text("Hello World!") |
press_key | キーを押す | press_key("enter") |
hotkey | キーボードショートカット | hotkey("ctrl,c") |
scroll | スクロール | scroll("down", 3) |
drag | ドラッグ&ドロップ | drag(100, 100, 500, 500) |
move_mouse | カーソルを移動 | move_mouse(500, 300) |
📸 画面ツール
| ツール | 説明 | 例 |
|---|---|---|
screenshot | スクリーンショットを撮影 | screenshot() |
get_desktop_state | デスクトップの全状態を取得 | get_desktop_state() |
get_screen_size | 画面サイズを取得 | get_screen_size() |
get_mouse_position | カーソル位置を取得 | get_mouse_position() |
⚡ システムツール
| ツール | 説明 | 例 |
|---|---|---|
run_powershell | PowerShellを実行 | run_powershell("Get-Process") |
run_cmd | CMDコマンドを実行 | run_cmd("dir") |
file_read | ファイルを読み取る | file_read("C:/test.txt") |
file_write | ファイルに書き込む | file_write("C:/test.txt", "Hello") |
file_list | ディレクトリを一覧表示 | file_list("C:/Users") |
🌐 ブラウザツール(Chrome)
| ツール | 説明 | 例 |
|---|---|---|
chrome_open | Chromeを開く | chrome_open("https://google.com") |
chrome_navigate | URLに移動 | chrome_navigate("https://example.com") |
🌐 ブラウザツール(Playwright - 高度な操作)
| ツール | 説明 | 例 |
|---|---|---|
browser_navigate | URLに移動 | browser_navigate("google.com") |
browser_click | 要素をクリック(CSS) | browser_click("#submit-btn") |
browser_type | 要素にテキストを入力 | browser_type("#search", "hello") |
browser_press | キーを押す | browser_press("Enter") |
browser_content | ページのテキストを取得 | browser_content() |
browser_screenshot | ブラウザのスクリーンショット | browser_screenshot() |
📋 クリップボードツール
| ツール | 説明 | 例 |
|---|---|---|
clipboard_copy | クリップボードにコピー | clipboard_copy("Hello") |
clipboard_paste | クリップボードの内容を取得 | clipboard_paste() |
💡 使用例
例 1:メモ帳を開いてテキストを書く
User: Open notepad and write "Hello from AI!"
AI uses:
1. app_launch("notepad")
2. wait(1)
3. type_text("Hello from AI!")
例 2:スクリーンショットを撮る
User: What's on my screen right now?
AI uses:
1. screenshot()
2. [AI analyzes the image and describes what it sees]
例 3:Googleで検索する
User: Search for "Bridge MCP" on Google
AI uses:
1. chrome_open("https://google.com")
2. type_text("Bridge MCP")
3. press_key("enter")
🔧 トラブルシューティング
Claude Desktopに「サーバーが切断されました」と表示される
-
パスを確認する - 設定内のパスが実際の
bridge_mcp.pyファイルを指していることを確認してください。パスは絶対パスで指定し、JSONでは二重バックスラッシュ(\\)を使用する必要があります。 -
手動でテストする - コマンドプロンプトを開き、次を実行します:
cd "C:\path\to\Bridge-MCP"
python bridge_mcp.py
実行が継続し、すぐに終了しないことを確認してください。停止するにはCtrl+Cを押します。
- 依存関係をインストールする:
pip install fastmcp httpx
- Claude Desktopを再起動する - 設定を変更した後は、完全に終了してから再度開いてください。
ローカルエージェントがコマンドを受信しない
local_agent.pyがターミナルで実行中であることを確認してください(ターミナルを開いたままにしてください)。- エージェントの登録時にコールバックURLが正しいことを確認してください。
- ローカルで使用する場合:
http://127.0.0.1:8006 - リモートアクセスの場合:ngrok(
ngrok http 8006)を使用し、ngrokのURLを指定してください。
「エージェントが接続されていません」エラー
まずローカルエージェントを登録する必要があります:
register_agent("my-pc", "http://127.0.0.1:8006", "My PC")
Windows での Unicode/絵文字エラー
local_agent.py が Unicode エラーでクラッシュする場合、ターミナルが絵文字に対応していない可能性があります。この問題は最新バージョンで修正されています。
☁️ FastMCP Cloud へのデプロイ
Bridge MCP は、簡単にアクセスできるよう FastMCP Cloud にデプロイできます。
- このリポジトリをフォークします
- fastmcp.cloud にアクセスします
- GitHub でサインインします
- フォークしたリポジトリからプロジェクトを作成します
- エントリーポイントを
bridge_mcp.pyに設定します - デプロイします!
MCP は次の場所で利用できます:https://your-project.fastmcp.app/mcp
🤝 コントリビューション
コントリビューションを歓迎します!次の方法でご協力いただけます。
- リポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
コントリビューションのアイデア
- ブラウザーの対応を追加する(Firefox、Edge)
- Linux の対応を追加する
- macOS の対応を追加する
- 自動化ツールを追加する
- UI 要素の検出を改善する
- OCR 機能を追加する
📜 ライセンス
このプロジェクトは MIT ライセンスのもとで公開されています。詳細は LICENSE ファイルをご覧ください。
🙏 謝辞
👤 作者
Barham Agha
- GitHub: @BarhamAgha1
⭐ このプロジェクトが役に立ったら、スターを付けてください! ⭐
AI コミュニティのために ❤️ を込めて作成
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。