Serena: una herramienta MCP gratuita para la recuperación semántica y la edición de código

Introducción general

Serena es una herramienta de programación gratuita y de código abierto desarrollada por el equipo Oraios AI y alojada en GitHub. Es un potente asistente de código que funciona directamente en su base de código, ayudando a los desarrolladores a analizar, editar y ejecutar código.Serena permite el análisis semántico a través del Protocolo de Servidor de Lenguaje (LSP), que permite una rápida comprensión de la estructura del código. También se integra con grandes modelos de lenguaje (LLM) como Claude Serena se ha diseñado para liberar a los desarrolladores de costosas dependencias de herramientas y proporcionarles un soporte de programación práctico y eficaz. Es adecuado para desarrolladores individuales, pequeños equipos e incluso grandes proyectos.

Serena:语义检索和编辑代码的免费MCP工具

 

Lista de funciones

  • Búsqueda semántica: encontrar símbolos, referencias o definiciones basándose en el significado del código.
  • Edición de código: admite la inserción, sustitución y eliminación de bloques de código con un funcionamiento preciso.
  • Ejecución de comandos: ejecute pruebas o scripts en el proyecto y vea los resultados.
  • Resumen del proyecto: Muestra un resumen de la estructura de directorios y el contenido de los archivos.
  • Soporte multilenguaje: soporte directo para Python, Java, TypeScript, soporte indirecto para más lenguajes.
  • Almacenamiento en memoria: guarda los registros de análisis para su uso posterior.
  • Integración LLM: vía MCP tal vez Agno El marco funciona con el modelo lingüístico.
  • Código abierto y gratuito: no se requiere clave API ni pago alguno para utilizarlo.

 

Utilizar la ayuda

Para instalar y utilizar Serena hay que seguir unos cuantos pasos, pero en general no es difícil. A continuación se describe detalladamente cómo instalar, configurar y utilizar sus funciones básicas.

Proceso de instalación

  1. Comprobación del entorno
    Serena requiere Python 3.11. Abra un terminal y escriba:
python --version

Si tiene una versión inferior a la 3.11, vaya al sitio web de Python para descargarla e instalarla.

  1. Descargar proyecto
    Vaya a https://github.com/oraios/serena, haga clic en "Código" y copie el enlace HTTPS. Ejecútalo en un terminal:
git clone https://github.com/oraios/serena.git

El proyecto se descargará localmente.

  1. Herramientas de instalación uv
    Serena utiliza uv para gestionar las dependencias. Para instalar uv consulte: https://docs.astral.sh/uv/getting-started/installation/. Ejecútalo en Linux/macOS por ejemplo:
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Instalación de dependencias
    Vaya al catálogo de proyectos:
cd serena

Instale las dependencias básicas:

uv pip install -e .

Si desea utilizar el framework Agno, instale todas las dependencias:

uv pip install --all-extras -e .
  1. Elementos de configuración
    Copie el archivo de configuración de ejemplo:
cp myproject.demo.yml myproject.yml

compilador myproject.ymlEntorno:

  • project_rootSu ruta de código, por ejemplo /home/user/mycode.
  • language: Tipo de lengua, por ejemplo python.
  • ignored_dirs: Ignora carpetas como .git.
    Guarda el archivo.

método de activación

Serena admite dos tipos principales de uso: el servidor MCP y el marco Agno.

Servidor MCP (con Claude Desktop)

  1. Instalación de Claude Desktop
    Descárgalo en https://claude.ai/download para Windows y macOS.
  2. Configuración de MCP
    Abra Claude Desktop, vaya a "File > Settings > Developer > MCP Servers > Edit Config", edite claude_desktop_config.jsonAñade:
{
"mcpServers": {
"serena": {
"command": "/path/to/uv",
"args": ["run", "--directory", "/path/to/serena", "serena-mcp-server", "/path/to/myproject.yml"]
}
}
}

comandante en jefe (militar) /path/to/uv responder cantando /path/to/serena Los usuarios de Windows deben tener en cuenta la doble barra invertida (\).

  1. activar (un plan)
    Guarde y reinicie Claude Desktop. La interfaz mostrará la herramienta Serena (con el icono del pequeño martillo).

Marco Agno

  1. Instalación de la interfaz de usuario
    Descargar Agno UI:

    npx create-agent-ui@latest
    

    o clonación manual:

    git clone https://github.com/agno-agi/agent-ui.git
    cd agent-ui
    pnpm install
    pnpm dev
    
  2. Entorno de configuración
    En el directorio Serena, copie .env.example debido a .envSi utiliza un modelo de pago, introduzca la clave API (si utiliza un modelo de pago).
  3. Comienza Agno.
    Corre en el catálogo de Serena:

    uv run python scripts/agno_agent.py
    

    Claude se utiliza por defecto y puede cambiarse por otro modelo en el script.

  4. Conexión a la interfaz de usuario
    Abra la interfaz de usuario de Agno en su navegador (normalmente http://localhost:5173) y conéctese al agente Agno.

Función principal Operación

recuperación semántica

Intento encontrar una referencia a una función determinada:

  1. Introduzca una solicitud en la interfaz Claude o Agno, como "Buscar my_function de la citación".
  2. Serena, llama. find_symbolque devuelve la definición de la función y la ubicación de la referencia.

editor de código

Insertar nuevo código:

  1. gasto o desembolso read_file Ver documento:
    read_file path/to/file.py
    
  2. gasto o desembolso insert_at_line Inserte, por ejemplo, añadir código a la línea 5:
    insert_at_line path/to/file.py 5 'print("Test")'
    
  3. Compruebe el archivo para confirmar los cambios.

Ejecutar comando

Haz la prueba:

  1. Entrada:
    execute_shell_command 'pytest tests/'
    
  2. Serena ejecuta y devuelve el resultado. Si algo va mal, sugiere una solución.

Función destacada Operación

Resumen del proyecto

Comprender rápidamente la estructura del código:

  1. Entrada:
    get_dir_overview
    
  2. Serena devuelve los archivos y símbolos de nivel superior del directorio.

Análisis y recomendaciones automatizados

Analizar el problema:

  1. Después de ejecutar la prueba con think_about_collected_information::
    think_about_collected_information
    
  2. Serena sugiere correcciones basadas en registros o resultados.

advertencia

  • problema de la víaUtiliza rutas absolutas para evitar errores de rutas relativas.
  • seguridadModo Agno.execute_shell_command No se requiere confirmación. Manipular con cuidado.
  • log (cálculo)Habilitar la ventana de registro (en la ventana myproject.yml gestión de inversiones show_logs: true) para facilitar la depuración.
  • control de versiones: Se recomienda gestionar el código en Git para evitar pérdidas accidentales.

Con estos pasos, podrá utilizar Serena fácilmente y mejorar la eficacia de su programación.

 

escenario de aplicación

  1. Corrección rápida de errores
    Cuando la prueba falla, Serena ejecuta el script, analiza los registros y sugiere cambios en el código adecuados para una solución de emergencia.
  2. Conocer los proyectos de código abierto
    Utilice Serena para analizar bases de código desconocidas, generando una visión general de la estructura y familiarizándose rápidamente con la lógica central.
  3. Creación de prototipos
    Los desarrolladores individuales utilizan Serena para insertar código, ejecutar pruebas y validar ideas rápidamente.

 

CONTROL DE CALIDAD

  1. ¿Es Serena completamente libre?
    Sí, es de código abierto y no requiere suscripción. Utilízalo junto con un LLM gratuito como Claude Free Edition.
  2. ¿Qué idiomas se admiten?
    Compatibilidad directa con Python, Java, TypeScript. Compatibilidad indirecta con Ruby, Go, C# (requiere configuración manual, no se ha probado completamente).
  3. ¿Cómo gestiona los grandes proyectos?
    Serena analiza eficazmente el código con LSP. Configuración recomendada ignored_dirs Ignora las carpetas extrañas.
© declaración de copyright

Puestos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...