[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:
@@ -0,0 +1,12 @@
|
||||
import Router from '@koa/router'
|
||||
import * as ctrl from '../../controllers/hermes/mcp'
|
||||
|
||||
export const mcpRoutes = new Router()
|
||||
|
||||
mcpRoutes.get('/api/hermes/mcp/servers', ctrl.listServers)
|
||||
mcpRoutes.post('/api/hermes/mcp/servers', ctrl.addServer)
|
||||
mcpRoutes.patch('/api/hermes/mcp/servers/:name', ctrl.updateServer)
|
||||
mcpRoutes.delete('/api/hermes/mcp/servers/:name', ctrl.removeServer)
|
||||
mcpRoutes.post('/api/hermes/mcp/servers/:name/test', ctrl.testServer)
|
||||
mcpRoutes.get('/api/hermes/mcp/tools', ctrl.listTools)
|
||||
mcpRoutes.post('/api/hermes/mcp/reload', ctrl.reloadMcp)
|
||||
@@ -35,6 +35,7 @@ import { mediaRoutes } from './hermes/media'
|
||||
import { proxyRoutes, proxyMiddleware } from './hermes/proxy'
|
||||
import { groupChatRoutes, setGroupChatServer } from './hermes/group-chat'
|
||||
import { performanceMonitorRoutes } from './hermes/performance-monitor'
|
||||
import { mcpRoutes } from './hermes/mcp'
|
||||
|
||||
/**
|
||||
* Register all routes on the Koa app.
|
||||
@@ -80,6 +81,7 @@ export function registerRoutes(app: any, authMiddleware: Array<(ctx: Context, ne
|
||||
app.use(kanbanRoutes.routes()) // Must be before proxy
|
||||
app.use(mediaRoutes.routes()) // Must be before proxy
|
||||
app.use(performanceMonitorRoutes.routes()) // Must be before proxy
|
||||
app.use(mcpRoutes.routes()) // MCP management
|
||||
app.use(proxyRoutes.routes())
|
||||
|
||||
// Proxy catch-all middleware (must be last)
|
||||
|
||||
Reference in New Issue
Block a user