Serena MCP

Servidor MCP Serena para recuperação semântica de código, edição de código e ferramentas de contexto semelhantes a IDE que ajudam agentes de codificação de IA a trabalhar dentro de uma base de código.

Documentação

O IDE para o seu Agente de Codificação

discord license: GPL-3.0-or-later

  • Serena fornece ferramentas essenciais de recuperação semântica de código, edição, refatoração e depuração que são semelhantes às capacidades de um IDE, operando no nível de símbolos e explorando a estrutura relacional.
  • Ele se integra a qualquer cliente/LLM por meio do protocolo de contexto de modelo (MCP).

O design de ferramentas voltado para agentes da Serena envolve abstrações robustas de alto nível, distinguindo-o de abordagens que dependem de conceitos de baixo nível, como números de linha ou padrões de busca primitivos.

Na prática, isso significa que seu agente opera mais rápido, com mais eficiência e mais confiabilidade, especialmente em bases de código maiores e mais complexas.

[!IMPORTANT] Não instale a Serena por meio de um marketplace de MCP ou plugins! Eles contêm comandos de instalação desatualizados e abaixo do ideal. Em vez disso, siga nossas instruções de Início Rápido.

Demonstração Rápida

https://github.com/user-attachments/assets/8d11646e-b80e-4723-b9d7-32d6101b5f58

:tv: Vídeo mais longo: Introdução à Serena em 5 Minutos (YouTube)

O Que Nossos "Usuários Finais" Dizem

Embora sejam humanos que baixam e configuram a Serena, nossos usuários finais são essencialmente agentes de IA. Como são eles que realmente aplicam as ferramentas da Serena, estão na melhor posição para avaliá-la.

Elaboramos um prompt de avaliação imparcial que leva o agente a realizar ~20 tarefas rotineiras de codificação, representativas do trabalho diário de desenvolvimento, para estimar o valor agregado pelas ferramentas da Serena quando usadas em conjunto com seus recursos integrados.

Aqui está um resumo em uma frase do que os agentes disseram:

Opus 4.6 (alto) no Claude Code em uma grande base de código Python:

"As ferramentas semânticas com suporte de IDE da Serena são a adição de maior impacto ao meu kit de ferramentas – renomeações entre arquivos, movimentações e consultas de referências que me custariam 8–12 etapas cuidadosas e propensas a erros se transformam em uma única chamada atômica, e eu absolutamente pediria a qualquer desenvolvedor com quem trabalho que as configurasse."

GPT 5.4 (alto) no Codex CLI em uma base de código Java:

"Como agente de IA de codificação, eu pediria ao meu proprietário para adicionar a Serena porque ela me dá a compreensão em nível de IDE de símbolos, referências e refatorações que me faltava, transformando cirurgia de texto frágil em mudanças de código mais calmas, rápidas e confiantes onde a semântica importa."

GPT 5.4 (médio) no Copilot CLI em um monorepo grande e multilíngue:

"Como agente de codificação, eu absolutamente pediria ao meu proprietário para adicionar a Serena porque ela me torna visivelmente mais afiado e calmo em código real – especialmente navegação ciente de símbolos, refatorações entre arquivos e saltos de dependências em monorepo – enquanto ainda conto com recursos integrados para pequenas edições de texto e trabalho não relacionado a código."

Diferentes agentes em diferentes ambientes convergem independentemente para o mesmo veredito.

Dê ao seu agente as ferramentas que ele vem pedindo e adicione a Serena MCP ao seu cliente!

Consulte nossa documentação para a metodologia completa e resultados de avaliação muito mais detalhados, ou execute sua própria avaliação em um projeto de sua escolha.

Como a Serena Funciona

A Serena fornece as ferramentas necessárias para fluxos de trabalho de codificação, mas um LLM é necessário para fazer o trabalho real, orquestrando o uso das ferramentas.

A Serena pode estender a funcionalidade do seu cliente de IA existente por meio do protocolo de contexto de modelo (MCP). A maioria dos clientes modernos de chat de IA suporta MCP diretamente, incluindo

  • clientes baseados em terminal como Claude Code, Codex, OpenCode ou Gemini-CLI,
  • IDEs e plugins assistentes de IDE para VSCode, Cursor e IDEs JetBrains (Copilot, Junie, JetBrains AI Assistant, etc.),
  • clientes desktop e web como Claude Desktop, Codex App ou OpenWebUI.

:tv: Veja também: Introdução à Serena em 5 Minutos (YouTube)

Para conectar o servidor MCP da Serena ao seu cliente, você pode

  • fornecer ao cliente um comando de inicialização que permita iniciar o servidor MCP, ou
  • iniciar o servidor MCP da Serena você mesmo no modo HTTP e fornecer ao cliente a URL.

Consulte a seção Início Rápido abaixo para obter informações sobre como começar.

Suporte a Linguagens de Programação e Capacidades de Análise Semântica

A Serena fornece um conjunto versátil de funcionalidades de consulta e edição de código baseadas na compreensão simbólica do código. Equipado com essas capacidades, seu agente descobre e edita código como um desenvolvedor experiente que usa as capacidades de um IDE. A Serena pode encontrar eficientemente o contexto certo e fazer a coisa certa mesmo em projetos muito grandes e complexos!

Existem duas tecnologias alternativas que alimentam essas capacidades:

  • Servidores de linguagem que implementam o protocolo de servidor de linguagem (LSP) — a alternativa gratuita/de código aberto que é usada por padrão.
  • O Plugin Serena JetBrains, que aproveita as poderosas capacidades de análise e edição de código do seu IDE JetBrains (plugin pago; teste gratuito disponível).

Você pode escolher qualquer um desses backends dependendo de suas preferências e requisitos.

Servidores de Linguagem

A Serena incorpora uma poderosa camada de abstração para a integração de servidores de linguagem que implementam o protocolo de servidor de linguagem (LSP). Os servidores de linguagem subjacentes são tipicamente projetos de código aberto ou pelo menos gratuitamente disponíveis para uso.

Ao usar o backend de servidor de linguagem da Serena, fornecemos suporte para mais de 40 linguagens de programação, incluindo Ada / SPARK, AL, Angular, Ansible, Astro, Bash, BSL, C#, C/C++, Clojure, Crystal, CUE, Dart, Deno, Elixir, Elm, Erlang, Fortran, F#, GDScript, Gleam, GLSL, Go, Groovy, Haskell, Haxe, HLSL, HTML, Java, JavaScript, JSON, Julia, Kotlin, LaTeX, Lean 4, Lua, Luau, Markdown, MATLAB, mSL, Nextflow, Nix, OCaml, Pascal, Perl, PHP, PowerShell, Python, QML, R, Rego, Ruby, Rust, Scala, SCSS / Sass / CSS, Solidity, Svelte, Swift, SystemVerilog, Terraform, TOML, TypeScript, Vue, WGSL, Wolfram Language, YAML e Zig.

O Plugin Serena JetBrains

O Plugin Serena JetBrains pago (teste gratuito disponível) aproveita as poderosas capacidades de análise de código do seu IDE JetBrains. O plugin suporta naturalmente todas as linguagens de programação e frameworks suportados pelos IDEs JetBrains, incluindo IntelliJ IDEA, PyCharm, Android Studio, WebStorm, PhpStorm, RubyMine, GoLand e potencialmente outros (Rider e CLion não são suportados).

Consulte nossa página de documentação para mais detalhes e instruções sobre como aplicar o plugin.

Recursos

A Serena fornece uma ampla gama de ferramentas para recuperação, edição e refatoração eficiente de código, bem como um sistema de memória para fluxos de trabalho de agentes de longa duração.

Dado seu amplo escopo, a Serena se adapta às suas necessidades oferecendo um sistema de configuração em múltiplas camadas.

Detalhes

Recuperação

As ferramentas de recuperação da Serena permitem que agentes explorem bases de código no nível de símbolos, entendendo estrutura e relacionamentos sem ler arquivos inteiros.

CapacidadeServidores de LinguagemPlugin JetBrains
encontrar símbolosimsim
visão geral de símbolos (esboço do arquivo)simsim
encontrar símbolos de referênciasimsim
pesquisar em dependências do projeto--sim
hierarquia de tipos--sim
encontrar declaraçãosim*sim
encontrar implementaçõessim**sim
consultar projetos externossimsim
diagnósticos/inspeçõessimsim

*: Geralmente não funcionará para declarações em dependências externas.
**: Disponível apenas para algumas linguagens, limitado pela funcionalidade do servidor de linguagem.

Refatoração

Sem ferramentas precisas de refatoração, os agentes são forçados a recorrer a operações de busca e substituição não confiáveis e caras.

CapacidadeServidores de LinguagemPlugin JetBrains
renomearsim (apenas símbolos)sim (símbolos, arquivos, diretórios)
mover (símbolo, arquivo, diretório)--sim
inline--sim
propagar exclusões (remover código não utilizado)--sim

Edição Simbólica

As ferramentas de edição simbólica da Serena são menos propensas a erros e muito mais eficientes em tokens do que alternativas típicas.

CapacidadeServidores de LinguagemPlugin JetBrains
substituir corpo do símbolosimsim
inserir após símbolosimsim
inserir antes do símbolosimsim
exclusão segurasimsim

Depuração Interativa

Exclusivo do plugin JetBrains, a Serena suporta uma ferramenta de depuração altamente geral, que permite a um agente definir pontos de interrupção, inspecionar variáveis, avaliar expressões e controlar o fluxo de execução por meio de uma interface persistente no estilo REPL.

Recursos Básicos

Além de suas capacidades semânticas, a Serena inclui um conjunto de utilitários básicos para completude. Quando a Serena é usada dentro de um ambiente agêntico como Claude Code ou Codex, essas ferramentas são tipicamente desabilitadas por padrão, já que o ambiente circundante já fornece capacidades sobrepostas de arquivo, busca e shell.

  • search_for_pattern – busca regex flexível em toda a base de código
  • replace_content – substituição de texto baseada em regex e literal otimizada para agentes
  • list_dir / find_file – listagem de diretórios e busca de arquivos
  • read_file – ler arquivos ou partes de arquivos
  • execute_shell_command – executar comandos de shell (ex.: builds, testes, linters)

Gerenciamento de Memória

Um sistema de memória é essencial para fluxos de trabalho de agentes de longa duração, especialmente quando o conhecimento deve ser compartilhado entre sessões, usuários e projetos. Apesar de sua simplicidade, recebemos feedback positivo de muitos usuários que tendem a combinar o sistema de gerenciamento de memória da Serena com o sistema interno de seu agente (ex.: arquivos AGENTS.md). Ele pode ser facilmente desabilitado se você preferir usar outra coisa.

Configurabilidade

Ferramentas ativas, descrições de ferramentas, prompts, detalhes do backend de linguagem e muitos outros aspectos da Serena podem ser configurados de forma flexível caso a caso simplesmente ajustando algumas linhas de YAML. Para conseguir isso, a Serena oferece múltiplos níveis de configuração (componíveis):

  • configuração global
  • configuração do comando de inicialização MCP (CLI)
  • configuração por projeto (com substituições locais)
  • configuração específica do contexto de execução (ex.: para clientes específicos)
  • fragmentos de configuração dinamicamente componíveis (modos)

Início Rápido

Pré-requisitos. A Serena é gerenciada por uv, e instalar uv é o único pré-requisito necessário.

[!NOTE] Ao usar o backend de servidor de linguagem, algumas dependências adicionais podem precisar ser instaladas para suportar certas linguagens; consulte a página Suporte a Linguagens para detalhes.

Instalar a Serena. A Serena é instalada via uv da seguinte forma:

uv tool install -p 3.13 serena-agent

Após a instalação bem-sucedida, o comando serena deve estar disponível no seu shell.

Inicializar a Serena. Para inicializar a Serena e verificar se sua configuração funciona corretamente, basta executar:

serena init

Por padrão, isso configurará o Serena para usar o backend do servidor de linguagem. Para usar o backend JetBrains, adicione os parâmetros -b JetBrains (consulte a página de documentação do plugin JetBrains para obter detalhes adicionais de uso).
De qualquer forma, você deve receber uma mensagem de sucesso indicando que o Serena foi inicializado com sucesso.

Configurando seu cliente. Para conectar o Serena ao seu cliente MCP preferido, normalmente você precisa configurar um comando de inicialização no seu cliente. Siga o link para obter instruções específicas sobre como configurar o Serena para Claude Code, Codex, Claude Desktop, IDEs habilitados para MCP e outros clientes (como GUIs locais e baseadas na web).

[!TIP] Embora seja fácil começar rapidamente, o Serena é um kit de ferramentas poderoso com muitas opções de configuração. Recomendamos fortemente a leitura do guia do usuário para aproveitar ao máximo o Serena.

Especificamente, recomendamos ler sobre ...

Guia do Usuário

Consulte o guia do usuário para obter instruções detalhadas sobre como usar o Serena de forma eficaz.

Agradecimentos

Uma parte significativa do Serena, especialmente o suporte para vários idiomas, foi contribuída pela comunidade de código aberto. Somos muito gratos pelos muitos colaboradores que tornaram isso possível e que desempenharam um papel importante em tornar o Serena o que é hoje.

Licença

O Serena é licenciado por componente: SolidLSP (src/solidlsp) sob a Licença MIT, o aplicativo Serena (todo o resto) sob GPL-3.0-or-later. Distribuições que combinam ambos estão, como um todo, sujeitas à GPL.

Consulte LICENSE para a visão geral autoritativa e a documentação de licença para o contexto. As contribuições exigem aceitação do nosso CLA; consulte CONTRIBUTING.md.