This is a symptom familiar to anyone who connected Serena to Claude Code in several projects: you start a session — a Serena dashboard tab opens. I restarted the MCP server — another one. By the end of the day there are a dozen and a half identical tabs in the browser, and you have to close them manually.
Fixable with one line.
Solution
mkdir -p ~/.serena
Next, in the file ~/.serena/serena_config.yml add:
web_dashboard_open_on_launch: false
That’s it. The dashboard will continue to work, it will just stop popping up in the browser by itself.
Why does this happen
It’s not a bug, but a default. In Serena’s configuration template, the parameter web_dashboard_open_on_launch is set to True — meaning at MCP server startup the dashboard opens automatically, and this is intended as a convenience.
The problem is that in combination with the MCP agent, the server starts much more often than such logic would anticipate: for every new project, for every client restart, for every reconnected session. One “handy” opening becomes a flood of tabs.
The dashboard itself is useful — it shows current status and configuration (active tools, languages, enabled modes and contexts), history and statistics of tool calls, live logs, and it allows changing settings on the fly, editing configs and project memory, and stopping the MCP server. Don’t lose it — just open it on demand.
How to access the dashboard when you need it
Default address is http://localhost:24282/dashboard/index.html. If the port is busy or several Serena instances are running, it will pick the next free port above. You can also simply ask the agent: “open Serena dashboard.”
Since the file is open: what else is in serena_config.yml
This config is something many people see once in a lifetime — just in this kind of situation. It’s useful to know what else is there, because about half the keys fix adjacent irritants.
| Key | Default value | What it does |
|---|---|---|
web_dashboard |
True |
the web dashboard itself; false disables it entirely |
web_dashboard_open_on_launch |
True |
auto-open on launch — that notorious culprit |
web_dashboard_interface |
not set | how to display: browser, native window with tray icon, tray manager for multiple instances |
web_dashboard_listen_address |
127.0.0.1 |
address to listen on |
gui_log_window |
False |
legacy log window; mainly Windows, occasionally Linux |
log_level |
20 |
log level (20 = INFO) |
trace_lsp_communication |
False |
tracing language server communication |
tool_timeout |
240 |
maximum tool execution time, seconds |
default_max_tool_answer_chars |
150000 |
cap on tool answer size |
symbol_info_budget |
10 |
budget for symbol information — reduced on slow LSPs |
ignored_paths |
[] |
ignore paths in gitignore syntax |
excluded_tools / included_optional_tools |
[] |
disable extra tools or enable optional ones |
read_only_memory_patterns |
[] |
which project memory files the agent cannot edit |
project_serena_folder_location |
$projectDir/.serena |
where to put Serena project folder |
base_modes |
[interactive, editing] |
base operating modes |
Note that excluded_tools deserves special attention: Serena brings a sizable set of tools into the context, and if you don’t need some of them, removing them saves tokens on every request.
~/.serena/serena_config.yml is a global file that applies to all projects at once. That’s exactly what you need for auto-opening the dashboard, but if you tweak excluded_tools or ignored_paths, remember that per-project settings live elsewhere — in .serena/project.yml inside the project itself.
If there’s no config yet
The current Serena installation looks like this:
uv tool install -p 3.13 serena-agent
serena init
serena init creates ~/.serena/serena_config.yml from a template — it’s easier to run initialization once than to write the file by hand. Connecting to Claude Code:
# globally, project is determined by the current directory
claude mcp add --scope user serena -- serena start-mcp-server --context claude-code --project-from-cwd
# or for a specific project
claude mcp add serena -- serena start-mcp-server --context claude-code --project "$(pwd)"
In the original Japanese note, an alternative is mentioned — pass a flag to disable the dashboard at MCP server startup. In Serena’s current documentation I didn’t find such a flag: dashboard management is described specifically through config keys. So the reliable path is the config; if your flag works, write in the comments and I’ll add it.
A one-line tweak, but one that saves ten annoying keystrokes per day. Such things are worth setting up right after installing any MCP server — together with a check of which tools it brings into the context.
Forum topic
- Agent in “allow everything” mode: container, microVM, or separate machine
- Five days with a live token: how AI auto-fix brought injection back to GitHub Actions
Sources
- Original Coji Mizoguchi note on Zenn
- oraios/serena — project repository
- serena_config.yml template in the repository
- Serena Documentation: dashboard and GUI tools
- Serena Documentation: client connections
What other MCP server defaults do you disable right after installation? I’m compiling a list of little things like auto-starting interfaces, excessive logging, tools that eat context and are never invoked. It’d be interesting to collect a common list — what do you modify first?
