[codex] fix MCP management lifecycle (#1144)

* feat(mcp): add MCP server management UI

- Server CRUD: add/edit/remove with YAML/JSON Monaco editor
- raw_config passthrough: zero field loss on edit/toggle
- tool_details embedding: single-request card data (1+N → 1)
- Auto-retry exponential backoff (2s→32s, max 5 retries)
- Route safety guards (hasRoute) for dynamic sidebar
- i18n: 9 languages (de/en/es/fr/ja/ko/pt/zh/zh-TW)
- 19 unit tests + 8 UX browser tests
- 35 files, +2933 lines

* fix mcp management lifecycle

---------

Co-authored-by: Crafter-feng <succeed_happu@163.com>
This commit is contained in:
ekko
2026-05-30 11:06:08 +08:00
committed by GitHub
parent 675ddb8282
commit b015e70b9d
37 changed files with 2717 additions and 7 deletions
+56
View File
@@ -106,6 +106,60 @@ export default {
},
// 側邊欄
// MCP 管理
mcp: {
title: 'MCP 伺服器',
loadFailed: '載入 MCP 伺服器失敗',
reloadAll: '全部重載',
refresh: '重新整理',
total: '總計',
connected: '已連線',
disconnected: '未連線',
tools: '工具',
tool: '工具',
searchPlaceholder: '搜尋伺服器...',
addServer: '+ 新增伺服器',
zeroTools: '0 個工具',
loading: '載入中...',
empty: '暫無 MCP 伺服器設定',
reloaded: '已重載 {server}',
reloadedAll: '所有 MCP 伺服器已重載',
reloadFailed: '重載失敗',
serverAdded: '伺服器 "{name}" 已新增',
addFailed: '新增伺服器失敗',
serverUpdated: '伺服器 "{name}" 已更新',
updateFailed: '更新伺服器失敗',
saveFailed: '儲存失敗',
serverRemoved: '已移除 "{name}"',
enabled: "已啟用 {name}",
disabled: "已禁用 {name}",
connectedStatus: '已連線',
disconnectedStatus: '未連線',
disabledStatus: '已停用',
toolList: '工具列表',
count: '個',
more: '更多',
removeFailed: '移除伺服器失敗',
testOk: '測試成功 — {count} 個工具可用',
testEmpty: '測試未回傳工具',
testFailed: '測試失敗',
edit: '編輯',
test: '測試',
reload: '重載',
remove: '移除',
confirmRemove: '確認刪除伺服器 "{name}"',
cancel: '取消',
add: '新增',
save: '儲存',
addTitle: '新增 MCP 伺服器',
editTitle: '編輯 MCP 伺服器',
invalidJson: 'JSON 格式錯誤',
invalidYaml: 'YAML 格式錯誤',
invalidConfig: '配置格式錯誤',
invalidServerConfig: '伺服器配置無效',
missingCommandOrUrl: '必須包含 command 或 url',
},
sidebar: {
chat: '對話',
search: '搜尋',
@@ -116,6 +170,7 @@ export default {
models: '模型',
profiles: '使用者',
plugins: '插件',
mcp: 'MCP',
skills: '技能',
memory: '記憶',
logs: '日誌',
@@ -235,6 +290,7 @@ export default {
compress: '空閒時觸發上下文壓縮',
steer: '向目前 Bridge 執行傳送引導文字',
destroy: '釋放目前會話的 Bridge Agent',
reloadMcp: '重載 MCP 伺服器',
},
attachFiles: '新增附件',
autoPlaySpeech: '自動播放語音',