🙆‍♀️

Dev Container環境でSerena MCPのブラウザ自動起動を無効化する

に公開

Serena MCPはMCPサーバー起動時に毎回ダッシュボード画面がブラウザで起動します。


Serena MCPのダッシュボード画面

こちらのZenn記事では、グローバル設定ファイル~/.serena/serena_config.ymlで以下を設定することが推奨されています。

gui_log_window: false
web_dashboard: false

しかしグローバル設定ファイルに値を設定しているにも関わらず、Dev Container環境で毎回ブラウザが開いて困ったことはありませんか?
調べた結果、Dev Container特有の設定ファイルが原因でした。

この記事では、実際にこの問題を解決した方法を説明します。
Serena MCPやClaude Codeを使っている方で、同じ問題で困っている方の役に立てば嬉しいです。

問題の概要

ローカル環境では正常に動くweb dashboard無効化設定が、Dev Container環境では効果がなく、毎回ブラウザが自動で開く問題が起きます。

先述した通り、グローバル設定ファイル~/.serena/serena_config.ymlで以下を設定すれば解決するかと思っていたら、そもそもの話として設定ファイル~/.serena/serena_config.ymlが初期セットアップ時に作られていません。

node ➜ /workspaces/cc-vault (feature-subdomain-routing) $ cat ~/.serena/serena_config.yml
cat: /home/node/.serena/serena_config.yml: No such file or directory

一応.serenaディレクトリの中身を確認すると以下のようになっており、設定ファイルがないことが分かります。

node ➜ ~/.serena $ tree
.
├── language_servers
│   └── static
│       └── TypeScriptLanguageServer
│           └── ts-lsp
│               ├── package.json
│               └── package-lock.json
├── logs
│   └── 2025-09-27
│       ├── mcp_20250927-042226.txt
│       └── mcp_20250927-042419.txt
└── prompt_templates

27 directories, 130 files

原因の調査

ログファイルを確認すると、Dev Container環境では別の場所に設定ファイルが作られることが分かりました。

INFO  2025-09-27 04:22:26,496 [MainThread] serena.config.serena_config:from_config_file:409 - Serena configuration file not found at /home/node/.cache/uv/archive-v0/pv_EtR2hKCenH4xUkANAy/lib/python3.11/serena_config.docker.yml, autogenerating...
INFO  2025-09-27 04:22:26,496 [MainThread] serena.config.serena_config:generate_config_file:374 - Auto-generating Serena configuration file in /home/node/.cache/uv/archive-v0/pv_EtR2hKCenH4xUkANAy/lib/python3.11/serena_config.docker.yml
INFO  2025-09-27 04:22:26,499 [MainThread] serena.config.serena_config:from_config_file:413 - Loading Serena configuration from /home/node/.cache/uv/archive-v0/pv_EtR2hKCenH4xUkANAy/lib/python3.11/serena_config.docker.yml

Dev Container環境ではserena_config.docker.ymlが一時キャッシュディレクトリに作られることが確認できます。

解決方法

Dev Container環境でブラウザの自動起動を無効にする方法は2つあります。

Docker用設定ファイルの直接編集

実際にログで確認したパスの設定ファイルを見ると、web_dashboard: trueが設定されていました。

node ➜ /workspaces/cc-vault (feature-subdomain-routing) $ cat /home/node/.cache/uv/archive-v0/pv_EtR2hKCenH4xUkANAy/lib/python3.11/serena_config.docker.yml
gui_log_window: false
# [コメント部分は省略]

web_dashboard: false
# [以下省略]

この設定をweb_dashboard: falseに変更することで、ブラウザの自動起動が止まることを確認しました🎉

ただし、キャッシュディレクトリへの設定は環境を再構築した時に消える可能性があります。
動的にファイルを編集することも可能ですが、設定がとても面倒です…

MCP起動引数での制御

より確実な方法として、.mcp.jsonファイルで起動引数を指定できます。

{
  "mcpServers": {
    "serena": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/oraios/serena",
        "serena",
        "start-mcp-server",
        "--context",
        "ide-assistant",
        "--project",
        ".",
        "--enable-web-dashboard=false"
      ],
      "cwd": "."
    }
  }
}

参考情報

https://zenn.dev/soramarjr/articles/c0210f128a4d2a
https://github.com/oraios/serena

Discussion