Donnez Ă votre agent IA l'Ă©dition de documents â en moins de 60 secondes
AgentDoc est un serveur Model Context Protocol (MCP) public. Tout agent LLM qui parle MCP â Gemini, Claude, GPT ou le vĂŽtre â peut se connecter, s'authentifier et utiliser une API d'Ă©dition de documents typĂ©e complĂšte : lire, Ă©crire, mettre en forme, naviguer, exporter des PDF. Aucun SDK Ă intĂ©grer, aucun schĂ©ma Ă maintenir de votre cĂŽtĂ©, aucun humain dans la boucle.
Cette page est le parcours d'intégration canonique pour les agents et les personnes qui les exécutent. Si vous (ou votre modÚle) souhaitez disposer d'un éditeur de documents fonctionnel sous forme d'outil, voici tout ce dont vous avez besoin.
Point de terminaison MCP
Model Context Protocol standard via Server-Sent Events. Authentification par jeton bearer JWT (voir Démarrage rapide ci-dessous). Budget de jetons gratuit par compte ; aucune carte bancaire requise.
Démarrage rapide (un seul appel HTTP)
Enregistrez un compte d'agent isolĂ© et recevez sa clĂ© API en une seule requĂȘte. Aucun navigateur, aucun e-mail, aucun humain dans la boucle. Chaque agent enregistrĂ© est son propre utilisateur avec sa propre portĂ©e documentaire â les diffĂ©rents agents ne voient jamais les documents les uns des autres.
curl -X POST https://agent-doc-edit.com/api/agents/register \
-H "Content-Type: application/json" \
-d '{"name": "my-research-agent"}'
# Response
# {
# "user_id": "...",
# "username": "agent_AbCdEfGh",
# "name": "my-research-agent",
# "api_key": "ak_...", <-- shown ONLY here, store it
# "api_key_prefix": "ak_AbCdEfGh",
# "created_at": "2026-04-25T..."
# }
C'est tout. Utilisez la api_key comme jeton bearer auprĂšs de /mcp/sse et l'agent dispose de 35 outils typĂ©s pour lire, Ă©crire, mettre en forme, paginer et exporter des documents â entiĂšrement limitĂ©s Ă son propre compte.
Deux façons de s'authentifier
Option A â L'agent s'enregistre lui-mĂȘme (recommandĂ© pour les workflows autonomes)
Utilisez POST /api/agents/register comme indiqué ci-dessus. L'agent obtient son propre compte utilisateur et son propre espace de noms documentaire. Les différents agents n'entrent jamais en collision. Limite de débit : 5 enregistrements par heure et par IP. C'est le bon parcours pour les pipelines de lettres, les traitements par lots, les tùches planifiées, les workflows multi-agents.
Option B â Utilisez votre propre compte humain (pour « donner l'Ă©dition de documents Ă mon propre assistant »)
Ouvrez /app, connectez-vous, barre latĂ©rale â « API Keys for Agents » â « + Create New Key ». La clĂ© est affichĂ©e une seule fois. Utilisez-la comme jeton bearer. L'agent partage votre compte, vos documents et l'Ă©tat de votre document actif. Utile lorsque vous voulez qu'un agent copilote opĂšre Ă vos cĂŽtĂ©s sur un mĂȘme corpus.
Ce qui est facturé (et ce qui ne l'est pas)
Les agents apportent leur propre LLM. Vous payez votre fournisseur de modĂšle pour les jetons de raisonnement. Nous ne les voyons pas, ne les facturons pas, ne les limitons pas. Notre service hĂ©berge le serveur MCP, le stockage des documents et le pipeline de rendu. La colonne token_limit sur les comptes d'agent est fixĂ©e Ă 0 comme ceinture de sĂ©curitĂ© dĂ©fensive : si un futur chemin de code tentait un jour d'exĂ©cuter notre agent Gemini interne sur une authentification de compte d'agent, il refuserait â les agents restent strictement sur le chemin des outils MCP.
Important : ceci est autonome, pas collaboratif
Ce parcours est conçu pour les workflows d'agents autonomes â votre agent raisonne avec son propre LLM, appelle directement nos outils MCP, Ă©dite des documents sur son propre compte et exporte un rĂ©sultat. La mĂȘme surface d'outils Ă©prouvĂ©e que nos agents vocaux et textuels utilisent en production alimente votre agent â mais votre agent ne parle jamais au nĂŽtre. Il n'y a pas de saut IA-Ă -IA, pas d'appel LLM interne en votre nom, pas de session partagĂ©e avec notre Ă©diteur intĂ©grĂ© au navigateur.
Si vous souhaitez qu'un humain et notre agent vocal/textuel coĂ©ditent en direct, utilisez directement /app â c'est un parcours diffĂ©rent. Si vous voulez que votre propre agent pilote l'Ă©diteur sans humain, le point de terminaison MCP dĂ©crit ici est la bonne surface.
Se connecter depuis n'importe quel client MCP
Python (client mcp / Anthropic / Google ADK)
from mcp.client.sse import sse_client
from mcp import ClientSession
import json
AGENTDOC_TOKEN = "ak_..." # from POST /api/agents/register
async def edit_document():
headers = {"Authorization": f"Bearer {AGENTDOC_TOKEN}"}
async with sse_client("https://agent-doc-edit.com/mcp/sse",
headers=headers) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# Workflow T (~35 tools) is applied automatically. Token is
# injected from the Authorization header â do NOT pass `token`
# in tool arguments.
tools = await session.list_tools()
# Create a document
res = await session.call_tool("create_document",
{"title": "My Report"})
payload = json.loads(res.content[0].text)
doc_id = payload["doc_id"] # structured field, no regex
# Insert content
await session.call_tool("insert_string", {
"doc_id": doc_id,
"text": "# Hello\n\nFirst paragraph.",
"index": 0,
})
# Trigger PDF; response includes a self-describing fetch URL
res = await session.call_tool("trigger_pdf_download",
{"doc_id": doc_id})
pdf_meta = json.loads(res.content[0].text)
print(pdf_meta["pdf_url"]) # â "/api/doc//pdf"
TypeScript (SDK Anthropic)
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
const transport = new SSEClientTransport(
new URL("https://agent-doc-edit.com/mcp/sse"),
{ requestInit: { headers: { Authorization: `Bearer ${TOKEN}` } } }
);
const client = new Client({ name: "my-agent", version: "1.0" }, { capabilities: {} });
await client.connect(transport);
const tools = await client.listTools();
const result = await client.callTool({
name: "insert_string",
arguments: { text: "Hello from my agent.", index: 0 }
});
curl (exploration brute)
curl -N -H "Authorization: Bearer $TOKEN" \
-H "Accept: text/event-stream" \
https://agent-doc-edit.com/mcp/sse
Catalogue d'outils â le Workflow T est appliquĂ© automatiquement
Les agents externes (c.-Ă -d. les requĂȘtes authentifiĂ©es avec une clĂ© API ak_*) sont automatiquement restreints Ă la surface d'outils Workflow T â le dĂ©faut de production optimal au sens de Pareto que nos propres agents vocaux et textuels utilisent. Vous n'appliquez pas ce filtre ; le serveur MCP l'applique cĂŽtĂ© serveur Ă la fois sur tools/list et tools/call. Cela vous donne le sous-ensemble organisĂ© d'environ 35 outils (primitives typĂ©es + macros + retour d'observation sur les dĂ©calages d'index), supprime le bloc-notes et les outils d'intention FSM qui n'ont pas leur place dans T, et exclut les variantes atomiques « Ă©clatĂ©es » utilisĂ©es uniquement par notre benchmark de surcharge d'outils. Chaque outil possĂšde un schĂ©ma JSON pour ses arguments et renvoie une rĂ©ponse structurĂ©e avec des marqueurs explicites de succĂšs/erreur ; les opĂ©rations qui dĂ©calent les index incluent un retour d'observation ("observation": "INDEX SHIFT â re-read before next mutation") afin que l'agent reste ancrĂ© d'un tour Ă l'autre.
Initialiser un document Ă partir d'un DOCX existant
La surface d'outils MCP permet Ă votre agent de construire des documents Ă partir de zĂ©ro. Pour les workflows qui partent d'un fichier Word prĂ©-rĂ©digĂ© â modĂšles Ă en-tĂȘte d'entreprise, texte standard de contrat, brouillon entrant Ă rĂ©viser â un point de terminaison HTTP supplĂ©mentaire en un seul appel accepte les tĂ©lĂ©versements de fichiers .docx, crĂ©e un nouveau Document sur le compte de l'agent et le bascule en actif afin que le prochain appel MCP atterrisse sur le contenu importĂ© :
# Upload a .docx; response is the new {id, title, ...}
curl -X POST https://agent-doc-edit.com/api/docs/import/docx \
-H "Authorization: Bearer $API_KEY" \
-F "[email protected]" \
-F "title=Q3 Customer Letter"
Les sauts de page, les hyperliens, les en-tĂȘtes / pieds de page, les polices, les couleurs et l'interligne survivent tous Ă l'import. Compte-rendu technique complet : Import DOCX â Aller-retour des documents Word.
Cas d'usage que votre agent peut prendre en charge de maniĂšre autonome
- Pipeline de génération de lettres. L'agent reçoit un événement structuré (« présenter des excuses au client X pour le retard Y »), rédige la lettre, la met en forme, exporte un PDF et l'attache à un e-mail sortant.
- Générateur de rapports. L'agent ingÚre un CSV, synthétise les conclusions, structure le rapport en titres, insÚre une table des matiÚres, met en forme les chiffres clés en couleur, exporte.
- Refonte de documents. L'agent lit un brouillon existant, réorganise les paragraphes, applique une hiérarchie de titres cohérente, corrige la terminologie incohérente en un seul balayage
macro_replace_all, exporte. - Workflows multi-agents. Un agent de planification décide quoi écrire ; un agent rédacteur appelle les outils AgentDoc pour produire l'artefact ; un agent de vérification lit le résultat et déclenche des révisions.
- Transfert vocal. Un agent vocal reçoit les instructions orales de l'utilisateur et transmet des descriptions de tĂąches structurĂ©es Ă un agent textuel qui effectue les opĂ©rations documentaires rĂ©elles sur le mĂȘme serveur MCP.
- Remplissage de modÚles. L'agent téléverse un
.docxĂ en-tĂȘte d'entreprise via/api/docs/import/docx, remplit les champs rĂ©servĂ©s Ă l'aide demacro_replace_text, exporte le rĂ©sultat â le collaborateur de l'utilisateur ouvre un fichier Word dans le mĂȘme Word qu'il a utilisĂ© au dĂ©part.
Ce qui rend ceci adapté aux agents (précisément)
- Des outils typĂ©s, pas des invites en texte libre. Chaque opĂ©ration est un outil validĂ© par schĂ©ma JSON. L'agent ne peut pas « presque » appeler un outil â les arguments sont analysĂ©s ou ils ne le sont pas.
- Retours d'outils structurés.
create_documentrenvoie{"status":"success","doc_id":N,"title":...}â aucune regex sur de la prose.trigger_pdf_downloadrenvoie un{"pdf_url":"/api/doc/N/pdf","method":"GET"}auto-descriptif, si bien qu'un unique GET HTTP de suivi rĂ©cupĂšre les octets. - Auto-injection du jeton. Le jeton bearer de votre en-tĂȘte
Authorizationest injectĂ© automatiquement dans chaque appel d'outil â vos arguments d'outil restent exempts d'authentification. (L'agent vocal/textuel interne utilise une convention plus ancienne avec des argumentstokenexplicites ; ce chemin reste pris en charge pour la rĂ©trocompatibilitĂ©.) - Mise en forme dĂ©portĂ©e. L'agent n'Ă©crit jamais de HTML brut. La mise en forme est un appel typĂ© (
format_text(..., format_type="color", format_value="blue")) â la surface la plus facile Ă halluciner est supprimĂ©e. - Identifiants de document entiers. Des entiers auto-incrĂ©mentĂ©s, pas des UUID â cela Ă©limine les hallucinations de perte de caractĂšres lorsque l'agent transmet un ID entre les appels d'outils.
- Retour d'observation à chaque mutation. Les retours incluent des observations explicites lorsque les index se décalent, de sorte que l'agent n'a pas besoin de maintenir un modÚle mental des décalages cumulés.
- Miroir visuel en temps rĂ©el. Le mĂȘme document que l'agent Ă©dite est rendu en direct sur
/app. Utile pour la vĂ©rification humaine, les dĂ©monstrations et les transferts multimodaux. - SymĂ©trie voix-et-texte. L'agent vocal et l'agent textuel voient exactement la mĂȘme surface d'outils. Si votre agent fonctionne comme client textuel, il fonctionne aussi comme client vocal.
Limites et contraintes en toute honnĂȘtetĂ©
- La facturation du LLM vous incombe. Les agents apportent leur propre modÚle. Vous payez votre fournisseur pour les jetons de raisonnement. Notre service héberge le serveur MCP et le stockage des documents ; nous ne facturons pas l'usage du LLM et ne le voyons pas.
- Limite de débit d'enregistrement. 5 auto-enregistrements d'agent par heure et par IP. Conçu pour un provisionnement légitime, pas pour l'abus en masse.
- Débit des appels d'outils. Limite souple par compte sur la couche proxy. Pas de limitation agressive aujourd'hui, mais des boucles non bornées finiront par atteindre les plafonds au niveau nginx.
- Taille des documents. Le point optimal pratique se situe entre 1 et 50 pages (A4). Les trÚs grands documents (200+ pages) fonctionnent, mais le raisonnement de l'agent ralentit car l'outil de lecture renvoie l'état complet.
- Isolation des comptes. Chaque agent enregistrĂ© est son propre utilisateur. Les documents sont limitĂ©s Ă cet utilisateur uniquement â les agents ne lisent ni n'Ă©crivent jamais entre comptes. Pour partager des documents entre agents intentionnellement, partagez la clĂ© API (Option B ci-dessus).
- Disponibilité du service. Il s'agit d'un service public de niveau recherche, pas d'un SLA de production. Nous visons une haute disponibilité mais n'offrons aucune garantie formelle.
Métadonnées de découvrabilité
- llms.txt â un plan de site en texte brut pour les robots d'indexation LLM sur
/llms.txt. - OpenGraph / JSON-LD â chaque page expose un schĂ©ma WebAPI / TechArticle / FAQPage lorsque c'est pertinent.
- URL stables â
/agentsest canonique et ne bougera pas.
Essayez-le maintenant
Ouvrez l'Ă©diteur dans un onglet, exĂ©cutez votre agent dans un autre. Les modifications de l'agent apparaissent en temps rĂ©el sur le mĂȘme Ă©cran â utile pour le dĂ©bogage, les dĂ©monstrations ou pour faire collaborer un humain et un agent.
Ouvrir l'Ă©diteur âComptes-rendus techniques
- GranularitĂ© des outils dans les agents LLM â principes de conception de la surface d'outils MCP que votre agent appellera.
- Reconstruire l'export PDF + DOCX â comment les points de terminaison d'export reproduisent fidĂšlement la mise en page Ă l'Ă©cran lorsqu'un agent dĂ©clenche un tĂ©lĂ©chargement.
- Notes de version d'avril 2026 â corrections rĂ©centes de la sĂ©mantique du moteur de rendu / des dĂ©corations / des bascules sur lesquelles s'appuient les agents.