A containment layer for AI agents that go rogue. Guard mode wraps any stdio MCP server: calls to tools you mark as risky wait for a person, the agent can't approve its own hold, and claimed accounts get Ed25519-signed records you verify offline. Covers the servers you wrap. MIT client.
Setup
Choose your client, copy the config, then fill in any required environment variables.
Local
claude mcp add vitna-containment-for-rogue-ai-agents --env VITNA_API_KEY='<VITNA_API_KEY>' -- npx -y @costrinity/vitna-compliance-mcp~/.codex/config.toml
[mcp_servers.vitna-containment-for-rogue-ai-agents]
command = "npx"
args = ["-y", "@costrinity/vitna-compliance-mcp"]
env = { VITNA_API_KEY = "<VITNA_API_KEY>" }
# codex mcp add vitna-containment-for-rogue-ai-agents --env VITNA_API_KEY='<VITNA_API_KEY>' -- npx -y @costrinity/vitna-compliance-mcp~/.cursor/mcp.json
{
"mcpServers": {
"vitna-containment-for-rogue-ai-agents": {
"command": "npx",
"args": [
"-y",
"@costrinity/vitna-compliance-mcp"
],
"env": {
"VITNA_API_KEY": "<VITNA_API_KEY>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"vitna-containment-for-rogue-ai-agents": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@costrinity/vitna-compliance-mcp"
],
"env": {
"VITNA_API_KEY": "<VITNA_API_KEY>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"vitna-containment-for-rogue-ai-agents": {
"command": "npx",
"args": [
"-y",
"@costrinity/vitna-compliance-mcp"
],
"env": {
"VITNA_API_KEY": "<VITNA_API_KEY>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"vitna-containment-for-rogue-ai-agents": {
"command": "npx",
"args": [
"-y",
"@costrinity/vitna-compliance-mcp"
],
"env": {
"VITNA_API_KEY": "<VITNA_API_KEY>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"vitna-containment-for-rogue-ai-agents": {
"command": "npx",
"args": [
"-y",
"@costrinity/vitna-compliance-mcp"
],
"env": {
"VITNA_API_KEY": "<VITNA_API_KEY>"
}
}
}
}Remote
claude mcp add --transport http vitna-containment-for-rogue-ai-agents https://vitna.costrinity.xyz/api/mcp --header 'Authorization: <AUTHORIZATION>'~/.codex/config.toml
[mcp_servers.vitna-containment-for-rogue-ai-agents]
url = "https://vitna.costrinity.xyz/api/mcp"
http_headers = { Authorization = "<AUTHORIZATION>" }
# codex mcp add vitna-containment-for-rogue-ai-agents --url https://vitna.costrinity.xyz/api/mcp~/.cursor/mcp.json
{
"mcpServers": {
"vitna-containment-for-rogue-ai-agents": {
"url": "https://vitna.costrinity.xyz/api/mcp",
"headers": {
"Authorization": "<AUTHORIZATION>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"vitna-containment-for-rogue-ai-agents": {
"type": "http",
"url": "https://vitna.costrinity.xyz/api/mcp",
"headers": {
"Authorization": "<AUTHORIZATION>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"vitna-containment-for-rogue-ai-agents": {
"httpUrl": "https://vitna.costrinity.xyz/api/mcp",
"headers": {
"Authorization": "<AUTHORIZATION>"
}
}
}
}claude_desktop_config.json · Customize › Connectors › Add custom connector
{
"mcpServers": {
"vitna-containment-for-rogue-ai-agents": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://vitna.costrinity.xyz/api/mcp",
"--header",
"Authorization:<AUTHORIZATION>"
]
}
}
}.trae/mcp.json
{
"mcpServers": {
"vitna-containment-for-rogue-ai-agents": {
"url": "https://vitna.costrinity.xyz/api/mcp",
"headers": {
"Authorization": "<AUTHORIZATION>"
}
}
}
}Environment variables
VITNA_API_KEY
Replace the placeholders with your own credentials and keep them out of version control.