“Rename ACME Corp to Globex in this contract” est une tâche de trois secondes pour une personne et un piège pour un agent IA. L’itinéraire évident, lire le document et en écrire un nouveau, jette les styles, les bordures de tableau, les en‑têtes et la confiance du relecteur que rien d’autre n’a bougé. Avec le serveur GroupDocs.Editor MCP fonctionnant localement, Claude, Cursor ou Copilot modifient le fichier au lieu de le retaper : ils trouvent les mots, les remplacent sur place, conservent la mise en forme et vous indiquent combien ils ont changé :

Renommez ACME Corp en Globex Ltd dans contract.docx et conservez la mise en forme.

La version étape par étape avec configuration, invites et dépannage se trouve dans la documentation : How to edit documents with AI agents using MCP.

Que se passe-t-il lorsque le modèle réécrit le fichier ?

Un modèle de langage ne possède pas un .docx. Il possède du texte. Lorsque vous lui demandez de « mettre à jour le contrat », le chemin naturel est de lire les mots, de les changer et de produire un nouveau document à partir de sa propre copie. Trois choses sont perdues en cours de route.

Mise en forme. Noms de parties en gras, titres numérotés, lignes de grille du tableau, largeurs de colonnes du tableau des frais, pied de page avec numéros de page : rien de tout cela ne fait partie du texte que le modèle a lu, donc rien ne survit au voyage à moins que quelque chose ne le reconstruit.

Tout ce que le modèle n’a pas été demandé de toucher. La régénération signifie que chaque phrase repasse par le modèle. Une clause peut être « nettoyée », un nombre reformatté, une phrase supprimée parce que la fenêtre de contexte est remplie. Le relecteur doit maintenant comparer tout le document pour faire confiance à un changement de trois mots.

La piste d’audit. « J’ai mis à jour le contrat » est la même réponse que le modèle ait changé un nom ou sept. Il n’y a aucun compte, et aucun moyen de distinguer une modification minutieuse d’une modification confiante.

Les serveurs d’édition uniquement DOCX qui existent déjà ont résolu le premier problème pour Word. Les deux autres, ainsi que chaque format qui n’est pas Word, restent ouverts.

À quoi ressemble une modification ciblée ?

Deux appels. Capturés depuis GroupDocs.Editor.Mcp 26.10.0 contre un accord de services synthétique dans lequel « ACME Corp » apparaît sept fois :

-> get_document_info {"file":{"filePath":"contract.docx"}}
<- { "family": "WordProcessing", "pageCount": 1, "canEdit": true,
     "canSaveTo": [ "docx", "doc", "rtf", "odt", "pdf", "md", ... ] }

-> replace_text {"file":{"filePath":"contract.docx"},
                 "find":"ACME Corp","replace":"Globex Ltd","wholeWord":true}
<- Replaced 6 occurrence(s) of 'ACME Corp' in 'contract.docx'
   Saved to: …/contract_edited.docx

-> replace_text {"file":{"filePath":"contract.docx"},
                 "find":"Initech","replace":"Globex Ltd"}
<- Text replacement found no matches for 'Initech' in 'contract.docx'.
   No file was written.

La copie éditée conserve le nom de partie en gras, les styles de titres et le tableau des frais. L’original reste intact ; le résultat est un nouveau fichier, contract_edited.docx, dans le dossier de stockage.

Pourquoi six et non sept ?

C’est le détail qui vaut la peine d’être lu deux fois. Le septième « ACME Corp » se trouve dans la clause des mentions légales, où « ACME » est en italique et «  Corp » ne l’est pas. Dans le fichier, ce sont deux runs de mise en forme, et replace_text ne correspond qu’à l’intérieur d’un seul run. Il n’a pas deviné, et il n’a pas fusionné les styles pour forcer une correspondance ; il a signalé six, et le septième reste « ACME Corp ».

C’est le comportement que vous attendez d’un outil qui édite des contrats. Un compte inférieur à ce que vous attendiez est une invitation à vérifier ; une réécriture « complète » silencieuse ne l’est pas. L’agent peut poursuivre avec l’autre voie offerte par le serveur : extraire cette partie en HTML, la modifier, puis la sauvegarder. Le round-trip post le couvre.

Les appels, dans l’ordre

user              agent                        Editor MCP server
 |  "Rename ACME Corp to Globex Ltd in contract.docx"          |
 |---------------->|                                           |
 |                 |-- get_document_info {"file":...} -------->|
 |                 |<- WordProcessing, 1 page, canEdit --------|
 |                 |-- replace_text {"find":"ACME Corp",       |
 |                 |     "replace":"Globex Ltd",               |
 |                 |     "wholeWord":true} ------------------->|
 |                 |<- "Replaced 6 occurrence(s) ...           |
 |                 |    Saved to: .../contract_edited.docx" ---|
 |<- "6 changed; one more is split across formatting - check  |
 |    the notices clause. The original is kept."               |
      (a find that matches nothing: 'No file was written.')

Pourquoi c’est plus qu’un tour de passe‑passe Word

Le même appel fonctionne sur une feuille de calcul, une diapositive, un PDF ou un fichier texte. Dans notre test, "worksheet": 1 a renommé le fournisseur sur la feuille de synthèse du budget et a laissé les deux autres feuilles intactes ; "slide": 1 a fait de même sur un deck de révision. "format": "pdf" édite et convertit en un seul appel, donc « corriger le nom et m’envoyer un PDF » se fait en une étape. "regex": true gère les modèles tels que les chaînes de version.

Avant d’éditer, get_document_info indique à l’agent ce avec quoi il a affaire : la famille, le nombre de pages, de feuilles ou de diapositives, si le fichier est protégé par mot de passe, et quels formats il peut enregistrer. Un agent prudent l’appelle d’abord, et vous pouvez le lui demander.

Configuration

dnx GroupDocs.Editor.Mcp --yes

avec GROUPDOCS_MCP_STORAGE_PATH pointant vers le dossier que l’agent peut éditer, ou l’image Docker ghcr.io/groupdocs-editor/editor-net-mcp. La configuration par client se trouve dans le documentation hub. Ce qui a changé dans le moteur lui‑même est détaillé dans les GroupDocs.Editor for .NET 26.6 release notes.

Limites honnêtes

  • replace_text ne correspond qu’à l’intérieur d’un run de mise en forme ; une phrase découpée entre plusieurs styles n’est pas trouvée, et le compte le reflète.
  • Pas de suivi des modifications et pas de commentaires : le résultat est une copie éditée, pas un document comparatif.
  • Mode évaluation : chaque sortie commence par une ligne de bannière d’évaluation, les classeurs enregistrés gagnent une feuille supplémentaire, et seules les deux premières feuilles ou diapositives peuvent être éditées. Le serveur refuse la troisième et indique pourquoi.
  • L’édition PDF consiste en une conversion vers du HTML ou Word éditable puis retour ; il ne s’agit pas d’une édition PDF in‑place.

FAQ

L’agent écrasera-t-il mon fichier original ?
Non. Chaque modification écrit un nouveau fichier, <name>_edited.<ext> par défaut ou le outputName que vous indiquez, dans le dossier de stockage.

Que se passe-t-il si le texte n’est pas présent dans le document ?
Rien n’est écrit. Le serveur répond « found no matches … No file was written. », de sorte que l’agent peut vous le signaler plutôt que de renvoyer une copie inchangée.

Cela fonctionne‑t‑il sans Word installé ?
Oui. Le serveur s’exécute localement avec le moteur GroupDocs.Editor ; aucune installation Office et aucun téléchargement ne sont nécessaires.

Approfondir