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.

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
- 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.
- 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.
- 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
- 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 .
- Éléments de configuration
Copiez le fichier de configuration de l'exemple :
cp myproject.demo.yml myproject.yml
compilateur myproject.yml
Le cadre :
project_root
: Votre chemin d'accès au code, par exemple/home/user/mycode
.language
: Type de langue, par exemplepython
.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)
- Installation de Claude Desktop
Télécharger sur https://claude.ai/download pour Windows et macOS. - Configuration du MCP
Ouvrez Claude Desktop, allez dans "Fichier > Paramètres > Développeur > Serveurs MCP > Modifier la configuration", modifiezclaude_desktop_config.json
Ajouter :
{
"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 (\).
- activer (un plan)
Sauvegardez et redémarrez Claude Desktop. L'interface affichera l'outil Serena (avec l'icône du petit marteau).
Cadre Agno
- 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
- Environnement de configuration
Dans le répertoire Serena, copiez.env.example
en raison de.env
Si vous utilisez un modèle payant, indiquez la clé API (si vous utilisez un modèle payant). - 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.
- 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 :
- Saisissez une demande dans l'interface Claude ou Agno, telle que "Trouver
my_function
de la citation". - Serena, appelez.
find_symbol
qui renvoie la définition de la fonction et l'emplacement de la référence.
éditeur de code
Insérer un nouveau code :
- dépense ou frais
read_file
Voir le document :read_file path/to/file.py
- 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")'
- Vérifiez le fichier pour confirmer les modifications.
Exécuter la commande
Exécutez le test :
- Entrée :
execute_shell_command 'pytest tests/'
- 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 :
- Entrée :
get_dir_overview
- Serena renvoie les fichiers et les symboles de premier niveau du répertoire.
Analyses et recommandations automatisées
Analyse du problème :
- Après avoir exécuté le test avec
think_about_collected_information
: :think_about_collected_information
- 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 investissementsshow_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
- 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. - 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. - Prototypage
Les développeurs individuels utilisent Serena pour insérer du code, exécuter des tests et valider rapidement leurs idées.
QA
- 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. - 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). - Comment gérez-vous les grands projets ?
Serena analyse efficacement le code avec LSP. Configuration recommandéeignored_dirs
Ignorer les dossiers superflus.
© déclaration de droits d'auteur
Article copyright Cercle de partage de l'IA Tous, prière de ne pas reproduire sans autorisation.
Articles connexes
Pas de commentaires...