[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
@@ -105,6 +105,60 @@ export default {
expired: 'Expirado',
},
// Gestao de MCP
mcp: {
title: 'Servidores MCP',
loadFailed: 'Falha ao carregar servidores MCP',
reloadAll: 'Recarregar todos',
refresh: 'Atualizar',
total: 'Total',
connected: 'Conectado',
disconnected: 'Desconectado',
tools: 'ferramentas',
tool: 'Ferramentas',
searchPlaceholder: 'Pesquisar servidores...',
addServer: '+ Adicionar servidor',
zeroTools: '0 ferramentas',
loading: 'Carregando...',
empty: 'Nenhum servidor MCP configurado',
reloaded: '{server} recarregado',
reloadedAll: 'Todos os servidores MCP recarregados',
reloadFailed: 'Falha ao recarregar',
serverAdded: 'Servidor "{name}" adicionado',
addFailed: 'Falha ao adicionar servidor',
serverUpdated: 'Servidor "{name}" atualizado',
updateFailed: 'Falha ao atualizar servidor',
saveFailed: 'Falha ao salvar',
serverRemoved: '"{name}" removido',
enabled: "Habilitado: {name}",
disabled: "Desabilitado: {name}",
connectedStatus: 'Conectado',
disconnectedStatus: 'Desconectado',
disabledStatus: 'Desativado',
toolList: 'Lista de ferramentas',
count: ' ',
more: 'mais',
removeFailed: 'Falha ao remover servidor',
testOk: 'Teste OK — {count} ferramentas disponiveis',
testEmpty: 'O teste nao retornou ferramentas',
testFailed: 'Falha no teste',
edit: 'Editar',
test: 'Testar',
reload: 'Recarregar',
remove: 'Remover',
confirmRemove: 'Remover servidor "{name}"?',
cancel: 'Cancelar',
add: 'Adicionar',
save: 'Salvar',
addTitle: 'Adicionar servidor MCP',
editTitle: 'Editar servidor MCP',
invalidJson: 'JSON inválido',
invalidYaml: 'Formato YAML inválido',
invalidConfig: 'Configuração inválida',
invalidServerConfig: 'Configuração do servidor inválida',
missingCommandOrUrl: 'Deve conter command ou url',
},
// Sidebar
sidebar: {
chat: 'Chat',
@@ -115,6 +169,7 @@ export default {
models: 'Modelos',
profiles: 'Perfis',
plugins: 'Plugins',
mcp: 'MCP',
skills: 'Habilidades',
memory: 'Memoria',
logs: 'Logs',
@@ -235,6 +290,7 @@ export default {
compress: 'Executar compressão de contexto quando ocioso',
steer: 'Enviar texto de orientação para a execução ativa do Bridge',
destroy: 'Liberar o Bridge Agent desta sessão',
reloadMcp: 'Recarregar servidores MCP',
},
attachFiles: 'Anexar arquivos',
showToolCalls: 'Mostrar chamadas de ferramentas',