MCP server

Branchez vos agents IA sur vos PDF.

Le serveur Model Context Protocol d'iFillPDF donne à Claude, ChatGPT et Cursor les mêmes capacités que l'éditeur : analyser un formulaire, le remplir, le transformer en modèle ou puiser dans le coffre — directement depuis la conversation.

Agent callStreamable HTTP
analyze_pdf(cerfa.pdf)
schema.fields[] · 18 champs
fill_pdf({ field_1: … })
filled.pdf prêt
Transport
HTTP + SSE
Auth
OAuth / Bearer
Outils
12 outils
01

Connexion

Le serveur est servi en Streamable HTTP (la SSE historique reste disponible pour les clients plus anciens). Choisissez votre client, l'authentification se règle en un clic.

claude mcp add --transport http ifillpdf https://mcp.ifillpdf.com/mcp

# La première connexion ouvre le flux OAuth iFillPDF dans le navigateur.

SSE héritée : https://mcp.ifillpdf.com/sse. Sans navigateur (CI), basculez sur la clé ifk_live_… créée depuis votre profil.

02

Authentification & scopes

Deux modes vérifiés à chaque requête : le JWT OAuth 2.1 Supabase (consentement utilisateur) ou une clé Bearer ifk_live_…. Une clé Bearer est un identifiant de service longue durée et obtient l'ensemble des scopes ci-dessous.

documents:readLire les documents, leur schéma et leurs valeurs.
documents:writeCréer, analyser, remplir et coffrer des documents.
vault:writeAjouter des pièces personnelles au coffre.
templates:readLister et lire les modèles visibles.
templates:writeCréer, dupliquer, modifier et supprimer vos modèles.
Sécurité : connectez le serveur à un environnement de travail, pas à des données de production sensibles ; les agents peuvent être victimes d’injection de prompt — gardez une confirmation humaine sur les actions destructrices.
03

Flux type

Un agent enchaîne la détection des champs puis le remplissage. Pour les formulaires récurrents, créez un modèle une fois et instanciez-le ensuite sans consommer de quota.

1. analyze_pdf      → upload le PDF, renvoie schema.fields[]
2. add_to_vault     → (optionnel) RIB, fiche de paie, passeport
3. fill_pdf         → remplit les champs détectés, renvoie le PDF
4. use_template     → instancie un modèle déjà prêt (gratuit, hors quota)
04

Prompts d'exemple

Ce que vous pouvez demander en langage naturel, et les outils que ça déclenche.

« Remplis ce bail meublé et range le RIB au coffre. »

analyze_pdf → add_to_vault → fill_pdf

« Trouve un modèle de Cerfa 13750 et pré-remplis-le pour moi. »

list_templates → use_template → fill_pdf

« Quels champs ce PDF attend-il avant que je le signe ? »

analyze_pdf → get_document

« Transforme ce contrat analysé en modèle d’équipe réutilisable. »

create_template
05

Référence des outils

Douze outils répartis en trois familles. Chaque outil applique son propre contrôle de scope ; un scope manquant renvoie une erreur invitant à ré-autoriser la connexion.

A

Documents (5)

+
get_documentdocuments:read

Récupère l’état, le schéma et les valeurs d’un document. wait_for_completion attend côté serveur jusqu’à la fin de l’analyse IA.

Inputs
document_id (uuid) · wait_for_completion?
list_documentsdocuments:read

Liste les documents de l’équipe, du plus récent au plus ancien, paginé par curseur.

Inputs
limit (1-100, déf. 20) · cursor? · q? · status? · include_voided?
analyze_pdfdocuments:write

Upload un PDF, détecte chaque champ remplissable et renvoie un schéma structuré (schema.fields[] avec position, label sémantique, type attendu, et rôles dans parties).

Inputs
pdf_base64 (≤4 MB, marche depuis ChatGPT/Claude.ai), pending_upload_id, ou pdf_url · name? · description?
fill_pdfdocuments:write

Remplit les champs détectés et produit le PDF complété. Textes, cases à cocher, nombres, et signatures/images via {dataUrl}.

Inputs
document_id · values (field_id → valeur) · return_format? (url par défaut, base64 pour hôtes sandboxés)
request_pdf_uploaddocuments:write

Renvoie une URL Supabase signée à usage unique pour téléverser des PDF jusqu’à 25 MB, puis appeler analyze_pdf avec pending_upload_id.

Inputs
fileName (.pdf) · sizeBytes (≤ 25 MB)
B

Coffre (1)

+
add_to_vaultvault:write

Stocke une pièce personnelle (fiche de paie, RIB, KBIS, passeport) dans le coffre. iFillPDF la réutilise pour pré-remplir les formulaires.

Inputs
file_base64 · file_name · mime_type (pdf/jpeg/png/webp/heic) · label?
C

Modèles (6)

+
list_templatestemplates:read

Parcourt la bibliothèque publique (scope=public) ou vos modèles équipe/privés (scope=mine).

Inputs
scope (public | mine) · category? · language? · q? · limit · cursor?
get_templatetemplates:read

Inspecte un modèle (champs, parties, structure). Ne renvoie jamais de valeurs pré-remplies.

Inputs
template_id
create_templatetemplates:write

Fige un document analysé en modèle réutilisable (privé ou équipe). La publication publique est réservée aux admins.

Inputs
source_document_id · name? · description? · category? · tags[]? · language? · visibility? (private | team)
use_templatetemplates:write

Duplique un modèle en nouveau document de travail pré-rempli avec ses valeurs par défaut. Gratuit — ne consomme pas de quota.

Inputs
template_id
update_templatetemplates:write

Met à jour les métadonnées et la visibilité de votre propre modèle. Seul le créateur peut éditer.

Inputs
template_id · name? · description? · category? · tags[]? · language? · visibility? (private | team)
delete_templatetemplates:write

Supprime définitivement votre modèle et ses fichiers. Les documents déjà créés à partir du modèle ne sont pas affectés.

Inputs
template_id
06

Hôtes sandboxés (ChatGPT, Claude.ai, web)

Les hôtes MCP en sandbox ne peuvent pas faire de requête HTTP sortante (PUT vers une URL signée, GET d'un lien de téléchargement). Pour eux, faites transiter les octets sur le canal MCP :

Upload

analyze_pdf avec pdf_base64 (≤ 4 MB) plutôt que request_pdf_upload.

Download

fill_pdf avec return_format: "base64" (auto-bascule en URL si > 4 MB).

Depuis un agent CLI local capable de requêtes sortantes, préférez les URL signées et pending_upload_id pour gérer des fichiers jusqu'à 25 MB. Le contrat REST complet est sur la page développeurs et dans /openapi.json.

Serveur MCP iFillPDF pour Claude, ChatGPT et Cursor