MCP agent manager for managing personal MCP servers, rendering specialized agent files, and maintaining a persistent tools/list metadata cache
This bash/Python MCP server has 16 tools with explicit schemas and descriptions visible in libexec/mcp_tools_cli.py. However, critical gaps undermine quality: (1) Most tool descriptions are under 100 chars and lack WHEN/WHY context required for LLM selection. E.g., 'refresh' says 'Refresh MCP tools metadata cache' but doesn't explain when an agent should call it vs 'index'. (2) Parameter descriptions are minimal or absent, 'apply' and 'all' flags appear across tools but lack guidance on their interaction or side effects. (3) No output schemas documented; tools return JSON but LLMs cannot predict field structure. (4) Error handling is implicit (Python exceptions); no recovery guidance. (5) Destructive tools (remove, apply, render) lack confirmation patterns or dry-run support. (6) Tool names are inconsistent in verb clarity: 'refresh' and 'index' are vague; 'enable' and 'disable' are clear. (7) No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels assigned in metadata.
Full 7-step apply flow: backup→render→validate→smoke→cutover
Import existing MCP globals from ~/.codex/config.toml and ~/.claude.json into registry
Manage simple local settings like session-idle-timeout
Disable one personal MCP registry entry and remove stale generated agents
Run health checks for all dependencies and runtime directories
Enable one personal MCP and render agents
Rebuild tool-index.jsonl atomically from all fresh cache files
Set up symlinks, shell PATH, and Desktop Chat Skill ZIP
No output schemas documented. Tools return JSON but LLMs cannot predict field structure, forcing them to guess at response shape and risk extraction errors.
Destructive tools (remove, apply, render, sync) lack confirmation or dry-run patterns. Agents can trigger irreversible state changes without safeguards.
Parameter descriptions are minimal or absent. 'apply' and 'all' flags appear across 10+ tools but lack guidance on interaction, side effects, or when to use each.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
List available MCP agents with name, enabled state, status, target, and description
Refresh MCP tools metadata cache by connecting to STDIO servers and caching their tools/list output
Remove one personal MCP and remove stale agents
Render specialized agent files for Claude and Codex
Start one enabled STDIO MCP server with environment resolution
Search for MCP tools by keyword matching against tool name and description
Start one scoped MCP session for chat/agent runtimes with JSONL bridge
Optional Teleport catalog sync to quarantine unhealthy MCPs
Tool descriptions lack WHEN/WHY context. 'refresh' vs 'index' distinction is unclear; 'render' doesn't explain when to call it vs 'apply'. LLMs cannot select the right tool.
No error handling guidance. Python exceptions are implicit; no recovery hints or actionable error messages for LLMs to self-correct.