Serena : un outil MCP gratuit pour la recherche sémantique et l'édition de code

Introduction générale

Serena est un outil de programmation gratuit et open source développé par l'équipe Oraios AI et hébergé sur GitHub. Il s'agit d'un puissant assistant de code qui fonctionne directement dans votre base de code, aidant les développeurs à analyser, éditer et exécuter le code. Serena permet l'analyse sémantique grâce au Language Server Protocol (LSP), ce qui permet une compréhension rapide de la structure du code. Il s'intègre également à de grands modèles de langage (LLM) tels que Claude Serena est conçu pour libérer les développeurs des dépendances d'outils coûteux et fournir un support de programmation pratique et efficace. Il convient aux développeurs individuels, aux petites équipes et même aux grands projets.

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

 

Liste des fonctions

  • Recherche sémantique : trouver des symboles, des références ou des définitions sur la base de la signification du code.
  • Édition de code : prise en charge de l'insertion, du remplacement et de la suppression de blocs de code par des opérations précises.
  • Exécution de commandes : exécuter des tests ou des scripts dans le projet et voir les résultats.
  • Aperçu du projet : affiche un résumé de la structure du répertoire et du contenu des fichiers.
  • Prise en charge multilingue : prise en charge directe de Python, Java, TypeScript, prise en charge indirecte d'autres langages.
  • Stockage en mémoire : sauvegarde des enregistrements d'analyse pour une utilisation ultérieure.
  • Intégration du LLM : via MCP peut-être Agno Le cadre fonctionne avec le modèle linguistique.
  • Open source et gratuit : aucune clé API ni aucun paiement n'est nécessaire pour l'utiliser.

 

Utiliser l'aide

L'installation et l'utilisation de Serena comportent quelques étapes, mais dans l'ensemble, elles ne sont pas difficiles. Vous trouverez ci-dessous une description détaillée de l'installation, de la configuration et de l'utilisation de ses principales fonctions.

Processus d'installation

  1. Vérification de l'environnement
    Serena nécessite Python 3.11. Ouvrez un terminal et tapez :
python --version

Si vous avez une version inférieure à 3.11, allez sur le site web de Python pour la télécharger et l'installer.

  1. Télécharger le projet
    Allez sur https://github.com/oraios/serena, cliquez sur "Code" et copiez le lien HTTPS. Exécutez-le dans un terminal :
git clone https://github.com/oraios/serena.git

Le projet sera téléchargé localement.

  1. Outils d'installation uv
    Serena utilise uv pour gérer les dépendances. Pour installer uv, voir : https://docs.astral.sh/uv/getting-started/installation/. Exécutez-le sur Linux/macOS par exemple :
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Installation des dépendances
    Accédez au catalogue de projets :
cd serena

Installer les dépendances de base :

uv pip install -e .

Si vous souhaitez utiliser le framework Agno, installez toutes les dépendances :

uv pip install --all-extras -e .
  1. Éléments de configuration
    Copiez le fichier de configuration de l'exemple :
cp myproject.demo.yml myproject.yml

compilateur myproject.ymlLe cadre :

  • project_root: Votre chemin d'accès au code, par exemple /home/user/mycode.
  • language: Type de langue, par exemple python.
  • ignored_dirs: Ignorer les dossiers tels que .git.
    Enregistrer le fichier.

méthode d'activation

Serena supporte deux types d'utilisation principaux : le serveur MCP et le cadre Agno.

Serveur MCP (avec Claude Desktop)

  1. Installation de Claude Desktop
    Télécharger sur https://claude.ai/download pour Windows et macOS.
  2. Configuration du MCP
    Ouvrez Claude Desktop, allez dans "Fichier > Paramètres > Développeur > Serveurs MCP > Modifier la configuration", modifiez claude_desktop_config.jsonAjouter :
{
"mcpServers": {
"serena": {
"command": "/path/to/uv",
"args": ["run", "--directory", "/path/to/serena", "serena-mcp-server", "/path/to/myproject.yml"]
}
}
}

commandant en chef (militaire) /path/to/uv répondre en chantant /path/to/serena Les utilisateurs de Windows notent la double barre oblique inverse (\).

  1. activer (un plan)
    Sauvegardez et redémarrez Claude Desktop. L'interface affichera l'outil Serena (avec l'icône du petit marteau).

Cadre Agno

  1. Installation de l'interface utilisateur
    Télécharger Agno UI :

    npx create-agent-ui@latest
    

    ou le clonage manuel :

    git clone https://github.com/agno-agi/agent-ui.git
    cd agent-ui
    pnpm install
    pnpm dev
    
  2. Environnement de configuration
    Dans le répertoire Serena, copiez .env.example en raison de .envSi vous utilisez un modèle payant, indiquez la clé API (si vous utilisez un modèle payant).
  3. Démarrer Agno.
    Exécuter dans le catalogue Serena :

    uv run python scripts/agno_agent.py
    

    Claude est utilisé par défaut et peut être remplacé par un autre modèle dans le script.

  4. Connexion à l'interface utilisateur
    Ouvrez l'interface Agno dans votre navigateur (généralement http://localhost:5173) et connectez-vous à l'agent Agno.

Fonction principale Fonctionnement

recherche sémantique

J'essaie de trouver une référence à une certaine fonction :

  1. Saisissez une demande dans l'interface Claude ou Agno, telle que "Trouver my_function de la citation".
  2. Serena, appelez. find_symbolqui renvoie la définition de la fonction et l'emplacement de la référence.

éditeur de code

Insérer un nouveau code :

  1. dépense ou frais read_file Voir le document :
    read_file path/to/file.py
    
  2. dépense ou frais insert_at_line Insérer, par exemple, un code à la ligne 5 :
    insert_at_line path/to/file.py 5 'print("Test")'
    
  3. Vérifiez le fichier pour confirmer les modifications.

Exécuter la commande

Exécutez le test :

  1. Entrée :
    execute_shell_command 'pytest tests/'
    
  2. Serena exécute et renvoie le résultat. Si quelque chose ne va pas, il propose une solution.

Fonction en vedette Fonctionnement

Aperçu du projet

Comprendre rapidement la structure du code :

  1. Entrée :
    get_dir_overview
    
  2. Serena renvoie les fichiers et les symboles de premier niveau du répertoire.

Analyses et recommandations automatisées

Analyse du problème :

  1. Après avoir exécuté le test avec think_about_collected_information: :
    think_about_collected_information
    
  2. Serena propose des corrections basées sur les journaux ou les résultats.

mise en garde

  • question des voies d'accèsLes chemins d'accès : Utilisez des chemins d'accès absolus afin d'éviter les erreurs de chemins d'accès relatifs.
  • la sécuritéMode "Agno" : Mode "Agno".execute_shell_command Aucune confirmation n'est requise, mais il convient de les manipuler avec précaution.
  • log (calcul): Activer la fenêtre d'enregistrement (dans la fenêtre d'accueil). myproject.yml gestion des investissements show_logs: true) pour faciliter le débogage.
  • contrôle des versionsIl est recommandé de gérer votre code dans Git afin d'éviter toute perte accidentelle.

Ces étapes vous permettront d'utiliser facilement Serena et d'améliorer l'efficacité de votre programmation.

 

scénario d'application

  1. Corrections rapides de bugs
    Lorsque le test échoue, Serena exécute le script, analyse les journaux et suggère des modifications du code pour une correction d'urgence.
  2. Apprendre à connaître les projets open source
    Utilisez Serena pour analyser des bases de code inconnues, en générant une vue d'ensemble de la structure et en vous familiarisant rapidement avec la logique de base.
  3. Prototypage
    Les développeurs individuels utilisent Serena pour insérer du code, exécuter des tests et valider rapidement leurs idées.

 

QA

  1. Serena est-elle totalement gratuite ?
    Oui, il s'agit d'un logiciel libre qui ne nécessite pas d'abonnement. Utilisez-le en conjonction avec un LLM gratuit tel que Claude Free Edition.
  2. Quelles sont les langues prises en charge ?
    Prise en charge directe de Python, Java, TypeScript. Prise en charge indirecte de Ruby, Go, C# (configuration manuelle requise, pas entièrement testée).
  3. Comment gérez-vous les grands projets ?
    Serena analyse efficacement le code avec LSP. Configuration recommandée ignored_dirs Ignorer les dossiers superflus.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...