A Serena MCP é segura? Uso de tokens e configuração no Claude Code

A Serena MCP dá ao Claude Code ferramentas em nível de símbolo, e com elas vem acesso real de escrita. Veja o que a ferramenta de shell pode fazer, quantos tokens custam as definições das ferramentas, os comandos exatos de configuração e uma implantação somente leitura que mantém seu repositório seguro.

A Serena MCP é segura? Uso de tokens e configuração no Claude Code
Cristian Da Conceicao
Fundador do Picasso IA

A Serena MCP é segura para usar se você a tratar como qualquer ferramenta que pode editar seu código, porque é exatamente isso que ela é. O servidor roda na sua própria máquina, o código-fonte é público e, no contexto claude-code, a ferramenta de shell dela vem desligada. As perguntas reais são mais específicas: o que ela pode gravar no disco, o que ela envia para fora e quantos tokens ela consome antes de você digitar qualquer prompt? Este artigo responde às três com comandos exatos, nomes de configuração e uma ordem de implantação que você pode seguir hoje.

Uma observação rápida sobre as fontes. Os comandos e configurações abaixo vêm do repositório da Serena e da página de configuração de clientes. Os números de tokens vêm de um wrapper de terceiros e de um texto sobre segurança, e eu indico isso. Meça a sua própria configuração antes de confiar em qualquer número, inclusive nos meus.

Mãos de um desenvolvedor apoiadas em um notebook em um escritório doméstico silencioso ao nascer do sol

O que a Serena realmente faz

A Serena, criada pela Oraios, é um servidor MCP que entrega ao agente de programação ferramentas no estilo de IDE. Em vez de ler arquivos inteiros e procurar textos, o agente pede símbolos: classes, funções, métodos e os lugares que os referenciam. O repositório lista ferramentas de recuperação (encontrar símbolo, visão geral do símbolo, encontrar símbolos que referenciam), edição simbólica (substituir o corpo de um símbolo, inserir antes ou depois de um símbolo), busca por regex, operações com arquivos, execução de shell e um sistema de memória persistente. O suporte a linguagens passa de 40 linguagens por meio de servidores de linguagem.

Quem ganha com isso? Qualquer pessoa que trabalhe em um repositório grande demais para caber em um único prompt: backends com vários módulos, monorepos, apps antigos em que renomear um símbolo toca trinta arquivos. Se o seu projeto são alguns scripts, as ferramentas simples do Claude Code já bastam, e adicionar um servidor aumenta sobretudo a superfície de exposição. Ajuste a ferramenta ao tamanho do problema antes de começar a perguntar se ela é segura.

Símbolos em vez de texto bruto

Um agente comum encontra uma função buscando texto e depois lê os arquivos ao redor para ter certeza de que achou a certa. A Serena pergunta a um servidor de linguagem, então a resposta é a própria definição, não um monte de arquivos.

Um bibliotecário puxando uma única ficha de uma longa gaveta de fichário de madeira

TarefaFerramentas comuns de arquivoFerramentas da Serena
Encontrar uma funçãoBuscar texto, ler arquivos inteirosEncontrar símbolo retorna a definição
Ver quem a chamaBuscar e adivinharEncontrar símbolos que referenciam
Editar um métodoReescrever um bloco de textoSubstituir corpo do símbolo
Se orientar em um arquivoLer o arquivo completoVisão geral do símbolo

Onde o código fica

O Claude Code inicia a Serena como um processo local, e os servidores de linguagem também rodam localmente. A Serena não é um serviço hospedado e, pelo que a documentação pública mostra, não existe uma nuvem da Serena que receba seu repositório. Há um ponto importante que vale dizer em voz alta: tudo o que uma ferramenta da Serena retorna cai no contexto do Claude, e esse contexto vai para a API do modelo como qualquer outro resultado de ferramenta. A Serena não torna a sessão mais privada. Ela torna as leituras menores e mais precisas.

A Serena MCP é segura?

Para a maioria dos desenvolvedores que trabalham nos próprios repositórios, sim, com condições. Os riscos são comuns, e cada um tem um controle que você pode configurar em minutos.

Comece pelo modelo de ameaça. Você não está preocupado com um estranho invadindo a Serena. Está preocupado com três coisas mais discretas: o agente alterar arquivos que você não queria alterar, o agente executar um comando que você não queria executar e um texto dentro de um arquivo convencer o agente a fazer uma dessas coisas. Essa última é a injeção de prompt, e ela vale para qualquer ferramenta que leia conteúdo não confiável. Um repositório clonado, uma dependência baixada ou um issue colado podem conter uma frase endereçada ao modelo, e não a você. Uma lista curta de ferramentas e um pedido de permissão para gravações são a melhor defesa, porque limitam aonde uma instrução sequestrada consegue chegar.

Um cadeado de aço e uma corrente de ferro trancando um portão de madeira desgastada

ÁreaRiscoControle
Gravações de arquivoEdições de símbolo alteram arquivos no discoread_only: true, uma árvore git limpa, revisão de diff
Shellexecute_shell_command executa comandos arbitráriosExcluído no contexto claude-code, além de excluded_tools
TelemetriaRelatórios de uso anônimosSERENA_USAGE_REPORTING=false
Cadeia de suprimentosExecutar direto de uma URL gitInstalar o pacote ou fixar uma tag
Injeção de promptTexto dentro de um repositório pode instruir o agentePedidos de permissão, lista pequena de ferramentas
LicençaCódigo da aplicação sob GPL-3.0-or-laterLeia antes de redistribuir

A parte de código aberto

O código da aplicação da Serena é GPL-3.0-or-later, e a camada SolidLSP incluída é MIT. Código aberto significa que você pode ler exatamente o que roda na sua máquina, o que é uma propriedade de segurança real. Rodar uma ferramenta GPL no seu próprio repositório não altera a licença do repositório. A licença passa a importar quando você modifica a Serena e a distribui para outras pessoas, e nesse ponto você deve perguntar a um advogado, não a um blog.

O problema da ferramenta de shell

A ferramenta mais poderosa do conjunto é execute_shell_command. Um texto de segurança sobre a Serena a chama de capacidade mais perigosa, com exclusão acidental de arquivos, vazamento de credenciais e configurações de sistema quebradas como modos de falha, e sugere reservá-la para ambientes de CI em vez do trabalho local.

Uma alavanca industrial sob uma proteção transparente articulada, com uma mão enluvada pairando sobre ela

O contexto claude-code já a remove. Esse contexto exclui seis ferramentas: create_text_file, read_file, execute_shell_command, find_file, list_dir e search_for_pattern. O motivo não é paranoia. O Claude Code tem suas próprias ferramentas de arquivo e de shell, então a Serena deixa essas funções de lado e mantém o trabalho com símbolos.

💡 Excluir a ferramenta de shell da Serena não tira o poder de shell da sessão. A ferramenta Bash própria do Claude Code continua lá, mas ela passa pelos pedidos de permissão do Claude Code, que é onde você quer que essa decisão fique.

Telemetria e chamadas de rede

A Serena documenta uma forma de desativar os relatórios de uso anônimos: defina SERENA_USAGE_REPORTING=false no ambiente que inicia o servidor. Os servidores de linguagem são programas separados e, dependendo da linguagem, um deles pode precisar ser baixado na primeira vez que você o usar. Espere um pouco de atividade de rede numa primeira execução com uma nova linguagem, e confira um log de firewall se o seu ambiente for restrito.

Uso de tokens em sessões reais

A Serena consome tokens de duas formas. O custo fixo são as definições de ferramentas carregadas em toda sessão. O custo variável é o que as ferramentas retornam enquanto você trabalha. O primeiro é previsível, e o segundo depende de como você trabalha.

Para onde vão os tokens

O projeto wrapper serena-slim estima que a Serena original carrega 29 ferramentas, que custam cerca de 23.878 tokens no Claude Code, e que a versão agrupada, com 18 operações, reduz isso para cerca de 11.874 tokens. Esse é um número divulgado pelo autor de um wrapper de terceiros, não uma medição da sua instalação. No contexto claude-code, seis ferramentas já estão excluídas, então o seu número provavelmente será menor que o da versão original.

Meça você mesmo. Rode /context no Claude Code antes de adicionar o servidor e de novo depois, e compare a linha das ferramentas MCP. Essa única comparação vale mais do que qualquer estimativa deste artigo.

Para entender por que o custo fixo importa, aqui vai uma conta, não uma medição. Suponha que as definições consumam 12.000 tokens e que você abra 20 sessões por dia. São 240.000 tokens de sobrecarga antes de qualquer pergunta ser feita. Corte o payload pela metade e você economiza o mesmo valor de novo, todos os dias, tenha ou não a Serena justificado seu lugar naquela sessão.

Ponteiro de um medidor de combustível parado perto do meio do arco em um painel vintage

O custo variável se divide em três partes:

  • Visão geral do símbolo retorna nomes e localizações, não corpos, então se orientar em um arquivo grande custa muito menos do que lê-lo.
  • Encontrar símbolos que referenciam em uma função usada em todo lugar pode retornar uma lista longa. Faça perguntas mais restritas em bases de código grandes.
  • Onboarding em um projeto novo faz o agente examinar o código e guardar anotações como memórias. Os modos no-onboarding e no-memories desligam isso quando você quer uma sessão enxuta.

Por que o contexto do Claude Code ajuda

Os contextos são escolhidos na inicialização e não podem mudar no meio da sessão. O padrão é desktop-app, que existe para um cliente diferente do Claude Code. Sem --context claude-code, espere ao mesmo tempo ferramentas de arquivo que duplicam as do Claude Code, uma ferramenta de shell e um payload de definições maior. Digite /mcp depois da configuração e compare a lista de ferramentas com as seis exclusões acima. Um único parâmetro resolve o custo de tokens e a exposição de segurança juntos.

Variantes enxutas e busca de ferramentas

O Claude Code também pode adiar as definições de ferramentas MCP e carregá-las sob demanda, em vez de na inicialização. Um texto de configuração liga isso com ENABLE_TOOL_SEARCH=true; confira as notas de versão do seu Claude Code, porque a chave pode ser diferente. Um wrapper enxuto adiciona mais um pacote de terceiros entre você e seu código. Pese isso contra os tokens economizados, já que a economia só importa se você confiar na camada extra.

Configuração do Claude Code, passo a passo

O processo inteiro leva alguns minutos. uv é o único pré-requisito.

Instalar e inicializar

uv tool install -p 3.13 serena-agent
serena init

A Serena também traz um atalho, serena setup claude-code, para a mesma tarefa. Os comandos manuais abaixo mostram exatamente com o que você está concordando, por isso eu prefiro usá-los na primeira vez.

Adicionar o servidor manualmente

Para um único projeto, rode isto na pasta do projeto:

claude mcp add serena -- serena start-mcp-server --context claude-code --project "$(pwd)"

Para todos os projetos da máquina, a forma global é:

claude mcp add --scope user serena -- serena start-mcp-server --context claude-code --project-from-cwd

Eu recomendo o comando por projeto. O Claude Code guarda isso no escopo local por padrão, então vale só para aquele projeto, enquanto a forma global ativa a Serena em qualquer pasta que você abrir, então uma sessão aberta por engano no diretório errado recebe as mesmas ferramentas de edição. Confira o resultado com claude mcp list, ou digite /mcp dentro do Claude Code. Se o servidor demorar para iniciar, aumente o tempo limite com export MCP_TIMEOUT=60000.

💡 No Windows, rode isto no PowerShell e troque "$(pwd)" por "$PWD" se o shell reclamar. Mantenha o caminho do projeto sem aspas sobrando, já que um caminho errado faz a Serena ativar a pasta errada.

Hooks e o prompt de sistema

A própria documentação da Serena avisa que atualizações recentes do Claude Code e dos modelos reduziram a obediência do agente às instruções sobre as ferramentas da Serena, e que sessões longas podem se afastar delas. A solução é iniciar o Claude Code com uma substituição do prompt de sistema:

claude --system-prompt="$(serena prompts print-cc-system-prompt-override)"

A documentação também recomenda com força lembretes em hooks em .claude/settings.json, com quatro comandos: remind, activate, cleanup e auto-approve. Leia o que auto-approve faz antes de conectá-lo. Qualquer coisa que aprove chamadas de ferramenta por você reduz os momentos em que você pode dizer não.

Vista de cima de uma mesa organizada com um notebook, um caderno, um pen drive e um copo de água

Trave tudo antes do primeiro dia

Faça isso na ordem. Cada etapa fornece as evidências para a seguinte.

Começar somente leitura

A Serena lê as configurações de um arquivo global, ~/.serena/serena_config.yml (no Windows, %USERPROFILE%\.serena\serena_config.yml), e de um project.yml que o substitui para um projeto. Abra qualquer um com serena config edit. Para as primeiras sessões, defina isto no arquivo do projeto:

read_only: true

Nesse modo, a Serena pode ler arquivos, inspecionar a estrutura, buscar símbolos e criar índices, mas não pode gravar. As leituras são onde as ferramentas de símbolo economizam tokens, então você perde pouco ao começar aqui, e não abre mão de nada que não possa ligar depois.

Uma mão circulando uma linha de uma folha de configuração impressa com uma caneta vermelha

Acompanhe o painel

A Serena serve um painel local, normalmente em http://localhost:24282/dashboard/index.html. O texto sobre segurança sugere rodar somente leitura por cerca de um dia e acompanhar: quais arquivos são tocados, quais ferramentas são chamadas e se os erros se repetem. Se uma ferramenta disparar sem que você esperasse, você descobre enquanto ela ainda é inofensiva.

Uma mulher estudando um monitor com um gráfico de barras em um escritório iluminado

Libere as ferramentas uma de cada vez

Quando os logs parecerem limpos, permita as gravações e mantenha o shell excluído. Os nomes abaixo vêm do mesmo texto de terceiros, então confirme-os na lista de ferramentas da versão da sua Serena:

read_only: false
included_optional_tools:
  - edit_file
excluded_tools:
  - execute_shell_command

Faça commit de uma árvore git limpa antes de cada sessão. Depois, git diff mostra exatamente o que a Serena alterou, e um único git restore desfaz uma edição ruim. Esse hábito vale mais do que qualquer configuração acima.

Uma lista curta para a primeira semana:

  • Confirme que /mcp lista a Serena como conectada e não mostra nenhuma ferramenta de shell.
  • Rode /context e anote o número das ferramentas MCP.
  • Mantenha read_only: true até o painel parecer entediante.
  • Revise git diff depois de cada sessão que gravou arquivos.
  • Abra a pasta .serena uma vez e leia o que as memórias contêm.

Revise sua configuração no PicassoIA

Uma segunda opinião sobre a sua configuração custa pouco. O Claude Sonnet 5 no PicassoIA lê código, configurações e capturas de tela, então pode revisar seu project.yml antes de você aplicá-lo.

Seis passos para revisar sua configuração

  1. Abra a página do modelo Claude Sonnet 5.
  2. Remova todos os tokens, senhas e URLs privadas da configuração, depois cole no Prompt com uma pergunta clara, como: "Revise este project.yml da Serena quanto a acesso de escrita e exposição de shell. Retorne uma tabela de riscos e uma correção para cada um."
  3. Defina o Effort. O padrão é low, que é rápido e barato. Use high para uma configuração com muitas ferramentas, e xhigh ou max só para uma configuração emaranhada.
  4. Adicione um System Prompt para fixar o papel: "Você é um revisor cuidadoso de ferramentas para desenvolvedores. Seja específico e breve."
  5. Opcional: anexe uma captura de tela do painel como Image. O padrão max_image_resolution tem 0,5 megapixel, o que basta para um gráfico legível.
  6. Mantenha o Max Tokens no padrão de 8.192, a não ser que você queira um relatório mais longo, e depois confira cada afirmação na documentação da Serena.

💡 Trate a resposta como um comentário de revisor, não como um veredito. Para outro ângulo, rode o mesmo prompt no Claude Fable 5 ou no GPT 5.6 Sol e compare onde eles divergem.

Erros comuns

Três desenvolvedores revisando juntos um notebook em volta de uma mesa de madeira

ErroO que aconteceCorreção
Pular --context claude-codeFerramentas de arquivo duplicadas, uma ferramenta de shell e uma carga maior de tokensSempre passe o parâmetro
--project-from-cwd global em todo lugarFerramentas de edição ativas em qualquer pasta que você abrirRegistre por projeto
Conectar auto-approve sem olharMenos chances de recusar uma chamada arriscadaLeia o hook e então decida
Rodar de uma URL git sem fixar versãoVocê roda o que a branch tiver naquele diaInstale o pacote ou fixe uma tag
Nunca conferir /contextO custo em tokens continua um palpiteMeça antes e depois
Fazer commit de .serena sem olharArquivos de memória e anotações vão parar em um repositório compartilhadoAbra a pasta primeiro
Confiar em uma sessão longaO agente se afasta das ferramentas da SerenaUse os hooks e reinicie

Crie suas próprias imagens no Picasso IA

Se você escreve sobre suas ferramentas, conhece a outra metade do trabalho: READMEs, posts de blog e slides de palestras precisam de visuais que pareçam pertencer ao conjunto. O Picasso IA reúne os modelos de imagem em um só lugar, então você pode testar um prompt, alterá-lo e comparar resultados em minutos. Para cenas fotorrealistas, comece com o Seedream 4.5 ou o FLUX 1.1 Pro, e depois explore todos os outros em picassoia.com/en/all-models.

Descreva uma cena real com uma lente, uma direção de luz e uma textura, rode e ajuste um detalhe por vez. Trate o primeiro resultado como um rascunho, porque o terceiro costuma se aproximar mais do que você imaginou. Abra um modelo, digite um prompt e veja o que volta.

Compartilhe este artigo

Escolha seu idioma