Serena MCP

Servidor MCP Serena para recuperación semántica de código, edición de código y herramientas de contexto similares a un IDE que ayudan a agentes de codificación de IA a trabajar dentro de una base de código.

Documentación

El IDE para tu Agente de Programación

discord license

  • Serena proporciona herramientas esenciales de recuperación, edición, refactorización y depuración semántica de código que son similares a las capacidades de un IDE, operando a nivel de símbolo y explotando la estructura relacional.
  • Se integra con cualquier cliente/LLM mediante el protocolo de contexto de modelo (MCP).

El diseño de herramientas agente-primero de Serena implica abstracciones robustas de alto nivel, diferenciándose de enfoques que dependen de conceptos de bajo nivel como números de línea o patrones de búsqueda primitivos.

En la práctica, esto significa que tu agente opera más rápido, de manera más eficiente y más confiable, especialmente en bases de código más grandes y complejas.

[!IMPORTANT] ¡No instales Serena a través de un marketplace de MCP o plugins! Contienen comandos de instalación obsoletos y subóptimos. En su lugar, sigue nuestras instrucciones de Inicio Rápido.

Demo Rápida

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

:tv: Video más largo: Introducción a Serena en 5 Minutos (YouTube)

Lo Que Dicen Nuestros "Usuarios Finales"

Aunque son los humanos quienes descargan y configuran Serena, nuestros usuarios finales son esencialmente agentes de IA. Al ser quienes realmente aplican las herramientas de Serena, están en la mejor posición para evaluarla.

Elaboramos una pregunta de evaluación imparcial que lleva al agente a realizar ~20 tareas de codificación rutinarias, representativas del trabajo de desarrollo diario, para estimar el valor añadido de las herramientas de Serena cuando se usan junto con sus propias funciones integradas.

Aquí tienes un resumen de una frase de lo que dijeron los agentes:

Opus 4.6 (alto) en Claude Code sobre una base de código Python grande:

"Las herramientas semánticas respaldadas por IDE de Serena son la adición más impactante a mi kit de herramientas – renombrados entre archivos, movimientos y búsquedas de referencias que me costarían de 8 a 12 pasos cuidadosos y propensos a errores se colapsan en una sola llamada atómica, y absolutamente le pediría a cualquier desarrollador con quien trabajo que las configuren."

GPT 5.4 (alto) en Codex CLI sobre una base de código Java:

"Como agente de IA de codificación, le pediría a mi propietario que agregue Serena porque me da la comprensión a nivel de IDE de símbolos, referencias y refactorizaciones, transformando la cirugía de texto frágil en cambios de código más tranquilos, rápidos y seguros donde la semántica importa."

GPT 5.4 (medio) en Copilot CLI sobre un monorepo grande y multilingüe:

"Como agente de codificación, absolutamente le pediría a mi propietario que agregue Serena porque me hace notablemente más agudo y tranquilo en código real – especialmente navegación consciente de símbolos, refactorizaciones entre archivos y saltos de dependencias en monorepo – mientras aún dependo de funciones integradas para ediciones de texto pequeñas y trabajo no relacionado con código."

Diferentes agentes en diferentes entornos convergen independientemente en el mismo veredicto.

¡Dale a tu agente las herramientas que ha estado pidiendo y añade Serena MCP a tu cliente!

Consulta nuestra documentación para la metodología completa y resultados de evaluación mucho más detallados, o ejecuta tu propia evaluación en un proyecto de tu elección.

Cómo Funciona Serena

Serena proporciona las herramientas necesarias para flujos de trabajo de codificación, pero se requiere un LLM para realizar el trabajo real, orquestando el uso de herramientas.

Serena puede extender la funcionalidad de tu cliente de IA existente mediante el protocolo de contexto de modelo (MCP). La mayoría de los clientes de chat de IA modernos soportan MCP directamente, incluyendo

  • clientes basados en terminal como Claude Code, Codex, OpenCode o Gemini-CLI,
  • IDEs y plugins de asistente de IDE para VSCode, Cursor e IDEs de JetBrains (Copilot, Junie, JetBrains AI Assistant, etc.),
  • clientes de escritorio y web como Claude Desktop, Codex App u OpenWebUI.

:tv: Ver también: Introducción a Serena en 5 Minutos (YouTube)

Para conectar el servidor MCP de Serena a tu cliente, puedes:

  • proporcionar al cliente un comando de lanzamiento que le permita iniciar el servidor MCP, o
  • iniciar tú mismo el servidor MCP de Serena en modo HTTP y proporcionar al cliente la URL.

Consulta la sección Inicio Rápido a continuación para obtener información sobre cómo empezar.

Soporte de Lenguajes de Programación y Capacidades de Análisis Semántico

Serena proporciona un conjunto de funcionalidades versátiles de consulta y edición de código basadas en la comprensión simbólica del código. Equipado con estas capacidades, tu agente descubre y edita código como un desarrollador experimentado que utiliza las capacidades de un IDE. ¡Serena puede encontrar eficientemente el contexto correcto y hacer lo correcto incluso en proyectos muy grandes y complejos!

Hay dos tecnologías alternativas que impulsan estas capacidades:

  • Servidores de lenguaje que implementan el protocolo de servidor de lenguaje (LSP) — la alternativa gratuita/de código abierto que se utiliza por defecto.
  • El Plugin de JetBrains de Serena, que aprovecha las potentes capacidades de análisis de código y edición de tu IDE de JetBrains (plugin de pago; prueba gratuita disponible).

Puedes elegir cualquiera de estos backends según tus preferencias y requisitos.

Servidores de Lenguaje

Serena incorpora una poderosa capa de abstracción para la integración de servidores de lenguaje que implementan el protocolo de servidor de lenguaje (LSP). Los servidores de lenguaje subyacentes son típicamente proyectos de código abierto o al menos disponibles gratuitamente para su uso.

Cuando usas el backend de servidor de lenguaje de Serena, proporcionamos soporte para más de 40 lenguajes de programación, incluyendo Ada / SPARK, AL, Angular, Ansible, 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 y Zig.

El Plugin de JetBrains de Serena

El plugin de pago de Serena para JetBrains (prueba gratuita disponible) aprovecha las poderosas capacidades de análisis de código de tu IDE de JetBrains. El plugin soporta naturalmente todos los lenguajes de programación y frameworks que son compatibles con los IDEs de JetBrains, incluyendo IntelliJ IDEA, PyCharm, Android Studio, WebStorm, PhpStorm, RubyMine, GoLand y potencialmente otros (Rider y CLion no son compatibles).

Consulta nuestra página de documentación para más detalles e instrucciones sobre cómo aplicar el plugin.

Características

Serena proporciona una amplia gama de herramientas para la recuperación, edición y refactorización eficiente de código, así como un sistema de memoria para flujos de trabajo de agente de larga duración.

Dado su amplio alcance, Serena se adapta a tus necesidades ofreciendo un sistema de configuración de múltiples capas.

Detalles

Recuperación

Las herramientas de recuperación de Serena permiten a los agentes explorar bases de código a nivel de símbolo, comprendiendo su estructura y relaciones sin leer archivos completos.

CapacidadServidores de LenguajePlugin de JetBrains
encontrar símbolo
vista general de símbolos (esquema de archivo)
encontrar símbolos referenciados
buscar en dependencias del proyecto--
jerarquía de tipos--
encontrar declaraciónsí*
encontrar implementacionessí**
consultar proyectos externos
diagnósticos/inspecciones

*: Generalmente no funcionará para declaraciones en dependencias externas.
**: Solo disponible para algunos lenguajes, limitado por la funcionalidad del servidor de lenguaje.

Refactorización

Sin herramientas de refactorización precisas, los agentes se ven obligados a recurrir a operaciones de búsqueda y reemplazo poco confiables y costosas.

CapacidadServidores de LenguajePlugin de JetBrains
renombrarsí (solo símbolos)sí (símbolos, archivos, directorios)
mover (símbolo, archivo, directorio)--
en línea--
propagar eliminaciones (eliminar código no utilizado)--

Edición Simbólica

Las herramientas de edición simbólica de Serena son menos propensas a errores y mucho más eficientes en tokens que las alternativas típicas.

CapacidadServidores de LenguajePlugin de JetBrains
reemplazar cuerpo del símbolo
insertar después del símbolo
insertar antes del símbolo
eliminación segura

Depuración Interactiva

Exclusivo del plugin de JetBrains, Serena soporta una herramienta de depuración altamente general, que permite a un agente establecer puntos de interrupción, inspeccionar variables, evaluar expresiones y controlar el flujo de ejecución a través de una interfaz persistente estilo REPL.

Características Básicas

Más allá de sus capacidades semánticas, Serena incluye un conjunto de utilidades básicas para completar su funcionalidad. Cuando Serena se usa dentro de un marco agéntico como Claude Code o Codex, estas herramientas generalmente están deshabilitadas por defecto, ya que el marco circundante ya proporciona capacidades superpuestas de archivo, búsqueda y shell.

  • search_for_pattern – búsqueda regex flexible en toda la base de código
  • replace_content – reemplazo de texto regex basado y literal optimizado para agentes
  • list_dir / find_file – listado de directorios y búsqueda de archivos
  • read_file – leer archivos o fragmentos de archivos
  • execute_shell_command – ejecutar comandos de shell (por ejemplo, compilaciones, pruebas, linters)

Gestión de Memoria

Un sistema de memoria es elemental para flujos de trabajo de agente de larga duración, especialmente cuando el conocimiento debe compartirse entre sesiones, usuarios y proyectos. A pesar de su simplicidad, recibimos comentarios positivos de muchos usuarios que tienden a combinar el sistema de gestión de memoria de Serena con su sistema interno de su agente (por ejemplo, archivos AGENTS.md). Se puede deshabilitar fácilmente si prefieres usar otra cosa.

Configurabilidad

Herramientas activas, descripciones de herramientas, prompts, detalles del backend de lenguaje y muchos otros aspectos de Serena pueden configurarse de manera flexible caso por caso simplemente ajustando unas pocas líneas de YAML. Para lograrlo, Serena ofrece múltiples niveles de configuración (componibles):

  • configuración global
  • configuración del comando de lanzamiento MCP (CLI)
  • configuración por proyecto (con anulaciones locales)
  • configuración específica del contexto de ejecución (por ejemplo, para clientes particulares)
  • fragmentos de configuración dinámicamente componibles (modos)

Inicio Rápido

Requisitos previos. Serena se gestiona con uv, y instalar uv es el único requisito previo necesario.

[!NOTA] Cuando se usa el backend de servidor de lenguaje, es posible que se necesiten instalar dependencias adicionales para soportar ciertos lenguajes; consulta la página de Soporte de Lenguajes para más detalles.

Instalar Serena. Serena se instala mediante uv de la siguiente manera:

uv tool install -p 3.13 serena-agent

Después de una instalación exitosa, el comando serena debería estar disponible en tu shell.

Inicializar Serena. Para inicializar Serena y verificar que tu configuración funciona correctamente, simplemente ejecuta:

serena init

Por defecto, esto configurará Serena para usar el backend del servidor de lenguaje. Para usar el backend de JetBrains en su lugar, añade los parámetros -b JetBrains (consulta la página de documentación del plugin de JetBrains para más detalles de uso).
En cualquier caso, deberías recibir un mensaje de éxito indicando que Serena se ha inicializado correctamente.

Configuración de tu cliente. Para conectar Serena a tu cliente MCP preferido, normalmente necesitas configurar un comando de lanzamiento en tu cliente. Sigue el enlace para obtener instrucciones específicas sobre cómo configurar Serena para Claude Code, Codex, Claude Desktop, IDEs compatibles con MCP y otros clientes (como GUIs locales y basadas en web).

[!TIP] Aunque empezar rápidamente es fácil, Serena es un potente conjunto de herramientas con muchas opciones de configuración. Recomendamos encarecidamente leer la guía de usuario para sacar el máximo partido a Serena.

En concreto, recomendamos leer sobre ...

Guía de usuario

Consulta la guía de usuario para obtener instrucciones detalladas sobre cómo usar Serena de manera eficaz.

Agradecimientos

Una parte significativa de Serena, especialmente el soporte para varios lenguajes, fue contribuida por la comunidad de código abierto. Estamos muy agradecidos por los muchos colaboradores que hicieron esto posible y que desempeñaron un papel importante en hacer de Serena lo que es hoy.