chrome-ai-bridge 2.3.9 → 2.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/extension/README.md +181 -0
- package/build/extension/background.mjs +1263 -0
- package/build/extension/debug-logger.mjs +148 -0
- package/build/extension/icons/icon-128.png +0 -0
- package/build/extension/icons/icon-16.png +0 -0
- package/build/extension/icons/icon-32.png +0 -0
- package/build/extension/icons/icon-48.png +0 -0
- package/build/extension/icons/icon.svg +19 -0
- package/build/extension/manifest.json +28 -0
- package/build/extension/relay-server.ts +505 -0
- package/build/extension/ui/connect.html +429 -0
- package/build/extension/ui/connect.js +491 -0
- package/package.json +2 -1
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# chrome-ai-bridge Extension
|
|
2
|
+
|
|
3
|
+
このChrome拡張機能は、chrome-ai-bridge MCPサーバーとChromeブラウザのタブを接続します。
|
|
4
|
+
|
|
5
|
+
## アーキテクチャ
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
chrome-ai-bridge MCPサーバー (プロセス1)
|
|
9
|
+
↓ WebSocket
|
|
10
|
+
Extension (TabShareExtension)
|
|
11
|
+
↓ chrome.debugger API
|
|
12
|
+
Chrome Tab #101 (ChatGPT)
|
|
13
|
+
|
|
14
|
+
chrome-ai-bridge MCPサーバー (プロセス2)
|
|
15
|
+
↓ WebSocket
|
|
16
|
+
Extension (TabShareExtension)
|
|
17
|
+
↓ chrome.debugger API
|
|
18
|
+
Chrome Tab #102 (Gemini)
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## インストール
|
|
22
|
+
|
|
23
|
+
### 1. ビルド
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
cd /path/to/chrome-ai-bridge
|
|
27
|
+
npm run build
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 2. 拡張機能をChromeにロード
|
|
31
|
+
|
|
32
|
+
1. Chromeを開く
|
|
33
|
+
2. `chrome://extensions/` にアクセス
|
|
34
|
+
3. 「デベロッパーモード」を有効化
|
|
35
|
+
4. 「パッケージ化されていない拡張機能を読み込む」をクリック
|
|
36
|
+
5. `build/extension/` ディレクトリを選択
|
|
37
|
+
|
|
38
|
+
### 3. 拡張機能IDを確認
|
|
39
|
+
|
|
40
|
+
インストール後、拡張機能のIDをメモしてください(例: `abcdefghijklmnopqrstuvwxyz`)。
|
|
41
|
+
|
|
42
|
+
## 使い方
|
|
43
|
+
|
|
44
|
+
### Claude Code設定
|
|
45
|
+
|
|
46
|
+
`~/.config/claude-code/config.json`に以下のように設定:
|
|
47
|
+
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"mcpServers": {
|
|
51
|
+
"chrome-ai-bridge-chatgpt": {
|
|
52
|
+
"command": "node",
|
|
53
|
+
"args": [
|
|
54
|
+
"/path/to/chrome-ai-bridge/scripts/cli.mjs",
|
|
55
|
+
"--attachTab=101"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
"chrome-ai-bridge-gemini": {
|
|
59
|
+
"command": "node",
|
|
60
|
+
"args": [
|
|
61
|
+
"/path/to/chrome-ai-bridge/scripts/cli.mjs",
|
|
62
|
+
"--attachTab=102"
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### MCPサーバー起動
|
|
70
|
+
|
|
71
|
+
1. Claude Codeを起動
|
|
72
|
+
2. MCPサーバーが自動的に起動し、WebSocket Relayサーバーが立ち上がります
|
|
73
|
+
3. ログに以下のようなメッセージが表示されます:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
[Extension Bridge] RelayServer started on port 12345
|
|
77
|
+
[Extension Bridge] Connection URL: ws://127.0.0.1:12345?token=...
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 拡張機能UI を開く
|
|
81
|
+
|
|
82
|
+
1. 拡張機能のアイコンをクリック、または直接URLを開く:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
chrome-extension://[EXTENSION_ID]/ui/connect.html?mcpRelayUrl=ws://127.0.0.1:12345&tabId=101
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
2. タブ選択UIで接続したいタブを選択
|
|
89
|
+
3. 「Connect to Selected Tab」をクリック
|
|
90
|
+
|
|
91
|
+
### URL指定で自動接続(推奨)
|
|
92
|
+
|
|
93
|
+
`--attachTabUrl` を使うと、拡張機能が URL に一致するタブを自動接続します。
|
|
94
|
+
一致タブがない場合に新規タブを開きたい場合は `--attachTabNew` を追加します。
|
|
95
|
+
|
|
96
|
+
例:
|
|
97
|
+
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"mcpServers": {
|
|
101
|
+
"chrome-ai-bridge-chatgpt": {
|
|
102
|
+
"command": "node",
|
|
103
|
+
"args": [
|
|
104
|
+
"/path/to/chrome-ai-bridge/scripts/cli.mjs",
|
|
105
|
+
"--attachTabUrl=https://chatgpt.com/",
|
|
106
|
+
"--attachTabNew"
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 接続確認
|
|
114
|
+
|
|
115
|
+
MCPサーバーのログに以下のメッセージが表示されれば成功:
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
[Extension Bridge] Extension connected to tab 101
|
|
119
|
+
[Extension Bridge] Puppeteer connected to Extension
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## ファイル構成
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
src/extension/
|
|
126
|
+
├── manifest.json # 拡張機能マニフェスト
|
|
127
|
+
├── background.mjs # Service Worker (TabShareExtension, RelayConnection)
|
|
128
|
+
├── ui/
|
|
129
|
+
│ ├── connect.html # タブ選択UI
|
|
130
|
+
│ └── connect.js # UIロジック
|
|
131
|
+
├── relay-server.ts # WebSocketサーバー (MCPサーバー側)
|
|
132
|
+
└── extension-transport.ts # Puppeteer Transport実装 (MCPサーバー側)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## トラブルシューティング
|
|
136
|
+
|
|
137
|
+
### Extension connection timeout
|
|
138
|
+
|
|
139
|
+
**原因**: 拡張機能がインストールされていないか、UIが開かれていない
|
|
140
|
+
|
|
141
|
+
**解決策**:
|
|
142
|
+
1. 拡張機能が正しくインストールされているか確認
|
|
143
|
+
2. connect.htmlを開いてタブを選択
|
|
144
|
+
|
|
145
|
+
### Invalid token
|
|
146
|
+
|
|
147
|
+
**原因**: MCPサーバーのトークンが一致しない
|
|
148
|
+
|
|
149
|
+
**解決策**:
|
|
150
|
+
1. MCPサーバーのログからトークンを確認
|
|
151
|
+
2. URLパラメータに正しいトークンを含める
|
|
152
|
+
|
|
153
|
+
### Tab not found
|
|
154
|
+
|
|
155
|
+
**原因**: 指定したタブIDが存在しない
|
|
156
|
+
|
|
157
|
+
**解決策**:
|
|
158
|
+
1. `chrome://inspect/#pages` でタブIDを確認
|
|
159
|
+
2. 正しいタブIDを指定
|
|
160
|
+
|
|
161
|
+
## セキュリティ
|
|
162
|
+
|
|
163
|
+
- WebSocketサーバーは `127.0.0.1` (loopback) のみリッスン
|
|
164
|
+
- トークン認証による接続保護
|
|
165
|
+
- chrome.debugger APIによる安全なタブアクセス
|
|
166
|
+
|
|
167
|
+
## 開発
|
|
168
|
+
|
|
169
|
+
### デバッグモード
|
|
170
|
+
|
|
171
|
+
Service Workerのコンソールでデバッグログを確認:
|
|
172
|
+
|
|
173
|
+
1. `chrome://extensions/` を開く
|
|
174
|
+
2. chrome-ai-bridge拡張機能の「Service Workerを検証」をクリック
|
|
175
|
+
3. DevToolsコンソールでログを確認
|
|
176
|
+
|
|
177
|
+
### 変更の反映
|
|
178
|
+
|
|
179
|
+
1. コードを変更
|
|
180
|
+
2. `npm run build` 実行
|
|
181
|
+
3. `chrome://extensions/` で拡張機能の「更新」ボタンをクリック
|