[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
co-authored by Crafter-feng
parent 675ddb8282
commit b015e70b9d
37 changed files with 2717 additions and 7 deletions
+56
View File
@@ -105,6 +105,60 @@ export default {
stop: 'Stop',
},
// MCP Management
mcp: {
title: 'MCP Servers',
loadFailed: 'Failed to load MCP servers',
reloadAll: 'Reload All',
refresh: 'Refresh',
total: 'Total',
connected: 'Connected',
disconnected: 'Disconnected',
tools: 'tools',
tool: 'Tools',
searchPlaceholder: 'Search servers...',
addServer: '+ Add Server',
zeroTools: '0 tools',
loading: 'Loading...',
empty: 'No MCP servers configured',
reloaded: 'Reloaded {server}',
reloadedAll: 'All MCP servers reloaded',
reloadFailed: 'Reload failed',
serverAdded: 'Server "{name}" added',
addFailed: 'Failed to add server',
serverUpdated: 'Server "{name}" updated',
updateFailed: 'Failed to update server',
saveFailed: 'Save failed',
serverRemoved: 'Removed "{name}"',
enabled: "Enabled {name}",
disabled: "Disabled {name}",
connectedStatus: 'Connected',
disconnectedStatus: 'Disconnected',
disabledStatus: 'Disabled',
toolList: 'Tool List',
count: ' ',
more: 'more',
removeFailed: 'Failed to remove server',
testOk: 'Test OK — {count} tools available',
testEmpty: 'Test returned no tools',
testFailed: 'Test failed',
edit: 'Edit',
test: 'Test',
reload: 'Reload',
remove: 'Remove',
confirmRemove: 'Remove server "{name}"?',
cancel: 'Cancel',
add: 'Add',
save: 'Save',
addTitle: 'Add MCP Server',
editTitle: 'Edit MCP Server',
invalidJson: 'Invalid JSON format',
invalidYaml: 'Invalid YAML format',
invalidConfig: 'Invalid configuration',
invalidServerConfig: 'Invalid server configuration',
missingCommandOrUrl: 'Must have command or url',
},
// Sidebar
sidebar: {
chat: 'Chat',
@@ -117,6 +171,7 @@ export default {
profiles: 'Profiles',
skills: 'Skills',
plugins: 'Plugins',
mcp: 'MCP',
memory: 'Memory',
logs: 'Logs',
usage: 'Usage',
@@ -236,6 +291,7 @@ export default {
compress: 'Run context compression while idle',
steer: 'Send steering text to the active bridge run',
destroy: 'Release the bridge agent for this session',
reloadMcp: 'Reload MCP servers',
},
attachFiles: 'Attach files',
autoPlaySpeech: 'Auto-play voice',