Skip to main content

MCP servers

TalkOps Kubernetes Agent (k8s-autopilot) uses the Model Context Protocol (MCP) to connect specialist operators to Kubernetes clusters, GitOps controllers, and observability backends. The agent ships with 11 built-in MCP servers (220 tools total) and lets you register custom third-party or internal MCP servers via the Settings UI or .mcp.json files.

Built-in MCP servers​

MCP serverAssigned operatorToolsPrimary capabilities
kubernetes-mcp-serverK8s Operator32Workload CRUD, pod logs & exec, events, node diagnostics, RBAC, multi-cluster context switching
helm-mcp-serverHelm Operator22Chart discovery, dry-run validation, install, upgrade, rollback, uninstall, JSON schema checks
argocd-mcp-serverApp Operator29Application onboarding, sync, rollback, health/diff inspection, project and repo management
argo-rollout-mcp-serverApp Operator18Canary and blue-green promotions, abort/retry, AnalysisTemplate verification
traefik-mcp-serverApp Operator11IngressRoute generation, weighted traffic splitting, middlewares, TLS, NGINX migration
prometheus-mcp-serverObservability28PromQL instant/range queries, ServiceMonitor & PrometheusRule CRUD, cardinality analysis
alertmanager-mcp-serverObservability14Active alert triage, silence creation with blast-radius preview, routing tree audits
opentelemetry-mcp-serverObservability19Collector CRD provisioning, workload auto-instrumentation, OTLP pipeline validation
loki-mcp-serverObservability9LogQL stream and metric queries, label discovery, trace-to-log correlation
tempo-mcp-serverObservability16TraceQL search, critical-path waterfall analysis, RED metrics, service topology graphs
github-mcp-serverHelm / Core12Repository branch management, Helm chart commits, pull request creation

Register a custom MCP server​

Via the Settings UI​

Navigate to Settings → MCP Servers and click + Add Server. Specify the server name, transport (stdio, http, or sse), command or URL, and environment variables. Newly added servers become available immediately without restarting containers.

Via .mcp.json​

Define servers in .mcp.json using the standard MCP configuration schema:

.mcp.json
{
"mcpServers": {
"postgres-inspector": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "${POSTGRES_READONLY_URI}"
}
},
"internal-cmdb": {
"url": "http://cmdb-mcp.internal:8080",
"transport": "http",
"headers": {
"Authorization": "Bearer ${CMDB_API_TOKEN}"
},
"allowed_tools": ["get_*", "list_*"],
"disabled_tools": ["delete_*"]
}
}
}
FieldTypeDescription
commandstringExecutable for stdio transport (npx, uvx, python, docker)
argslist[string]Command-line arguments passed to command
envobjectEnvironment variables passed to the subprocess (supports ${VAR} and ${VAR:-default})
urlstringEndpoint URL for remote http or sse servers
transportstringstdio (default when command is set), http, or sse
headersobjectHTTP headers sent on remote http or sse connections
allowed_toolslist[string]Glob allowlist of tool names to expose
disabled_toolslist[string]Glob denylist of tool names to hide (evaluated before allowed_tools)
enabledboolSet false to disable a server without removing its configuration

Configuration discovery order​

k8s-autopilot merges MCP server definitions from five sources:

  1. Settings UI database (db) — Highest precedence.
  2. Global user files (~/.agents/.mcp.json or ~/.k8s_autopilot/.mcp.json).
  3. Project root files (.mcp.json or .k8s_autopilot/.mcp.json).
  4. Vertical plugin configs (plugins/<name>/.mcp.json).
  5. Operator-scoped configs (built_in_subagents/<operator>/.mcp.json) — Isolated to that specific operator and connected Just-In-Time (JIT).

Tool naming and security profiling​

Every discovered MCP tool is registered under the namespace mcp__<server>__<tool> (for example, mcp__kubernetes__get_pods) and classified into one of four security tiers:

TierClassificationGovernance behavior
Tier 1 — Read-onlyreadOnlyHint=true or inspection verbs (get_, list_, describe_, query_)Executes automatically
Tier 2 — Low-impactDry-runs or metadata annotations (dry_run_, annotate_)Auto mode evaluates; Manual mode asks
Tier 3 — MutatingLive state changes (install_, scale_, apply_, sync_)Requires HITL approval in Manual and Auto modes
Tier 4 — DestructivedestructiveHint=true or deletion verbs (delete_, uninstall_, drain_)Requires HITL approval with Critical risk warning

Project-level .mcp.json files committed to Git are fingerprinted with SHA-256 on first approval; if a pull request modifies .mcp.json, k8s-autopilot prompts for re-approval before spawning the server.