A management application for discovering, monitoring, and controlling MCP (Model Context Protocol) servers. Provides lifecycle management, configuration editing, and server discovery with support for multiple transport types (stdio, HTTP, SSE).
MCPManager provides 6 tools with adequate naming conventions and input schemas. Tool names follow verb_noun pattern (listServers, getServerById, discover, startServer, stopServer, restartServer), which is clear and actionable. All tools have descriptions and documented input parameters with types and enums. However, descriptions are brief (18-112 chars, well below the 194-char baseline), lack actionable recovery guidance, and no output schemas are documented. Parameter descriptions exist but lack detail on constraints, ranges, or the consequences of certain parameter combinations. Error handling strategy is not evident from source code. The toolset demonstrates basic competence but falls short of production-grade quality in guidance and documentation depth.
Initiates an asynchronous discovery scan to find MCP servers on the system
Retrieves detailed information about a specific MCP server by its UUID
Retrieves a list of all discovered MCP servers with optional filtering by status and discovery source
Restarts an MCP server by stopping and then starting it
Starts an MCP server identified by its UUID
Stops a running MCP server with optional force termination and timeout configuration
Output schemas not documented. No field definitions, structure, or chaining-ID documentation visible for any tool response. LLMs cannot plan downstream calls or extract required data.
Descriptions are significantly shorter than the 194-char production baseline (baseline range p10=34, p90=392). Most descriptions 18-112 chars lack actionable context for LLM tool selection. E.g. 'Initiates an asynchronous discovery scan to find MCP servers on the system' (76 chars) omits what the agent should do with results or how long scanning takes.
Parameter descriptions lack operational detail. 'serverId' is documented as 'The UUID of the server to start' but omits: (a) where to obtain a UUID (call listServers first?), (b) what happens if the UUID doesn't exist, (c) what states the server must be in before start/stop/restart can succeed. Agents cannot reason about prerequisites.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 22 | - | v1 |
No error recovery guidance. No tool description explains what to do if an operation fails (e.g. 'If server fails to start due to configuration error, call getServerById to inspect logs'). Agents get no guidance on retry strategy or alternatives.
timeout parameter on stopServer lacks documentation of units and default behavior. Description says 'Timeout in seconds for graceful shutdown before force termination' but does not specify: (a) what is the default if omitted, (b) is the timeout inclusive of force kill time, (c) is there a minimum/maximum enforced.
No pagination or result-limiting documented. listServers may return unbounded results. For systems with hundreds of servers, LLM context window exhaustion is possible. No limit param or documentation of result cardinality.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) visible in schema. RiskField enum ('READ_ONLY', 'WRITE') appears in spec but is not formalized as MCP annotations. This prevents clients from automatically detecting destructive operations.
Confirmation/dry-run pattern absent for destructive operations. stopServer and restartServer modify running services but offer no confirmation step or preview. An agent mistake could terminate critical servers with no recovery option documented.