Unified MCP server manager that aggregates and exposes multiple Holmes-style diagnostic and operational tools (kubernetes, prometheus, helm, bash, connectivity, internet, runbooks) as MCP SSE endpoints. Converts MCP tools to SSE protocol and manages multi-service deployment.
This MCP server exposes 11 tools with mixed quality. Naming is inconsistent (verb_noun in some tools, but inconsistent capitalization: 'TodoWrite' vs 'tcp_check'). Descriptions vary wildly: some are adequate (tcp_check: 36 chars), others are well under the 20-char floor (helm_list_releases, helm_search_repo lack sufficient detail). Most critically, none of the 11 tools have explicit OUTPUT schemas documented, only input schemas are visible. Parameter descriptions are present but often generic. Error handling guidance is absent across all tools. Security concerns: run_bash_command and kubectl_run_image accept shell commands and image references with only brief sanitization claims, but no validation rules are visible in the definition. The 'TodoWrite' tool exhibits an anti-pattern: it requires the agent to pass the COMPLETE list of all tasks, not just changes, this is brittle and encourages lost-update races.
Save investigation tasks to break down complex problems into manageable sub-tasks. ALWAYS provide the COMPLETE list of all tasks, not just the ones being updated.
Fetch a webpage. Use to fetch runbooks or docs. Returns Markdown when possible.
安装一个 Helm chart。可以从仓库安装或从本地路径安装。
列出所有 Helm releases。可以按命名空间过滤,支持查看所有命名空间。
将 Helm release 回滚到之前的版本。
在已添加的仓库中搜索 chart,获取 chart 的版本、描述等信息。
卸载一个 Helm release,删除所有相关的 Kubernetes 资源。
No output schemas documented for any tool. LLMs cannot predict what fields are returned, forcing unstructured parsing and context waste. This violates the pattern:tool requirement that tools document return types.
Inconsistent tool naming conventions: 'TodoWrite' uses PascalCase while all others use snake_case. Mixed case breaks LLM parsing of tool names in multi-tool contexts.
helm_list_releases and helm_search_repo descriptions are under 20 chars ('列出所有 Helm releases。可以按命名空间过滤,支持查看所有命名空间。' is ~40 chars in English but lacks clarity on WHEN to use this vs alternatives). Descriptions do not adequately explain what the tool returns or when to call it instead of a similar tool.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 46 | - | v1 |
升级一个已安装的 Helm release 到新版本或新配置。
在指定 Kubernetes 命名空间中,使用给定镜像创建临时 Pod 并执行命令,执行完后自动删除(--rm --attach)。适用于跑一次性任务或调试镜像。
在受控环境下执行一条 bash 命令。会做安全校验,危险命令会被拒绝。适用于执行只读或低风险命令(如 cat、grep、ls、date)。
Check if a TCP socket can be opened to a host and port.
run_bash_command and kubectl_run_image claim to perform 'security validation' and reject 'dangerous commands', but the definitions show no explicit validation rules, allowlist, or denylist. LLMs cannot predict what will be rejected and why, risking wasted calls.
TodoWrite anti-pattern: requires agent to pass the COMPLETE list of all tasks, not just the changes. This is brittle (forces context overhead), encourages lost-update races (concurrent modifications will overwrite), and violates single-responsibility principle. Should accept a task_id + update payload instead.
No error handling guidance across any tool. If helm_install fails due to invalid namespace, missing chart, or permission error, the response does not tell the LLM whether to retry, ask the user, or give up. Violates pattern:recovery-guide.
Parameters use opaque enum values without context. helm_install has a 'dry_run' boolean, but no description of what dry_run returns or how the output changes. LLMs cannot reason about whether to call it with dry_run=true first.
fetch_webpage accepts a raw URL string with no validation hints. No guidance on timeout, max size, supported protocols, or error cases (404 vs timeout vs SSL error). Description is vague: 'Returns Markdown when possible', when is it not possible, and what format is returned then?