Desktop application for managing Model Context Protocol (MCP) servers with security analysis, sandboxing, and health monitoring capabilities
MCP Server Manager exhibits significant definition quality gaps that prevent it from reaching production-grade standards. While tool names follow verb-noun conventions adequately and descriptions are present for most tools, the implementation suffers from: (1) missing input schemas in the provided source code, tool definitions appear inferred from App.tsx rather than explicitly registered with JSON Schema; (2) incomplete parameter documentation, many enum values and constraints are declared in the code but not visible in schema form; (3) output schemas completely undocumented, return types for all 14 tools lack any specification; (4) error handling guidance missing, tools do not communicate recovery paths or actionable next steps; (5) composition issues, several tools perform multiple concerns (e.g., set_mcp_server_env_whitelist both adds AND removes based on a boolean, combining two operations into one).
Add a new MCP server to the configuration with optional approval token validation
Run health checks on all MCP servers to detect runtime issues, missing dependencies, sandbox problems, and authentication failures
Convert an external/unmanaged MCP server to a managed installation with automatic package management
Disable an MCP server for a specific client without removing it from the configuration
Enable a previously disabled MCP server for a specific client
Retrieve detailed environment variable configuration and policy violations for a server
Output schemas completely undocumented across all 14 tools. No return type specifications, field definitions, or structure documentation visible in provided source. LLMs cannot reason about downstream tool chaining or parse results reliably.
Input schemas appear inferred from TypeScript/Rust code rather than explicitly defined as JSON Schema with type constraints. Parameter descriptions are sparse; enum constraints (claudeDesktop, cursor, codex) exist in code but not formalized in schema form.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
List all configured MCP servers from the manifest with their status, risk levels, and configuration details
Preview the security assessment of an MCP server before adding it to configuration
Regenerate the sandbox shim executable for a managed server when it becomes missing or corrupted
Remove an MCP server from the configuration for a specific client
Re-analyze an existing MCP server for security capabilities and risk scores
Reset the MCP manifest to a clean state, removing all configured servers
Add or remove an environment variable from the server's whitelist
Configure sandbox settings for a managed MCP server including network blocking and working directory restrictions
Error handling lacks recovery guidance. Backend errors are raised (e.g., 'not_found_in_status', 'Validation', 'EmptyCommand') but tools do not communicate actionable next steps to LLM. Example: 'Server not found' does not suggest 'Call list_mcp_servers to see available servers.'
set_mcp_server_env_whitelist combines two operations (add and remove) into one tool via boolean 'allowed' parameter. Violates single-responsibility principle. Should split into add_mcp_server_env_whitelist and remove_mcp_server_env_whitelist.
No confirmation mechanism visible for irreversible operations (remove_mcp_server, reset_mcp_manifest) beyond the 'confirmed' boolean in remove_mcp_server. reset_mcp_manifest accepts no parameters and has no confirmation guard despite destroying all configuration.
Parameter descriptions lack actionable constraints. Example: 'args' is described as 'Command arguments' (array of strings) but no length limits, format rules, or injection-safety guidance provided. LLMs may pass malicious payloads unfiltered.
No pagination support visible for tools that return lists (list_mcp_servers, check_mcp_servers_health). If many servers exist, unbounded result sets could exhaust context window.