Model Context Protocol server for Tailscale network management and Kubernetes operator integration
12 tools with complete input schemas and descriptions, but significant quality gaps. All tools have descriptions (10-100 chars, mostly 50-90 chars, within baseline 194 avg but on the short side). Schemas present for all tools with proper type definitions and required fields. However, parameter descriptions are minimal (5-20 words), lacking actionable context about format, constraints, or dependencies. No output schemas documented. No error handling guidance. Tool names follow verb_noun pattern (create_, list_, delete_, get_) which is good, but descriptions lack WHEN/WHY context needed for LLM selection. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (READ_ONLY, WRITE, DESTRUCTIVE). Composition is sound, each tool has one responsibility, but parameter relationships (e.g., namespace context across tools) are undocumented.
Create a Connector for subnet routing or exit node functionality
Create a DNSConfig for MagicDNS configuration
Create an egress service to expose a tailnet service to the cluster
Create a Tailscale ingress to expose a cluster service to the tailnet
Get the status of the Tailscale Kubernetes operator
Prepare Tailscale ACL configuration for Kubernetes operator (shows required configuration)
Create a ProxyClass resource for customizing proxy configurations
No output schemas documented. LLMs cannot infer what fields are returned or plan downstream tool calls. E.g., does proxy_class_create return a resource_id, status, or full object?
Parameter descriptions lack actionable constraints. E.g., 'namespace' has no guidance on format, length, or whether it must exist. 'replicas' has no min/max bounds. LLMs will guess invalid values.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite explicit risk levels. Agents cannot distinguish safe reads from destructive writes without parsing descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Delete a ProxyClass resource
List ProxyClass resources in a namespace
Create a ProxyGroup for high availability configurations
Scale a ProxyGroup to a different number of replicas
Get the status of a ProxyGroup
Tool descriptions lack WHEN/WHY context. E.g., 'Create a ProxyClass resource for customizing proxy configurations' does not explain when to use this vs proxy_group_create, or what problem it solves.
No error handling guidance. Tools do not document what errors are possible, whether they are retryable, or what the LLM should do next (e.g., 'namespace not found, try list_namespaces first').