Serena MCP est-il sûr ? Consommation de tokens et configuration de Claude Code

Serena MCP donne à Claude Code des outils au niveau des symboles, et avec eux un véritable accès en écriture. Découvrez ce que peut faire l’outil shell, ce que coûtent en tokens les définitions d’outils, les commandes de configuration exactes et un déploiement en lecture seule qui protège votre dépôt.

Serena MCP est-il sûr ? Consommation de tokens et configuration de Claude Code
Cristian Da Conceicao
Fondateur de Picasso IA

Serena MCP est sûr à utiliser si vous le traitez comme tout outil capable de modifier votre code, car c’est exactement ce qu’il est. Le serveur tourne sur votre propre machine, le code source est public, et dans le contexte claude-code son outil shell est désactivé. Les vraies questions sont plus précises : que peut-il écrire sur le disque, ce qu’il envoie à l’extérieur, et combien de tokens consomme-t-il avant que vous ayez tapé le moindre prompt ? Cet article répond aux trois avec des commandes exactes, des noms de configuration et un ordre de déploiement que vous pouvez suivre dès aujourd’hui.

Un mot sur les sources. Les commandes et réglages ci-dessous proviennent du dépôt de Serena et de sa page de configuration client. Les chiffres de tokens viennent d’un wrapper tiers et d’une analyse de sécurité, que j’indique comme tels. Mesurez votre propre configuration avant de vous fier à un chiffre, le mien compris.

Mains de développeur posées sur un ordinateur portable dans un bureau à domicile calme au lever du soleil

Ce que fait réellement Serena

Serena, développé par Oraios, est un serveur MCP qui fournit à un agent de code des outils de type IDE. Au lieu de lire des fichiers entiers et de faire correspondre du texte, l’agent demande des symboles : classes, fonctions, méthodes et les endroits qui les référencent. Le dépôt liste des outils de recherche (trouver un symbole, aperçu des symboles, trouver les symboles référençant), l’édition symbolique (remplacer le corps d’un symbole, insérer avant ou après un symbole), la recherche par expressions régulières, les opérations sur les fichiers, l’exécution shell et un système de mémoire persistante. La prise en charge couvre plus de 40 langages grâce aux serveurs de langage.

Qui en tire profit ? Toute personne qui travaille sur un dépôt trop volumineux pour tenir dans un seul prompt : backends multi-modules, monorepos, applications anciennes où un renommage touche trente fichiers. Si votre projet se résume à quelques scripts, les outils classiques de Claude Code suffisent déjà, et ajouter un serveur ne fait surtout qu’augmenter la surface d’attaque. Adaptez l’outil à la taille du problème avant de vous demander s’il est sûr.

Les symboles plutôt que le texte brut

Un agent classique trouve une fonction en recherchant du texte, puis lit les fichiers environnants pour être sûr d’avoir la bonne. Serena interroge plutôt un serveur de langage, de sorte que la réponse est la définition elle-même, et non un tas de fichiers.

Un bibliothécaire sortant une seule fiche d’un long tiroir de fichier en bois

TâcheOutils de fichiers classiquesOutils Serena
Trouver une fonctionRechercher du texte, lire des fichiers entiersTrouver un symbole renvoie la définition
Voir qui l’appelleChercher et devinerTrouver les symboles référençant
Modifier une méthodeRéécrire un bloc de texteRemplacer le corps du symbole
S’orienter dans un fichierLire le fichier completAperçu des symboles

Où reste le code

Claude Code lance Serena comme processus local, et les serveurs de langage tournent eux aussi en local. Serena n’est pas un service hébergé, et d’après la documentation publique, il n’existe pas de cloud Serena qui reçoive votre dépôt. Un point mérite d’être dit clairement : tout ce que renvoie un outil Serena atterrit dans le contexte de Claude, et ce contexte est envoyé à l’API du modèle comme tout autre résultat d’outil. Serena ne rend pas une session plus privée. Il rend les lectures plus petites et plus précises.

Serena MCP est-il sûr ?

Pour la plupart des développeurs qui travaillent sur leurs propres dépôts, oui, sous conditions. Les risques sont ordinaires, et chacun dispose d’un contrôle que vous pouvez configurer en quelques minutes.

Partez du modèle de menace. Vous ne craignez pas qu’un inconnu s’introduise dans Serena. Vous craignez trois choses plus discrètes : que l’agent modifie des fichiers que vous n’aviez pas prévu de toucher, que l’agent exécute une commande que vous n’aviez pas prévue, et qu’un texte présent dans un fichier pousse l’agent à faire l’une ou l’autre. Ce dernier point est l’injection de prompt, et il concerne tout outil qui lit du contenu non fiable. Un dépôt cloné, une dépendance téléchargée ou un ticket collé peuvent contenir une phrase destinée au modèle plutôt qu’à vous. Une liste d’outils courte et une demande de confirmation pour les écritures forment la meilleure défense, car elles limitent ce qu’une instruction détournée peut atteindre.

Un cadenas en acier et une chaîne en fer fermant un portail en bois patiné

DomaineRisqueContrôle
Écritures de fichiersLes modifications de symboles changent les fichiers sur le disqueread_only: true, un arbre git propre, relecture des différences
Shellexecute_shell_command exécute des commandes arbitrairesExclu dans le contexte claude-code, plus excluded_tools
TélémétrieRemontée anonyme d’usageSERENA_USAGE_REPORTING=false
Chaîne d’approvisionnementExécution directe depuis une URL gitInstaller le paquet ou épingler une étiquette
Injection de promptUn texte dans le dépôt peut donner des instructions à l’agentDemandes de confirmation, liste d’outils réduite
LicenceCode de l’application sous GPL-3.0-or-laterLe lire avant toute redistribution

La partie open source

Le code de l’application Serena est sous GPL-3.0-or-later, et la couche SolidLSP incluse est sous MIT. Un code ouvert signifie que vous pouvez lire exactement ce qui tourne sur votre machine, ce qui constitue une vraie garantie de sécurité. Exécuter un outil GPL sur votre dépôt ne modifie pas la licence de ce dépôt. La licence devient importante lorsque vous modifiez Serena et le distribuez à d’autres personnes, et à ce moment-là, mieux vaut consulter un juriste plutôt qu’un blog.

Le problème de l’outil shell

L’outil le plus sensible de l’ensemble est execute_shell_command. Une analyse de sécurité consacrée à Serena le qualifie de capacité la plus dangereuse, avec la suppression accidentelle de fichiers, la fuite d’identifiants et la dégradation de la configuration système comme modes de défaillance, et recommande de le réserver aux environnements CI plutôt qu’au travail local.

Un interrupteur à levier industriel sous un capot transparent articulé, avec une main gantée au-dessus

Le contexte claude-code le retire déjà. Ce contexte exclut six outils : create_text_file, read_file, execute_shell_command, find_file, list_dir et search_for_pattern. La raison n’a rien de paranoïaque. Claude Code dispose de ses propres outils de fichiers et de shell, donc Serena s’efface sur ces points et conserve le travail sur les symboles.

💡 Exclure l’outil shell de Serena ne retire pas la puissance shell de la session. L’outil Bash de Claude Code reste disponible, mais il passe par les demandes de confirmation de Claude Code, et c’est là que vous voulez que cette décision se prenne.

Télémétrie et appels réseau

Serena documente une option de désactivation de la remontée anonyme d’usage : définissez SERENA_USAGE_REPORTING=false dans l’environnement qui lance le serveur. Les serveurs de langage sont des programmes distincts, et selon le langage, l’un d’eux peut devoir être téléchargé la première fois que vous l’utilisez. Attendez-vous à un peu d’activité réseau lors d’un premier lancement dans un nouveau langage, et vérifiez le journal de votre pare-feu si votre environnement est strict.

Consommation de tokens en session réelle

Serena consomme des tokens de deux façons. Le coût fixe correspond aux définitions d’outils chargées dans chaque session. Le coût variable correspond à ce que les outils renvoient pendant votre travail. Le premier est prévisible, le second dépend de votre façon de travailler.

Où partent les tokens

Le projet wrapper serena-slim estime que le Serena d’origine charge 29 outils représentant environ 23 878 tokens dans Claude Code, et que sa version regroupée, avec 18 opérations, ramène ce total à environ 11 874 tokens. Il s’agit d’un chiffre fourni par l’éditeur d’un wrapper tiers, pas d’une mesure de votre installation. Dans le contexte claude-code, six outils sont déjà exclus, donc votre total est probablement inférieur à celui de la version d’origine.

Mesurez-le vous-même. Lancez /context dans Claude Code avant d’ajouter le serveur, puis à nouveau après, et comparez la ligne des outils MCP. Cette seule comparaison vaut mieux que n’importe quelle estimation de cet article.

Pour comprendre pourquoi le coût fixe compte, voici un calcul, pas une mesure. Supposons que les définitions pèsent 12 000 tokens et que vous ouvriez 20 sessions par jour. Cela fait 240 000 tokens de surcharge avant même qu’une question soit posée. Si vous réduisez la charge de moitié, vous économisez encore autant chaque jour, que Serena soit utile ou non dans cette session.

L’aiguille d’une jauge de carburant posée près du milieu de son arc sur un tableau de bord ancien

Le coût variable se répartit en trois postes :

  • L’aperçu des symboles renvoie des noms et des emplacements, pas des corps de fonctions, donc s’orienter dans un grand fichier coûte bien moins que de le lire.
  • Trouver les symboles référençant sur une fonction utilisée partout peut renvoyer une longue liste. Posez des questions plus ciblées sur les grands codebases.
  • L’intégration d’un nouveau projet demande à l’agent d’explorer le code et de stocker des notes sous forme de mémoires. Les modes no-onboarding et no-memories désactivent cela lorsque vous voulez une session allégée.

Pourquoi le contexte Claude Code aide

Les contextes sont choisis au démarrage et ne peuvent pas changer en cours de session. Le contexte par défaut est desktop-app, qui est prévu pour un client différent de Claude Code. Sans --context claude-code, attendez-vous à des outils de fichiers qui font double emploi avec ceux de Claude Code, à un outil shell et à une charge de définitions plus lourde, le tout à la fois. Tapez /mcp après la configuration et comparez la liste des outils aux six exclusions ci-dessus. Un seul indicateur règle en même temps le coût en tokens et l’exposition en matière de sécurité.

Variantes allégées et recherche d’outils

Claude Code peut aussi différer le chargement des définitions d’outils MCP et les charger à la demande plutôt qu’au démarrage. Une analyse de configuration active cette option avec ENABLE_TOOL_SEARCH=true ; vérifiez les notes de version de votre Claude Code, car l’interrupteur peut différer. Un wrapper allégé ajoute un paquet tiers de plus entre vous et votre code. Pesez-le face aux tokens économisés, car l’économie ne vaut que si vous faites confiance à cette couche supplémentaire.

Configuration de Claude Code, étape par étape

L’ensemble de la procédure prend quelques minutes. uv est le seul prérequis.

Installer et initialiser

uv tool install -p 3.13 serena-agent
serena init

Serena propose aussi un raccourci, serena setup claude-code, pour la même tâche. Les commandes manuelles ci-dessous vous montrent exactement à quoi vous consentez, c’est pourquoi je les préfère la première fois.

Ajouter le serveur manuellement

Pour un seul projet, lancez cette commande depuis le dossier du projet :

claude mcp add serena -- serena start-mcp-server --context claude-code --project "$(pwd)"

Pour tous les projets de la machine, la forme globale est :

claude mcp add --scope user serena -- serena start-mcp-server --context claude-code --project-from-cwd

Je recommande la commande par projet. Claude Code la stocke par défaut dans la portée locale, donc elle ne s’applique qu’à ce projet, alors que la forme globale active Serena dans n’importe quel dossier que vous ouvrez, si bien qu’une session lancée par erreur dans le mauvais répertoire obtient les mêmes outils d’édition. Vérifiez le résultat avec claude mcp list, ou tapez /mcp dans Claude Code. Si le serveur met du temps à démarrer, augmentez le délai avec export MCP_TIMEOUT=60000.

💡 Sous Windows, exécutez ces commandes dans PowerShell et remplacez "$(pwd)" par "$PWD" si votre shell se plaint. Évitez les guillemets superflus dans le chemin du projet, car un mauvais chemin amène Serena à activer le mauvais dossier.

Crochets et prompt système

La documentation de Serena avertit que les mises à jour récentes de Claude Code et des modèles ont réduit la capacité de l’agent à suivre les instructions concernant les outils de Serena, et que les longues sessions peuvent s’en écarter. La solution consiste à lancer Claude Code avec une surcharge du prompt système :

claude --system-prompt="$(serena prompts print-cc-system-prompt-override)"

La documentation recommande aussi fortement des crochets de rappel dans .claude/settings.json, avec quatre commandes : remind, activate, cleanup et auto-approve. Lisez ce que fait auto-approve avant de l’intégrer. Tout ce qui approuve les appels d’outils à votre place réduit le nombre de moments où vous pouvez dire non.

Vue de dessus d’un bureau bien rangé avec un ordinateur portable, un carnet, une clé USB et un verre d’eau

Verrouiller avant le premier jour

Procédez dans cet ordre. Chaque étape vous fournit les éléments nécessaires à la suivante.

Commencer en lecture seule

Serena lit ses réglages dans un fichier global, ~/.serena/serena_config.yml (sous Windows, %USERPROFILE%\.serena\serena_config.yml), et dans un project.yml qui le remplace pour un projet donné. Ouvrez l’un ou l’autre avec serena config edit. Pour les premières sessions, définissez ceci dans le fichier du projet :

read_only: true

Dans ce mode, Serena peut lire les fichiers, inspecter la structure, rechercher des symboles et construire des index, mais il ne peut pas écrire. Les lectures sont là où les outils de symboles font économiser des tokens, donc vous perdez peu à commencer ainsi, et vous ne renoncez à rien que vous ne puissiez activer plus tard.

Une main entourant d’un trait rouge une ligne sur une feuille de configuration imprimée

Surveiller le tableau de bord

Serena propose un tableau de bord local, généralement à l’adresse http://localhost:24282/dashboard/index.html. L’analyse de sécurité conseille de travailler en lecture seule pendant environ une journée tout en le surveillant : quels fichiers sont touchés, quels outils sont appelés, et si des erreurs se répètent. Si un outil se déclenche alors que vous ne l’attendiez pas, vous le découvrez pendant qu’il est encore inoffensif.

Une femme examinant un écran affichant un graphique à barres dans un bureau lumineux

Ouvrir les outils un par un

Lorsque les journaux paraissent propres, autorisez les écritures et gardez le shell exclu. Les noms ci-dessous proviennent de la même analyse tierce, vérifiez-les donc dans la liste d’outils de votre version de Serena :

read_only: false
included_optional_tools:
  - edit_file
excluded_tools:
  - execute_shell_command

Validez un arbre git propre avant chaque session. Ensuite, git diff montre exactement ce que Serena a modifié, et une seule commande git restore annule une mauvaise modification. Cette habitude vaut plus que tous les réglages ci-dessus.

Une courte liste de contrôle pour la première semaine :

  • Vérifiez que /mcp indique Serena comme connecté et ne montre aucun outil shell.
  • Lancez /context et notez le nombre d’outils MCP.
  • Gardez read_only: true jusqu’à ce que le tableau de bord vous paraisse ennuyeux.
  • Relisez git diff après chaque session ayant écrit des fichiers.
  • Ouvrez une fois le dossier .serena et lisez le contenu des mémoires.

Vérifiez votre configuration sur PicassoIA

Un second avis sur votre configuration ne coûte pas cher. Claude Sonnet 5 sur PicassoIA lit le code, la configuration et les captures d’écran, il peut donc relire votre project.yml avant que vous l’appliquiez.

Six étapes pour relire votre configuration

  1. Ouvrez la page du modèle Claude Sonnet 5.
  2. Retirez de la configuration tous les tokens, mots de passe et URL privées, puis collez-la dans Prompt avec une question claire, par exemple : « Relisez ce project.yml de Serena pour repérer l’accès en écriture et l’exposition du shell. Renvoyez un tableau des risques et une correction pour chacun. »
  3. Réglez Effort. La valeur par défaut est low, rapide et peu coûteuse. Utilisez high pour une configuration comportant beaucoup d’outils, et xhigh ou max seulement pour une configuration particulièrement emmêlée.
  4. Ajoutez un System Prompt pour fixer le rôle : « Vous êtes un relecteur rigoureux d’outils pour développeurs. Soyez précis et concis. »
  5. Facultatif : joignez une capture d’écran du tableau de bord comme Image. La valeur par défaut max_image_resolution fait 0,5 mégapixel, ce qui suffit pour un graphique lisible.
  6. Gardez Max Tokens à la valeur par défaut de 8 192, sauf si vous voulez un rapport plus long, puis vérifiez chaque affirmation dans la documentation de Serena.

💡 Considérez la réponse comme le commentaire d’un relecteur, pas comme un verdict. Pour un autre angle, lancez le même prompt avec Claude Fable 5 ou GPT 5.6 Sol et comparez les points de désaccord.

Erreurs courantes

Trois développeurs examinant ensemble un ordinateur portable autour d’une table en bois

ErreurConséquenceCorrection
Oublier --context claude-codeOutils de fichiers en double, un outil shell et une charge de tokens plus lourdeToujours passer l’indicateur
--project-from-cwd global partoutOutils d’édition actifs dans tout dossier ouvertEnregistrer par projet
Intégrer auto-approve à l’aveugleMoins d’occasions de refuser un appel risquéLire le crochet, puis décider
Exécuter depuis une URL git sans épinglerVous exécutez ce que contient la branche ce jour-làInstaller le paquet ou épingler une étiquette
Ne jamais vérifier /contextLe coût en tokens reste une suppositionMesurer avant et après
Valider .serena sans jeter un œilLes fichiers de mémoire et les notes sont poussés dans un dépôt partagéOuvrir le dossier d’abord
Faire confiance à une longue sessionL’agent s’écarte des outils de SerenaUtiliser les crochets et redémarrer

Créez vos propres images sur Picasso IA

Si vous écrivez sur vos outils, vous connaissez l’autre moitié du travail : les README, les articles de blog et les diapositives de conférence ont tous besoin de visuels qui semblent faire partie du même ensemble. Picasso IA réunit les modèles d’image au même endroit, pour tester un prompt, le modifier et comparer les résultats en quelques minutes. Pour les scènes photoréalistes, commencez avec Seedream 4.5 ou FLUX 1.1 Pro, puis parcourez le reste sur picassoia.com/en/all-models.

Décrivez une scène réelle avec un objectif, une direction de lumière et une texture, lancez-la, et ajustez un détail à la fois. Considérez le premier résultat comme un brouillon, car le troisième est généralement plus proche de ce que vous aviez imaginé. Ouvrez un modèle, tapez un prompt et voyez ce qui en ressort.

Partager cet article

Choisissez votre langue