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 server | Assigned operator | Tools | Primary capabilities |
|---|---|---|---|
kubernetes-mcp-server | K8s Operator | 32 | Workload CRUD, pod logs & exec, events, node diagnostics, RBAC, multi-cluster context switching |
helm-mcp-server | Helm Operator | 22 | Chart discovery, dry-run validation, install, upgrade, rollback, uninstall, JSON schema checks |
argocd-mcp-server | App Operator | 29 | Application onboarding, sync, rollback, health/diff inspection, project and repo management |
argo-rollout-mcp-server | App Operator | 18 | Canary and blue-green promotions, abort/retry, AnalysisTemplate verification |
traefik-mcp-server | App Operator | 11 | IngressRoute generation, weighted traffic splitting, middlewares, TLS, NGINX migration |
prometheus-mcp-server | Observability | 28 | PromQL instant/range queries, ServiceMonitor & PrometheusRule CRUD, cardinality analysis |
alertmanager-mcp-server | Observability | 14 | Active alert triage, silence creation with blast-radius preview, routing tree audits |
opentelemetry-mcp-server | Observability | 19 | Collector CRD provisioning, workload auto-instrumentation, OTLP pipeline validation |
loki-mcp-server | Observability | 9 | LogQL stream and metric queries, label discovery, trace-to-log correlation |
tempo-mcp-server | Observability | 16 | TraceQL search, critical-path waterfall analysis, RED metrics, service topology graphs |
github-mcp-server | Helm / Core | 12 | Repository 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:
{
"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_*"]
}
}
}
| Field | Type | Description |
|---|---|---|
command | string | Executable for stdio transport (npx, uvx, python, docker) |
args | list[string] | Command-line arguments passed to command |
env | object | Environment variables passed to the subprocess (supports ${VAR} and ${VAR:-default}) |
url | string | Endpoint URL for remote http or sse servers |
transport | string | stdio (default when command is set), http, or sse |
headers | object | HTTP headers sent on remote http or sse connections |
allowed_tools | list[string] | Glob allowlist of tool names to expose |
disabled_tools | list[string] | Glob denylist of tool names to hide (evaluated before allowed_tools) |
enabled | bool | Set false to disable a server without removing its configuration |
Configuration discovery order
k8s-autopilot merges MCP server definitions from five sources:
- Settings UI database (
db) — Highest precedence. - Global user files (
~/.agents/.mcp.jsonor~/.k8s_autopilot/.mcp.json). - Project root files (
.mcp.jsonor.k8s_autopilot/.mcp.json). - Vertical plugin configs (
plugins/<name>/.mcp.json). - 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:
| Tier | Classification | Governance behavior |
|---|---|---|
| Tier 1 — Read-only | readOnlyHint=true or inspection verbs (get_, list_, describe_, query_) | Executes automatically |
| Tier 2 — Low-impact | Dry-runs or metadata annotations (dry_run_, annotate_) | Auto mode evaluates; Manual mode asks |
| Tier 3 — Mutating | Live state changes (install_, scale_, apply_, sync_) | Requires HITL approval in Manual and Auto modes |
| Tier 4 — Destructive | destructiveHint=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.