Environment
- OS: Ubuntu 24.04.4 LTS (Noble Numbat), Linux 6.8.0-111-generic x86_64
- Rust: rustc 1.96.0 (ac68faa20 2026-05-25)
- codewhale: 0.8.53 (1d50ed9), built from branch
codex/v0.9.0-stewardship
Summary
When both a global MCP config (~/.codewhale/mcp.json) and a project-level MCP config (.codewhale/mcp.json) are present, the TUI status bar displays the wrong MCP server count — it shows only the global count (e.g. 2) instead of the merged total (3). The backend merge works correctly: codewhale mcp list reports all three servers as [enabled] and they are all functional. The bug is isolated to the TUI status bar rendering / counting logic.
Steps to Reproduce
- Configure 2 MCP servers in
~/.codewhale/mcp.json:
{
"servers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest", "--browser-url=http://127.0.0.1:9222"]
},
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"],
"env": {
"CONTEXT7_LIBRARIES": "laravel,element-plus,tailwindcss,vuejs,vue-router,pinia,echarts,vant"
}
}
}
}
- Configure 1 additional MCP server in the workspace
.codewhale/mcp.json:
{
"servers": {
"laravel-boost": {
"command": "php",
"args": ["artisan", "boost:mcp"]
}
}
}
-
Start codewhale-tui from that workspace.
-
Observe the MCP count in the TUI status bar.
Expected Behavior
The TUI status bar should display the merged MCP server count: 3 (2 global + 1 project-level). The count should reflect the final merged MCPRegistry / runtime server list, not a single config source.
Actual Behavior
The TUI status bar displays 2 MCP servers — it only counts the global config entries and silently omits the project-level laravel-boost server.
All three servers are actually functional:
$ codewhale mcp list
MCP servers (3):
- chrome-devtools [enabled] npx -y chrome-devtools-mcp@latest --browser-url=http://127.0.0.1:9222
- laravel-boost [enabled] php artisan boost:mcp
- context7 [enabled] npx -y @upstash/context7-mcp@latest
Invoking mcp_laravel--boost_database--schema to query database tables also returns correct results, confirming the project-level server is fully operational.
Likely Cause
The TUI status bar likely reads MCP server metadata from a single config source (e.g. the global mcp.json path) rather than from the merged runtime server registry. The count should be derived from the same merged list that codewhale mcp list uses.
Use Case
A Laravel workspace ships with a laravel-boost MCP server (php artisan boost:mcp) providing database schema inspection, log reading, and documentation search. Users rely on the TUI status bar to quickly verify their MCP servers are loaded. When the count is wrong, it creates confusion about whether the project-level server is actually active.
References
codewhale mcp list (CLI) correctly reports 3 merged servers — can serve as a reference for the correct merged list
- The previous issue about project-level MCP config being silently ignored was resolved (back-end merge now works); this is a follow-up display bug in the TUI layer
环境
- OS: Ubuntu 24.04.4 LTS (Noble Numbat), Linux 6.8.0-111-generic x86_64
- Rust: rustc 1.96.0 (ac68faa20 2026-05-25)
- codewhale: 0.8.53 (1d50ed9), built from branch
codex/v0.9.0-stewardship
概述
当同时存在全局 MCP 配置(~/.codewhale/mcp.json)和项目级 MCP 配置(.codewhale/mcp.json)时,TUI 状态栏显示的 MCP 服务器数量不正确——只统计全局配置的数量(如 2 个),而非合并后的总数(3 个)。后端合并逻辑正常:codewhale mcp list 正确列出三个服务器均为 [enabled],且均可正常调用。Bug 仅存在于 TUI 状态栏的渲染/计数逻辑中。
复现步骤
- 在
~/.codewhale/mcp.json 中配置 2 个 MCP 服务器:
{
"servers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest", "--browser-url=http://127.0.0.1:9222"]
},
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"],
"env": {
"CONTEXT7_LIBRARIES": "laravel,element-plus,tailwindcss,vuejs,vue-router,pinia,echarts,vant"
}
}
}
}
- 在工作区
.codewhale/mcp.json 中额外配置 1 个 MCP 服务器:
{
"servers": {
"laravel-boost": {
"command": "php",
"args": ["artisan", "boost:mcp"]
}
}
}
-
从该工作区启动 codewhale-tui。
-
观察 TUI 状态栏中的 MCP 数量。
期望行为
TUI 状态栏应显示合并后的 MCP 服务器数量:3(2 个全局 + 1 个项目级)。计数应源于合并后的 MCPRegistry 或运行时服务器列表,而非单一配置源。
实际行为
TUI 状态栏显示 MCP 数量为 2——仅统计了全局配置条目,静默忽略了项目级的 laravel-boost。
实际上三个服务器全部可用:
$ codewhale mcp list
MCP servers (3):
- chrome-devtools [enabled] npx -y chrome-devtools-mcp@latest --browser-url=http://127.0.0.1:9222
- laravel-boost [enabled] php artisan boost:mcp
- context7 [enabled] npx -y @upstash/context7-mcp@latest
通过 mcp_laravel--boost_database--schema 工具实际查询数据库表结构也能正常返回结果,证明项目级服务器完全可用。
可能原因
TUI 状态栏在渲染 MCP 数量时可能是从单一配置源(如全局 mcp.json 路径)读取元数据,而非从合并后的运行时服务器注册表获取。计数应与 codewhale mcp list 使用的合并列表保持一致。
使用场景
Laravel 工作区自带 laravel-boost MCP 服务器(php artisan boost:mcp),提供数据库 schema 查询、日志读取和文档检索等功能。用户依赖 TUI 状态栏快速确认 MCP 服务器是否已加载。数量显示错误会导致用户疑惑项目级服务器是否实际激活。
相关
codewhale mcp list(CLI)正确报告 3 个合并服务器 —— 可作为正确合并列表的参考实现
- 此前项目级 MCP 配置被静默忽略的问题已修复(后端合并正常);本 issue 是 TUI 层的后续显示 bug
Environment
codex/v0.9.0-stewardshipSummary
When both a global MCP config (
~/.codewhale/mcp.json) and a project-level MCP config (.codewhale/mcp.json) are present, the TUI status bar displays the wrong MCP server count — it shows only the global count (e.g. 2) instead of the merged total (3). The backend merge works correctly:codewhale mcp listreports all three servers as[enabled]and they are all functional. The bug is isolated to the TUI status bar rendering / counting logic.Steps to Reproduce
~/.codewhale/mcp.json:{ "servers": { "chrome-devtools": { "command": "npx", "args": ["-y", "chrome-devtools-mcp@latest", "--browser-url=http://127.0.0.1:9222"] }, "context7": { "command": "npx", "args": ["-y", "@upstash/context7-mcp@latest"], "env": { "CONTEXT7_LIBRARIES": "laravel,element-plus,tailwindcss,vuejs,vue-router,pinia,echarts,vant" } } } }.codewhale/mcp.json:{ "servers": { "laravel-boost": { "command": "php", "args": ["artisan", "boost:mcp"] } } }Start
codewhale-tuifrom that workspace.Observe the MCP count in the TUI status bar.
Expected Behavior
The TUI status bar should display the merged MCP server count: 3 (2 global + 1 project-level). The count should reflect the final merged
MCPRegistry/ runtime server list, not a single config source.Actual Behavior
The TUI status bar displays 2 MCP servers — it only counts the global config entries and silently omits the project-level
laravel-boostserver.All three servers are actually functional:
Invoking
mcp_laravel--boost_database--schemato query database tables also returns correct results, confirming the project-level server is fully operational.Likely Cause
The TUI status bar likely reads MCP server metadata from a single config source (e.g. the global
mcp.jsonpath) rather than from the merged runtime server registry. The count should be derived from the same merged list thatcodewhale mcp listuses.Use Case
A Laravel workspace ships with a
laravel-boostMCP server (php artisan boost:mcp) providing database schema inspection, log reading, and documentation search. Users rely on the TUI status bar to quickly verify their MCP servers are loaded. When the count is wrong, it creates confusion about whether the project-level server is actually active.References
codewhale mcp list(CLI) correctly reports 3 merged servers — can serve as a reference for the correct merged list环境
codex/v0.9.0-stewardship概述
当同时存在全局 MCP 配置(
~/.codewhale/mcp.json)和项目级 MCP 配置(.codewhale/mcp.json)时,TUI 状态栏显示的 MCP 服务器数量不正确——只统计全局配置的数量(如 2 个),而非合并后的总数(3 个)。后端合并逻辑正常:codewhale mcp list正确列出三个服务器均为[enabled],且均可正常调用。Bug 仅存在于 TUI 状态栏的渲染/计数逻辑中。复现步骤
~/.codewhale/mcp.json中配置 2 个 MCP 服务器:{ "servers": { "chrome-devtools": { "command": "npx", "args": ["-y", "chrome-devtools-mcp@latest", "--browser-url=http://127.0.0.1:9222"] }, "context7": { "command": "npx", "args": ["-y", "@upstash/context7-mcp@latest"], "env": { "CONTEXT7_LIBRARIES": "laravel,element-plus,tailwindcss,vuejs,vue-router,pinia,echarts,vant" } } } }.codewhale/mcp.json中额外配置 1 个 MCP 服务器:{ "servers": { "laravel-boost": { "command": "php", "args": ["artisan", "boost:mcp"] } } }从该工作区启动
codewhale-tui。观察 TUI 状态栏中的 MCP 数量。
期望行为
TUI 状态栏应显示合并后的 MCP 服务器数量:3(2 个全局 + 1 个项目级)。计数应源于合并后的
MCPRegistry或运行时服务器列表,而非单一配置源。实际行为
TUI 状态栏显示 MCP 数量为 2——仅统计了全局配置条目,静默忽略了项目级的
laravel-boost。实际上三个服务器全部可用:
通过
mcp_laravel--boost_database--schema工具实际查询数据库表结构也能正常返回结果,证明项目级服务器完全可用。可能原因
TUI 状态栏在渲染 MCP 数量时可能是从单一配置源(如全局
mcp.json路径)读取元数据,而非从合并后的运行时服务器注册表获取。计数应与codewhale mcp list使用的合并列表保持一致。使用场景
Laravel 工作区自带
laravel-boostMCP 服务器(php artisan boost:mcp),提供数据库 schema 查询、日志读取和文档检索等功能。用户依赖 TUI 状态栏快速确认 MCP 服务器是否已加载。数量显示错误会导致用户疑惑项目级服务器是否实际激活。相关
codewhale mcp list(CLI)正确报告 3 个合并服务器 —— 可作为正确合并列表的参考实现