The `ctx.mcpServers` key reads as a collection of servers, but the
service manages that collection, and ACP already uses `mcpServers` for
a plain server list. Publish the service as `ctx.mcpManager`, matching
the package name, the `mcp-manager/` event prefix, and
`ctx.pluginManager`. Remote endpoints become `mcpManager/*`; the class
keeps its name, McpServerManager.
This reverts commit 1c45a63dd65. Settings-configured servers, credential
templates, probes, stdio and enabled entries, and the status event implement
the backend of #3371, which remains open.
The Settings management page this manager was built for is not shipping, and
every connector plugin registers its server. Remove what only that page used:
- mcp-manager: the volatile `servers` configuration and its write-time
validation, stdio entries, the `enabled` flag, the `probe` operation, and the
`mcp-manager/status` event. A registration takes a Streamable HTTP `url`, and
a `startupTimeoutMs` setting bounds each registered server's startup.
- mcp-client: `${credential:REF}` templates (`expandTemplates`), the
`waiting-credentials` state, `probeServer`, and the exports that existed only
for the manager's write-time validation.
The Web profile mounts the manager without injecting credentials, and the
`mcp-template-error` snapshot goes with the templates.
Plugins that integrate an MCP service now call ctx.mcpServers.register()
for their own lifetime instead of writing the manager's Settings entry, so
two applications never overwrite each other's servers, a settings write
needs no namespace lookup or restart to take effect, and disabling or
uninstalling the plugin withdraws the server's tools.
- The manager is a Typert Remote service: watch streams the complete
server list, and restart and probe run the Host operations. The Web
application mounts one shared manager after the credentials provider.
- Credential templates replace every resolved value with [redacted] in
diagnostics, tool-call failures, and isError results instead of hiding
all upstream text, so the model can act on a server's error.
- Remove health checks, the ${env:NAME} template scheme that credential
references already cover, and the per-request credential re-check that
duplicated the rotation-driven reconnect.
- Client-safe status and probe types move to the ./types exports, and the
manager documentation moves from the tools reference to the MCP page.