Kubernetes-native MCP server for Strimzi (Apache Kafka on Kubernetes) cluster management and diagnostics. Provides tools for querying Kafka clusters, topics, users, metrics, logs, events, and running multi-step diagnostic workflows.
StreamsHub MCP provides 10 well-structured diagnostic tools for Kafka/Strimzi clusters. All tools have explicit descriptions (averaging ~150 chars, within the 34-392 baseline), clear action-verb naming, and documented input schemas with parameter descriptions. However, output schemas are not documented in the source code provided, and error handling guidance is minimal. Tool annotations (readOnlyHint) are present, which aligns with current MCP spec patterns. The tool set demonstrates good composition (each performs one diagnostic task), but lacks pagination guidance and result-limiting documentation for endpoints that may return large datasets.
Readiness assessment for upgrading a Kafka cluster. Evaluates broker versions, controller compatibility, partition leader distribution, in-sync replica status, and identifies potential upgrade blockers.
Runs a multi-step diagnostic workflow for a Kafka cluster. Gathers cluster status, node pools, pods, operator logs, cluster logs, events, and metrics in a single call.
Multi-step diagnostic workflow for Kafka cluster connectivity issues. Gathers broker-to-broker connectivity status, listener configuration, network policies, pod IP assignments, DNS resolution, and network-related logs.
Multi-step diagnostic workflow for Kafka cluster metrics analysis. Gathers replication lag metrics, broker performance, throughput rates, log compaction status, and JVM metrics.
Compare configuration, status, and metrics of two Kafka clusters side by side. Gathers cluster properties, broker configurations, topic settings, and current metrics for both clusters.
Multi-step diagnostic workflow for a KafkaConnect cluster. Gathers cluster status, connector inventory, pod health, logs, and events.
Output schemas not documented. Tools return complex diagnostic data (status, metrics, logs, events) but the source code provides no formal schema definition or field documentation. LLMs cannot determine what fields are present, forcing them to guess at downstream data extraction.
No pagination or result limiting documented. Multi-step diagnostic workflows gather logs, events, and metrics across clusters. If a cluster has thousands of events or pod logs, returning all results will exceed context windows. Tools lack documented limits (e.g. 'returns max 100 events') and pagination parameters.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 68 | 2026-07-28+ | v2 |
Runs a multi-step diagnostic workflow for a KafkaConnector. Gathers connector status, parent KafkaConnect cluster health, Connect pod status, logs, and events in a single call. Uses Sampling for LLM analysis and Elicitation for disambiguation. Falls back to gathering all data when Sampling is not supported.
Runs a multi-step diagnostic workflow for a KafkaMirrorMaker2 cluster. Gathers cluster status, topic configuration, replication metrics, connector status, pod health, logs, and events in a single call.
Runs a multi-step diagnostic workflow for a Kafka topic. Gathers topic configuration, partition assignments, leader/replica status, consumer group status, replication metrics, and recent logs/events.
Multi-step diagnostic workflow for Strimzi operator metrics. Gathers cluster operator reconciliation timing, resource utilization, topic/user operator activity, and performance metrics.
Error handling lacks recovery guidance. No visible error responses or recovery suggestions in the source code. If a diagnostic call fails (e.g. cluster not found, namespace forbidden, metrics endpoint unreachable), the LLM receives no actionable guidance on what to do next.
Mutually exclusive parameters not declared. diagnose_kafka_cluster_metrics accepts both 'rangeMinutes' and implied startTime/endTime, documented as 'mutually exclusive' in the description text, but no formal constraint in schema. Similarly, other tools with optional namespace parameters could benefit from clear interdependency documentation.
Parameter descriptions reference absent fields. Several tools describe Kubernetes namespace optional parameter as 'Omit to search all namespaces' but it is unclear whether searching all namespaces is actually a valid behavior or if a default is required. No examples or behavior clarification provided.