dockndevai
● Safe by default · read-only until you say otherwise

MCP servers that let agents run real infrastructure

Ten open-source Model Context Protocol servers — Kubernetes, Kafka, ClickHouse, Debezium, OCI, Azure, Azure DevOps, Keycloak, Percona PostgreSQL, and RAG over your own documents. One governance model across all of them: layered access modes, allowlists, delete gating, dry-run, and audit logging.

10 servers MIT & Apache-2.0 on npm + the Official MCP Registry Claude · Cursor · Codex · VS Code · Windsurf
One governance model

Least privilege, enforced — not documented

Every server shares a pure, unit-tested policy engine. Over-privileged tools are never even advertised to the model; each call is re-checked at runtime.

🔒

Read-only by default

Servers start in read-only mode. Write and admin tools aren't registered until you raise the access mode deliberately.

🎯

Allowlists & protected resources

Scope to specific namespaces, databases, projects or subscriptions. Protected resources can be read but never mutated.

🧨

Delete gating

Destructive operations need the admin mode and an explicit opt-in flag — the most dangerous aren't registered without it.

✍️

Typed confirmation

High-impact operations require echoing the exact target name back, so an agent can't fat-finger a production resource.

🧪

Dry-run

Validate and log write intent without executing it — preview exactly what an agent would change.

🧾

JSON audit log

Every guarded operation emits a structured audit line to stderr. Secrets are redacted from all output.

The suite

Ten servers, one install pattern

Each runs over stdio and installs with a single npx command. Full per-client setup lives in every repo's docs/CLIENTS.md.

Multi-cluster ops — pods, logs, deployments, scale/restart, apply, exec — with read-only / read-write / admin modes.

npx -y @dockndevai/mcp-kubernetes

Apache Kafka — clusters, topics, consumer groups with lag; create / alter / reset with security modes.

npx -y @dockndevai/mcp-kafka

ClickHouse — explore schema, run queries, manage — with SQL-classification-based read/write/destructive gating.

npx -y @dockndevai/mcp-clickhouse

Debezium / Kafka Connect — monitor and manage CDC connectors: status, config and lifecycle.

npx -y @dockndevai/mcp-debezium

mcp-oci

Cloud

Oracle Cloud (OCI) — live resource discovery, dependency mapping, and Terraform generation.

npx -y @dockndevai/mcp-oci

Azure Resource Manager — inventory, tags, VM power and lifecycle, with scoping and protected groups.

npx -y @dockndevai/mcp-azure

Azure DevOps — boards, repos, pipelines and projects — with project scoping and typed confirmation.

npx -y @dockndevai/mcp-azure-devops

mcp-keycloak

Identity

Keycloak — multi-realm admin: users, clients, roles and groups, with read-only / read-write / admin modes.

npx -y @dockndevai/mcp-keycloak

Percona Operator for PostgreSQL — PgBouncer pooling, tuning, backups / PITR, DR and major-version upgrades.

npx -y @dockndevai/mcp-percona-pg

ossian-mcp

Knowledge · RAG

Ask your own documents and get answers with the exact passages they came from — plus durable agent memory ranked by relevance, importance and recency.

npx -y ossian-mcp
Get started

Add one to your agent in a minute

Every server is a standard stdio MCP server on npm. Here it is in Claude Code — start in read-only and raise the mode when you need to.

# Claude Code — mcp-kubernetes, read-only
claude mcp add kubernetes \
  -e K8S_MODE="read-only" \
  -- npx -y @dockndevai/mcp-kubernetes

# Or wire any server into claude_desktop_config.json:
{
  "mcpServers": {
    "kubernetes": {
      "command": "npx",
      "args": ["-y", "@dockndevai/mcp-kubernetes"],
      "env": { "K8S_MODE": "read-only" }
    }
  }
}
  1. Pick a server from the suite above and copy its npx command.
  2. Start read-only. Every server boots in the safest mode; only read tools are exposed.
  3. Raise the mode deliberately when you need writes — read-write, then admin plus an opt-in flag for anything destructive.
  4. Per-client setup (Claude, Cursor, Codex, VS Code, Windsurf) is in each repo's docs/CLIENTS.md.