Infrastructure access broker issuing ephemeral SSH certificates and Kubernetes tokens with per-command policy and audit logging.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Infrabroker.
Infrastructure access broker for AI agents β SSH & Kubernetes. The model
never touches a credential. (formerly ssh-broker)
The agent requests an action β run a command on a host, query or change a cluster. infrabroker checks it against policy, executes it with a credential minted for that single operation β an ephemeral, scope-limited SSH certificate from its own CA, or a short-lived bound ServiceAccount token β and returns only the output. Keys, certificates and tokens live in the broker's memory and are discarded after the call: nothing enters the model's context, so a prompt-injected agent has nothing to exfiltrate.
One binary β infrabroker β exposes the same engine (internal/broker) and tool
surface (internal/mcpserver) over three transports, chosen by subcommand. (The
legacy per-transport binaries broker / mcp-broker / mcp-broker-http remain as
thin deprecated wrappers over these subcommands, so existing configs keep
working.)
infrabroker serve-mcp.
Tools: ssh_execute, ssh_session_open / ssh_session_exec / ssh_session_close,
ssh_list_servers, ssh_put_file / ssh_get_file; with clusters configured,
also k8s_get / k8s_list / k8s_logs / k8s_apply / k8s_delete /
k8s_list_clusters. No transport auth β isolation comes from the process
being launched by the user (as the MCP spec recommends for stdio).infrabroker serve-mcp-http,
Streamable HTTP. Same tools, but each client authenticates with an OIDC
bearer token validated locally against the issuer's JWKS; the user identity
(and groups, for per-user RBAC) is propagated to the signer.infrabroker serve-http, POST /v1/ssh_run (one-shot), for
network agents authenticated with a client certificate.This README is a landing page. The detail lives in focused, single-source docs:
| Document | Contents |
|---|---|
| QUICKSTART.md | First ssh_execute in under 10 minutes β single-binary local mode, no signer/PKI |
| ARCHITECTURE.md | Diagram, request flow, design decisions, sudo elevation, sessions, multi-CA |
| THREAT_MODEL.md | Actors, trust boundaries, security controls, and explicit non-goals/gaps |
| OPERATIONS.md | Runbook: startup, adding hosts, hot-reload, broker-ctl, PKI rotation, configs |
| MESH.md | Running infrabroker over a NetBird / Tailscale mesh β the session layer on top of the overlay path |
| HA.md | Why it is single-instance today: state inventory, the blockers, and what degrades under replication |
| API.md | HTTP endpoint reference for all services |
| USAGE.md | Guide to the MCP tools (SSH + Kubernetes), dry-run, and audit review (for the model / operator) |
| SECURITY.md | Vulnerability disclosure policy |
| CONTRIBUTING.md Β· CODING_STYLE.md | Workflow, versioning, Go style |
source-address (broker or
bastion IP), and β for one-shot β a force-command. Useless outside its
host/time/IP.allow_sudo / allowed_sudo_users live in the
signer; a compromised broker cannot escalate where policy forbids it.ca_keys), each key
optionally in Azure Key Vault or ssh-agent (YubiKey PIV / SoftHSM / TPM)
β the private key never leaves the HSM.serial across signer, broker, and sshd.The full threat model β including what the system deliberately does not defend β is in THREAT_MODEL.md.
The broker sends an intent ({host, role, purpose, command?, sudo?, pty?, pubkey, β¦}); the signer derives every certificate constraint from policy and
returns the signed cert. The ephemeral private key is generated in the broker
and never leaves it. See ARCHITECTURE.md for the request flow,
the design decisions, and the per-hop ProxyJump certificate diagrams.
| Capability | One-liner | More |
|---|---|---|
| Ephemeral certificates | Ed25519 pair in RAM per operation; minutes-long, scoped cert. No reusable secret. | ARCHITECTURE |
| External signer | A separate cmd/signer holds the CA key and policy; the broker never does. | ARCHITECTURE |
| Multi-CA + HSM | One CA key per host group via ca_keys; local PEM, Azure Key Vault, or ssh-agent/HSM. | ARCHITECTURE |
| AI-action firewall | Per-host or composable-by-group command policy (allow/deny/require_approval), POSIX-sh AST parsing, dry-run. Authoritative for one-shot. | ARCHITECTURE Β· USAGE |
| Human-in-the-loop approval | Optional control plane gates require_approval commands behind out-of-band approval; the signer enforces it. | ARCHITECTURE Β· API |
| Action budgets (behaviour guardrails) | Budget how much an agent can do: per-CN sign-rate cap plus per-subject rate limit and novelty escalation (a subsequent new host / novel command β approval); observe or enforce. Network tools budget what an agent can reach or spend; this budgets the actions themselves. | OPERATIONS Β· ARCHITECTURE |
| RBAC | Broker-CN groups (mTLS) + per-end-user OIDC groups; fail-closed. | ARCHITECTURE |
| sudo / PTY | Policy-gated elevation (sudo -n) and PTY allocation, per host. | ARCHITECTURE |
| Kubernetes broker | k8s_* tools with per-operation bound SA tokens, default-deny verb/resource/namespace policy, dry-run. | USAGE Β§10 |
| Session recording | shell/pty sessions to ASCIIcast v2 (.cast), indexed by session_id. | USAGE Β§8 |
| Chained audit | Append-only, Ed25519-signed, SHA-256-chained; correlated by serial. | USAGE Β§7 Β· API |
| Hot reload | signer.json re-read (and validated) without restart, via POST /v1/reload or SIGHUP. | OPERATIONS Β§3 |
Several tools address SSH access control or AI-agent credential security, but none cover the full combination that infrabroker targets in a lightweight, self-hosted package.
| Feature | infrabroker | Teleport | Vault + SSH engine | StrongDM | ssh-mcp |
|---|---|---|---|---|---|
| Ephemeral cert in memory (no disk) | β | β | β | β | β |
| Separate broker / signing service | β | β | Partial | β | β |
| MCP-native (AI agents) | β | β (2025) | β (2025) | β | β |
| OAuth2/OIDC on MCP transport | β | β | β | β | β |
| Per-command policy + dry-run (AI-action firewall) | β | β | β | β | β |
| Human-in-the-loop approval for AI commands | β | β | β | β | β |
| Per-agent behavioral guardrails (anomaly/rate) | β | β | β | β | β |
| Session recording (ASCIIcast v2, stdin+stdout+stderr) | β | β | β | Partial | β |
| Cryptographically chained audit log | β | β | β | Partial | β |
| Single-binary / simple self-hosted | β | β | β | β | β |
| HSM/KMS for CA key | β (AKV) | β | β | β | β |
Teleport is the closest commercial equivalent β short-lived SSH certs, RBAC, and since 2025 Secure MCP; its Jan-2026 Agentic Identity Framework targets the same threat model. The difference is operational weight: Teleport needs a dedicated control-plane cluster, recording proxy, and web UI β orders of magnitude heavier than a Go binary + signer.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/luisgf-infrabroker)<a href="https://allmcps.com/mcp/luisgf-infrabroker"><img src="https://allmcps.com/api/badge/luisgf-infrabroker?style=directory" alt="Infrabroker on AllMCPs" /></a>