Security-first, self-hosted AI agents - isolation you can prove, not just promise.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add ironclaw --env IRONCLAW_CONTROLPLANE_URL='<IRONCLAW_CONTROLPLANE_URL>' --env IRONCLAW_API_TOKEN='<IRONCLAW_API_TOKEN>' -- docker run -i --rm -e IRONCLAW_CONTROLPLANE_URL -e IRONCLAW_API_TOKEN ghcr.io/ironsecco/ironclaw-mcp:v0.1.557~/.codex/config.toml
[mcp_servers.ironclaw]
command = "docker"
args = ["run", "-i", "--rm", "-e", "IRONCLAW_CONTROLPLANE_URL", "-e", "IRONCLAW_API_TOKEN", "ghcr.io/ironsecco/ironclaw-mcp:v0.1.557"]
env = { IRONCLAW_CONTROLPLANE_URL = "<IRONCLAW_CONTROLPLANE_URL>", IRONCLAW_API_TOKEN = "<IRONCLAW_API_TOKEN>" }
# codex mcp add ironclaw --env IRONCLAW_CONTROLPLANE_URL='<IRONCLAW_CONTROLPLANE_URL>' --env IRONCLAW_API_TOKEN='<IRONCLAW_API_TOKEN>' -- docker run -i --rm -e IRONCLAW_CONTROLPLANE_URL -e IRONCLAW_API_TOKEN ghcr.io/ironsecco/ironclaw-mcp:v0.1.557~/.cursor/mcp.json
{
"mcpServers": {
"ironclaw": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"IRONCLAW_CONTROLPLANE_URL",
"-e",
"IRONCLAW_API_TOKEN",
"ghcr.io/ironsecco/ironclaw-mcp:v0.1.557"
],
"env": {
"IRONCLAW_CONTROLPLANE_URL": "<IRONCLAW_CONTROLPLANE_URL>",
"IRONCLAW_API_TOKEN": "<IRONCLAW_API_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"ironclaw": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"IRONCLAW_CONTROLPLANE_URL",
"-e",
"IRONCLAW_API_TOKEN",
"ghcr.io/ironsecco/ironclaw-mcp:v0.1.557"
],
"env": {
"IRONCLAW_CONTROLPLANE_URL": "<IRONCLAW_CONTROLPLANE_URL>",
"IRONCLAW_API_TOKEN": "<IRONCLAW_API_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"ironclaw": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"IRONCLAW_CONTROLPLANE_URL",
"-e",
"IRONCLAW_API_TOKEN",
"ghcr.io/ironsecco/ironclaw-mcp:v0.1.557"
],
"env": {
"IRONCLAW_CONTROLPLANE_URL": "<IRONCLAW_CONTROLPLANE_URL>",
"IRONCLAW_API_TOKEN": "<IRONCLAW_API_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"ironclaw": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"IRONCLAW_CONTROLPLANE_URL",
"-e",
"IRONCLAW_API_TOKEN",
"ghcr.io/ironsecco/ironclaw-mcp:v0.1.557"
],
"env": {
"IRONCLAW_CONTROLPLANE_URL": "<IRONCLAW_CONTROLPLANE_URL>",
"IRONCLAW_API_TOKEN": "<IRONCLAW_API_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"ironclaw": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"IRONCLAW_CONTROLPLANE_URL",
"-e",
"IRONCLAW_API_TOKEN",
"ghcr.io/ironsecco/ironclaw-mcp:v0.1.557"
],
"env": {
"IRONCLAW_CONTROLPLANE_URL": "<IRONCLAW_CONTROLPLANE_URL>",
"IRONCLAW_API_TOKEN": "<IRONCLAW_API_TOKEN>"
}
}
}
}Environment variables
IRONCLAW_CONTROLPLANE_URLIRONCLAW_API_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.