You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix Playwright MCP availability detection so pending or unavailable server status no longer enables browser automation hints, surface pending status in interactive session comments, and harden Docker verification so Playwright MCP/CLI availability is checked instead of only grepping for a registration.
Copy file name to clipboardExpand all lines: docs/DOCKER.hi.md
+45Lines changed: 45 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -115,6 +115,43 @@ claude
115
115
- ✅ प्रत्येक container की अपनी अलग-थलग authentication है
116
116
- ✅ Interactive authentication के बिना सफल Docker builds
117
117
118
+
## Docker में Playwright MCP State
119
+
120
+
Image build अब Claude और Codex दोनों के लिए Playwright MCP register करता है:
121
+
122
+
-`claude mcp add playwright -s user -- ...`
123
+
-`codex mcp add playwright -- ...`
124
+
125
+
CI workflow Docker image भी build करता है और verify करता है कि:
126
+
127
+
-`playwright --version` CLI fallback के रूप में काम करता है;
128
+
-`npx --no-install @playwright/mcp --help` MCP package को reinstall किए बिना काम करता है;
129
+
-`claude mcp list` Playwright server को connected/enabled दिखाता है, pending या unavailable नहीं;
130
+
-`codex mcp list` Playwright server को connected/enabled दिखाता है, pending या unavailable नहीं।
131
+
132
+
यदि running container में `codex mcp list` अभी भी `No MCP servers configured yet` दिखाता है, तो सबसे संभावित root cause host से mounted `/home/box/.codex` directory है। इस image में `HOME=/home/box` है, इसलिए `/home/box/.codex` mount करने से image-baked Codex config replace हो जाता है, जिसमें preconfigured MCP entries भी शामिल हैं।
133
+
134
+
इसका अर्थ है:
135
+
136
+
- published image सही हो सकती है;
137
+
- runtime container फिर भी Codex को unconfigured दिखा सकता है;
138
+
- अंतर persisted host state के container defaults को override करने से आता है।
139
+
140
+
इसे जल्दी confirm करने के लिए इन दो cases की तुलना करें:
141
+
142
+
```bash
143
+
# Host-mounted Codex state के बिना fresh container
144
+
docker run --rm -it konard/hive-mind:latest bash -lc 'codex mcp list'
145
+
146
+
# Host से persisted Codex state के साथ container
147
+
docker run --rm -it \
148
+
-v /root/.hive-mind/codex:/home/box/.codex \
149
+
konard/hive-mind:latest \
150
+
bash -lc 'codex mcp list'
151
+
```
152
+
153
+
यदि पहला command `playwright` दिखाता है और दूसरा नहीं, तो host-mounted Codex directory mismatch का source है।
154
+
118
155
## पूर्वापेक्षाएं
119
156
120
157
1.**Docker:** Docker Desktop या Docker Engine (version 20.10 या उच्चतर) install करें
docker run -it -v box-home:/home/box konard/hive-mind:latest
149
186
```
150
187
188
+
यदि persisted `/home/box/.codex/config.toml` किसी पुराने image से आया है, तो उसमें newer images द्वारा जोड़ी गई Playwright MCP registration नहीं हो सकती। Container start होने के बाद फिर से चलाएं:
जब `codex mcp list` में Playwright row नहीं होती और `@playwright/mcp` installed होता है, तब Hive Mind runtime पर भी यह default registration repair try करता है। यह existing pending, disabled, या customized Playwright row को overwrite नहीं करता; उन states के लिए MCP startup path को सीधे debug करना होगा।
Copy file name to clipboardExpand all lines: docs/DOCKER.md
+11-1Lines changed: 11 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -174,7 +174,12 @@ The image build now registers Playwright MCP for both Claude and Codex:
174
174
-`claude mcp add playwright -s user -- ...`
175
175
-`codex mcp add playwright -- ...`
176
176
177
-
The CI workflow also builds the Docker image and verifies that both `claude mcp list` and `codex mcp list` contain `playwright`.
177
+
The CI workflow also builds the Docker image and verifies that:
178
+
179
+
-`playwright --version` works as a CLI fallback;
180
+
-`npx --no-install @playwright/mcp --help` works without reinstalling the MCP package;
181
+
-`claude mcp list` reports the Playwright server as connected/enabled, not pending or unavailable;
182
+
-`codex mcp list` reports the Playwright server as connected/enabled, not pending or unavailable.
178
183
179
184
If you still reproduce `codex mcp list` showing `No MCP servers configured yet` in a running container, the most likely root cause is a mounted `/home/box/.codex` directory from the host. In this image `HOME=/home/box`, so mounting `/home/box/.codex` replaces the image-baked Codex config, including any preconfigured MCP entries.
180
185
@@ -255,6 +260,11 @@ Because this mount fully overrides the image's `/home/box/.codex` directory, it
Copy file name to clipboardExpand all lines: docs/DOCKER.ru.md
+45Lines changed: 45 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -115,6 +115,43 @@ claude
115
115
- ✅ Каждый контейнер имеет собственную изолированную аутентификацию
116
116
- ✅ Успешные сборки Docker без интерактивной аутентификации
117
117
118
+
## Состояние Playwright MCP в Docker
119
+
120
+
Сборка образа теперь регистрирует Playwright MCP и для Claude, и для Codex:
121
+
122
+
-`claude mcp add playwright -s user -- ...`
123
+
-`codex mcp add playwright -- ...`
124
+
125
+
CI workflow также собирает Docker-образ и проверяет, что:
126
+
127
+
-`playwright --version` работает как CLI fallback;
128
+
-`npx --no-install @playwright/mcp --help` работает без повторной установки MCP package;
129
+
-`claude mcp list` сообщает Playwright server как connected/enabled, а не pending или unavailable;
130
+
-`codex mcp list` сообщает Playwright server как connected/enabled, а не pending или unavailable.
131
+
132
+
Если в запущенном контейнере `codex mcp list` всё ещё показывает `No MCP servers configured yet`, наиболее вероятная причина — смонтированная с хоста директория `/home/box/.codex`. В этом образе `HOME=/home/box`, поэтому mount `/home/box/.codex` заменяет встроенную в образ Codex config, включая заранее настроенные MCP entries.
133
+
134
+
Это означает:
135
+
136
+
- опубликованный образ может быть корректным;
137
+
- runtime container всё равно может показывать Codex как unconfigured;
138
+
- отличие вызвано persisted host state, который переопределяет defaults контейнера.
139
+
140
+
Чтобы быстро проверить это, сравните два случая:
141
+
142
+
```bash
143
+
# Fresh container without host-mounted Codex state
144
+
docker run --rm -it konard/hive-mind:latest bash -lc 'codex mcp list'
145
+
146
+
# Container with persisted Codex state from host
147
+
docker run --rm -it \
148
+
-v /root/.hive-mind/codex:/home/box/.codex \
149
+
konard/hive-mind:latest \
150
+
bash -lc 'codex mcp list'
151
+
```
152
+
153
+
Если первая команда показывает `playwright`, а вторая нет, источник расхождения — смонтированная с хоста директория Codex.
154
+
118
155
## Предварительные требования
119
156
120
157
1.**Docker:** Установите Docker Desktop или Docker Engine (версия 20.10 или выше)
docker run -it -v box-home:/home/box konard/hive-mind:latest
149
186
```
150
187
188
+
Если persisted `/home/box/.codex/config.toml` пришёл из старого образа, в нём может не быть Playwright MCP registration, добавленной в новых образах. После запуска контейнера выполните заново:
Hive Mind также пытается выполнить этот default registration repair во время runtime, когда `codex mcp list` не содержит Playwright row и `@playwright/mcp` установлен. Он не перезаписывает существующую Playwright row в состоянии pending, disabled или с custom settings; такие состояния требуют прямой отладки MCP startup path.
0 commit comments