Voltar às atualizações
New releaseSep 21, 2026

ironcurtain memory-mcp-server/v0.2.1

Um runtime seguro* para agentes de IA autônomos. Política a partir de constituições em inglês simples. (*https://ironcurtain.dev)

Compartilhar

IronCurtain

CI npm License Website

Um runtime seguro* para agentes de IA autônomos, onde a política de segurança é derivada de uma constituição legível por humanos.

*Quando alguém escreve "seguro", você deve imediatamente ser cético. O que queremos dizer com seguro?

[!WARNING] Protótipo de Pesquisa. IronCurtain é um projeto de pesquisa em estágio inicial que explora como tornar agentes de IA seguros o suficiente para serem genuinamente úteis. APIs, formatos de configuração e arquitetura podem mudar. Contribuições e feedback são bem-vindos.

Demonstração

IronCurtain mux demo: trusted input from command mode enables auto-approval of git clone and git push

O agente recebe a tarefa de clonar um repositório e enviar alterações. Tanto git_clone quanto git_push são escalados pelo motor de políticas, mas o auto-aprovador os aprova automaticamente — a entrada confiável do usuário no modo de comando (Ctrl-A) forneceu intenção clara, então nenhum /approve manual foi necessário.

O Problema

Agentes de IA autônomos podem gerenciar arquivos, executar comandos git, enviar mensagens e interagir com APIs em seu nome. Mas os frameworks de agentes de hoje dão ao agente os mesmos privilégios que o usuário, como acesso total ao sistema de arquivos, credenciais e rede. Pesquisadores de segurança chamam isso de autoridade ambiente, e significa que uma única injeção de prompt ou desvio multi-turno pode fazer um agente excluir arquivos, exfiltrar dados ou enviar código malicioso.

A resposta comum é restringir os agentes a um sandbox estreito (limitando sua utilidade) ou pedir ao usuário para aprovar cada ação (limitando sua autonomia). Nenhuma das duas é satisfatória.

A Abordagem

IronCurtain segue um caminho diferente: expresse sua intenção de segurança em inglês simples, depois deixe o sistema descobrir a aplicação.

Você escreve uma constituição, que é um documento curto descrevendo o que seu agente pode e não pode fazer. IronCurtain compila isso em uma política de segurança determinística usando um pipeline de LLM, valida as regras compiladas contra cenários de teste gerados e então aplica a política em tempo de execução em cada chamada de ferramenta. O resultado é um agente que pode trabalhar autonomamente dentro dos limites que você define em linguagem natural.

As ideias-chave:

  • O agente não é confiável. IronCurtain assume que o LLM pode estar comprometido por injeção de prompt ou desvio. A segurança não depende do modelo "ser bom".
  • Inglês entra, aplicação sai. Você escreve a intenção ("nenhuma operação git destrutiva sem aprovação"); o sistema compila isso em regras determinísticas que são aplicadas sem envolvimento adicional de LLM em tempo de execução.
  • Interposição semântica. Em vez de dar ao agente acesso bruto ao sistema, todas as interações passam por servidores MCP (sistema de arquivos, git, etc.). Cada chamada de ferramenta passa por um motor de políticas que pode permitir, negar ou escalar para aprovação do usuário.
  • Defesa em profundidade. O código do agente roda em um isolado V8 sem acesso direto ao host. A única saída é através de chamadas de ferramentas MCP semanticamente significativas, e cada uma é verificada contra a política.

Arquitetura

IronCurtain suporta dois modos de sessão com diferentes modelos de confiança:

  • Agente Integrado (Modo Código) — O próprio agente LLM do IronCurtain escreve trechos de TypeScript que executam em um sandbox V8. IronCurtain controla o agente, o sandbox e o motor de políticas. Cada chamada de ferramenta sai do sandbox como uma requisição MCP estruturada, passa pelo motor de políticas (permitir / negar / escalar) e só então alcança o servidor MCP real.

  • Modo Agente Docker — Um agente externo (Claude Code, Goose, Codex) roda dentro de um contêiner sem acesso direto à rede pública. IronCurtain media os efeitos externos: chamadas de API de LLM passam por um proxy MITM com terminação TLS (allowlist de host, troca de chave falsa para real), chamadas de ferramentas MCP passam pelo mesmo motor de políticas, e instalações de pacotes suportadas passam por proxies de pacotes validadores.

O Docker aninhado opcional dá às sessões de desenvolvedor um daemon privado e efêmero sem expor o socket Docker do host. Os perfis implementados cobrem Apple Container e Docker Desktop no macOS, e WSL2 com Docker Desktop em amd64. Seus modos offline, images e packages separam o uso local de imagens, pulls mediados de imagens públicas e builds de pacotes suportados. O Engine Linux nativo não é admitido para aninhamento; consulte a referência de configuração para pré-requisitos e limitações.

Em ambos os modos, o agente é não confiável. A segurança não depende do modelo seguir instruções — ela é aplicada na fronteira.

Veja SANDBOXING.md para a arquitetura completa com diagramas, análise de confiança camada por camada e notas de plataforma macOS.

Início Rápido

Pré-requisitos

  • Node.js 24 ou 26 — as linhas principais de numeração par que o IronCurtain testa. Ambas instalam binários isolated-vm pré-compilados. Node 25 não é suportado nem testado.
  • Docker — não obrigatório, mas fortemente recomendado para o Modo Agente Docker, que fornece o isolamento mais forte. No macOS 26+ (Apple silicon), o Apple container funciona como backend alternativo (VM por contêiner; usado automaticamente quando seus serviços estão rodando — veja containerRuntime em ironcurtain config)
  • Uma chave de API para pelo menos um provedor de LLM (Anthropic, Google ou OpenAI)

Instalação

Como ferramenta CLI global (usuários finais):

npm install -g @provos/ironcurtain

Do código-fonte (desenvolvimento):

git clone https://github.com/provos/ironcurtain.git
cd ironcurtain
npm install

Configuração única

1. Defina sua chave de API:

export ANTHROPIC_API_KEY=sk-ant-...

Você também pode colocar chaves em um arquivo .env na raiz do projeto (carregado automaticamente via dotenv), ou adicioná-las a ~/.ironcurtain/config.json via ironcurtain config. Variáveis de ambiente têm precedência sobre os valores do arquivo de configuração. Suportadas: ANTHROPIC_API_KEY, GOOGLE_GENERATIVE_AI_API_KEY, OPENAI_API_KEY.

2. Execute o assistente de primeira inicialização (execute isto explicitamente antes de usar o caminho mux recomendado; ele também é executado automaticamente no primeiro ironcurtain start que não seja mux):

ironcurtain setup

Orienta você na configuração do token do GitHub, provedor de busca na web, seleção de modelo e outras configurações. Cria ~/.ironcurtain/config.json com suas escolhas.

Executando o IronCurtain

O IronCurtain vem com uma política padrão voltada para a experiência do desenvolvedor — operações somente leitura são permitidas, mutações (escritas, pushes, criação de PR) escalam para aprovação humana. Você pode começar a usá-lo imediatamente após a configuração.

Multiplexador de terminal (recomendado)

Categorias