Repository navigation
Opt-in: use the WebSocket password OBS saved - #8
Conversation
With OBS_MCP_READ_OBS_CONFIG=true and no OBS_WEBSOCKET_PASSWORD, the server reads server_password from obs-websocket's config.json in OBS's own config directory (macOS, Windows, Linux, and the Linux Flatpak). A local agent can then connect without a copy of the password in its configuration. The server logs which file it used, never the value. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vjn8uBEa4mJshaQU3pFuqX
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6d5f6a92c6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| } | ||
| if (typeof config !== "object" || config === null) continue; | ||
| const { auth_required: authRequired, server_password: password } = config as Record<string, unknown>; | ||
| if (authRequired === false) return { kind: "no-auth", path }; |
There was a problem hiding this comment.
Keep searching after a no-auth config
On Linux systems retaining both native and Flatpak OBS profiles, a stale native config with auth_required: false causes this early return before the active Flatpak config is examined. If the running Flatpak OBS instance requires the password stored in the second candidate path, the client is constructed without it and every connection attempt fails authentication. Continue checking the remaining candidate paths for a password rather than treating the first no-auth file as authoritative.
Useful? React with 👍 / 👎.
Stacked on #7.
Why: Codex couldn't record the Siftable demo because the OBS WebSocket password wasn't in its environment, even though OBS keeps it on the same machine.
What:
OBS_MCP_READ_OBS_CONFIG=true(off by default). WhenOBS_WEBSOCKET_PASSWORDis unset, the server readsserver_passwordfrom obs-websocket'sconfig.json:~/Library/Application Support/obs-studio/plugin_config/obs-websocket/config.json%APPDATA%\obs-studio\...$XDG_CONFIG_HOMEor~/.config, then the Flatpak sandboxIf that file says authentication is off, no password is used. The server logs which file it read, never the value. The MCPB manifest gets a matching checkbox.
Tests: unit tests for paths, parsing, precedence and log redaction; an e2e test that authenticates the compiled server against a fake OBS using only a temporary config file.
npm run checkpasses (114 unit, 11 e2e).🤖 Generated with Claude Code
https://claude.ai/code/session_01Vjn8uBEa4mJshaQU3pFuqX