← Toutes les ressources
Ressource gratuite · NoesisAI

Arrête de donner tes PDF à Claude

Un PDF est compté deux fois : une fois en mots, une fois en pixels. Le guide complet de MarkItDown : config MCP exacte, installation locale, formats, et le cas des PDF scannés.

Tu déposes un contrat de 20 pages dans Claude, tu poses une question, et la conversation est déjà à moitié pleine avant sa première réponse. Ce n'est pas un bug : un PDF entre deux fois dans le contexte. Ce guide t'explique le mécanisme, puis te donne le correctif complet : MarkItDown, l'outil open source de Microsoft, avec la config exacte à coller, format par format, et ce qu'il faut faire des PDF scannés.

Le principe qui gouverne tout : le token le moins cher est celui que tu n'envoies jamais. Convertir un document en amont coûte 2 secondes ; l'envoyer brut te coûte à chaque message de la conversation.

1Ce qui se passe vraiment quand tu déposes un PDF

Ce n'est pas une théorie, c'est décrit noir sur blanc dans la documentation Anthropic. Quand un PDF arrive dans Claude, trois choses s'enchaînent :

C'est une bonne architecture. C'est même ce qui permet à Claude de lire un graphique dans un rapport annuel. Mais tu la paies sur tous tes documents, y compris ceux qui ne sont que du texte.

Le chiffrage

La doc annonce 1 500 à 3 000 tokens par page pour le texte seul, selon la densité. À cela s'ajoute le coût image de la page, calculé comme n'importe quelle image envoyée au modèle.

DocumentTexte (doc Anthropic)+ Images de pagesAvant ta 1re question
Contrat, 20 pages30 000 à 60 000 tokensen supplément★ ordre de grandeur : 60 000
Appel d'offres, 60 pages90 000 à 180 000 tokensen supplémentla fenêtre est déjà pleine
Le même contrat en markdownquelques milliersaucunetu as de la place pour travailler
Attention à la lecture de ce tableau : la colonne markdown dépend de ton document. Un texte reste un texte : la conversion ne compresse pas les mots, elle supprime la couche image et le balisage inutile. Le gain réel est massif, mais il ne se prédit pas au token près. Fais le test sur un de tes propres fichiers.

Concrètement : sur l'API ça se voit sur la facture, sur un abonnement ça se voit sur ton quota. Et surtout, la fenêtre de contexte se remplit deux fois plus vite. Claude « oublie » le début du document, et tu es bloqué en pleine journée. Source : documentation Anthropic, « PDF support ».

2Pourquoi le markdown, et pas « du texte »

Le markdown n'est pas un choix esthétique, c'est le format natif des modèles. Ils en produisent spontanément dans leurs réponses sans qu'on le leur demande : ils ont été massivement entraînés dessus.

Et il est d'une efficacité brutale. Un dièse et c'est un titre. Un pipe et c'est un tableau. Deux tirets et c'est une liste. La structure d'un document tient en quelques caractères, là où l'image de la page en coûtait des milliers, tout en gardant ce qui compte réellement : les titres, la hiérarchie, les tableaux, les liens.

La nuance honnête : tu perds la couche visuelle. Si ta question porte sur un graphique, un plan, une signature ou une mise en page, le PDF envoyé en direct reste le bon outil : c'est exactement le cas où l'image vaut son prix. Pour tout le reste (contrats, rapports, comptes rendus, appels d'offres, specs), c'est du gaspillage pur.

3MarkItDown : ce que c'est exactement

github.com/microsoft/markitdown est un utilitaire Python de Microsoft (construit par l'équipe AutoGen), open source, sous licence MIT, avec plus de 177 000 étoiles sur GitHub. Tu lui donnes un fichier, il te rend du markdown.

Sa philosophie, écrite dans le README : il n'est pas conçu pour faire une conversion « belle pour un humain ». Il est conçu pour préserver la structure importante (titres, listes, tableaux, liens) à destination des LLM et des pipelines d'analyse de texte. C'est exactement notre besoin.

Ce qu'il sait ouvrir : PDF, Word, PowerPoint, Excel, HTML, formats texte (CSV, JSON, XML), EPub, images (métadonnées EXIF), audio (métadonnées + transcription), archives ZIP (il itère sur le contenu), et même une URL YouTube.

Prérequis : Python 3.10 ou plus. Deux façons de t'en servir avec Claude : le serveur MCP (Claude convertit tout seul) ou la ligne de commande (tu convertis avant). Les deux ci-dessous.

Récupérer le dépôt GitHub

Dans le cas le plus simple tu n'as rien à cloner : pip suffit (section 5). Tu as besoin du dépôt dans deux situations : installer depuis les sources, et construire l'image Docker que la config MCP de Claude Desktop appelle. Dans les deux cas, ça commence pareil :

git clone https://github.com/microsoft/markitdown.git
cd markitdown

Installer depuis les sources, en mode éditable, utile si tu veux lire le code d'un convertisseur ou l'adapter à un format maison :

pip install -e 'packages/markitdown[all]'

Construire l'image Docker du serveur MCP. Le sous-dossier du serveur contient son propre Dockerfile ; c'est cette image markitdown-mcp:latest que la configuration Claude Desktop de la section suivante va lancer :

cd packages/markitdown-mcp
docker build -t markitdown-mcp:latest .
Repères dans le dépôt : le cœur de l'outil est dans packages/markitdown, le serveur MCP dans packages/markitdown-mcp, et un exemple de plugin dans packages/markitdown-sample-plugin si tu veux écrire ton propre convertisseur (les plugins publics se cherchent sur GitHub avec le hashtag #markitdown-plugin).

4Le serveur MCP : Claude convertit tout seul

C'est la version que je recommande. Une fois branché, tu déposes ou tu pointes un fichier, et Claude appelle l'outil de conversion lui-même. Le package officiel s'appelle markitdown-mcp. Il expose un seul outil : convert_to_markdown(uri), où l'URI peut être http:, https:, file: ou data:.

Installation du serveur
pip install markitdown-mcp

Claude Desktop

Ouvre le fichier claude_desktop_config.json (Réglages → Développeur → Modifier la configuration) et ajoute l'entrée. Version directe, si markitdown-mcp est installé sur ta machine :

{
  "mcpServers": {
    "markitdown": {
      "command": "markitdown-mcp"
    }
  }
}

La version recommandée par le README officiel pour Claude Desktop passe par Docker. C'est plus propre, et surtout ça isole le serveur. Tu construis l'image une fois (voir la section 3, « Récupérer le dépôt GitHub »), puis :

{
  "mcpServers": {
    "markitdown": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "markitdown-mcp:latest"]
    }
  }
}

Dans un conteneur, Claude ne voit que ce que tu lui montes. Pour lui donner accès à un dossier de ta machine, ajoute un montage. Ici, /Users/toi/Documents devient /workdir côté conteneur :

{
  "mcpServers": {
    "markitdown": {
      "command": "docker",
      "args": ["run", "--rm", "-i",
               "-v", "/Users/toi/Documents:/workdir",
               "markitdown-mcp:latest"]
    }
  }
}

Un fichier rapport.pdf dans ce dossier sera alors adressable en file:///workdir/rapport.pdf. Redémarre Claude Desktop après modification : le serveur doit apparaître dans la liste des outils disponibles.

Claude Code

En une commande dans ton terminal :

claude mcp add markitdown -- markitdown-mcp

Ajoute -s user pour l'avoir dans tous tes projets plutôt que dans le projet courant. Si tu préfères le versionner avec ton équipe, crée un fichier .mcp.json à la racine du projet :

{
  "mcpServers": {
    "markitdown": {
      "command": "markitdown-mcp",
      "args": []
    }
  }
}

Vérifie ensuite avec claude mcp list, ou /mcp dans une session, que le serveur est bien connecté.

Sécurité (c'est écrit dans le README, autant le savoir) : le serveur tourne avec tes droits. L'outil convert_to_markdown peut donc lire n'importe quel fichier auquel ton utilisateur a accès, et n'importe quelle URL joignable depuis ta machine. Il est prévu pour un usage local. En mode HTTP il n'écoute que sur localhost par défaut et il n'a aucune authentification : ne l'expose jamais sur le réseau. Si tu manipules des documents sensibles, la variante Docker avec un seul dossier monté est le bon réflexe.

5L'installation locale, en ligne de commande

Utile si tu veux convertir par lots, garder les fichiers markdown, ou brancher la conversion dans une automatisation. Crée un environnement isolé, puis installe :

# environnement virtuel
python -m venv .venv
source .venv/bin/activate

# installation avec tous les formats
pip install 'markitdown[all]'

Si tu utilises uv : uv venv --python=3.12 .venv puis uv pip install 'markitdown[all]'.

Usage
markitdown contrat.pdf > contrat.md      # redirection
markitdown contrat.pdf -o contrat.md     # ou sortie explicite
cat contrat.pdf | markitdown             # ou en pipe

Tu n'as pas besoin de tout : les formats sont des options installables séparément. pip install 'markitdown[pdf, docx, pptx]' n'installe que ces trois-là.

OptionCe qu'elle active
[all]★ Tout. Le choix par défaut si tu hésites
[pdf]Fichiers PDF
[docx]Word
[pptx]PowerPoint
[xlsx] / [xls]Excel récent / ancien
[outlook]Messages Outlook
[audio-transcription]Transcription de fichiers wav et mp3
[youtube-transcription]Récupération de la transcription d'une vidéo YouTube
[az-doc-intel] / [az-content-understanding]Services Azure, voir la section 7 (PDF scannés)

6Ce qui passe bien, et ce qui passe mal

C'est la partie que personne ne te dit. Tous les formats ne se convertissent pas avec la même qualité. Voilà à quoi t'attendre, et le réflexe à avoir pour chacun.

FormatRésultatCe qu'il faut savoir
Word (.docx)★ ExcellentTitres, listes et tableaux passent proprement. Le cas idéal.
HTML / page web★ ExcellentC'est du balisage vers du balisage. Sans effort.
CSV / JSON / XML★ ExcellentDéjà structuré. Bonus : un CSV en tableau markdown se lit très bien.
PDF « texte »BonLe contenu sort bien. La mise en page fine, non : relis un extrait avant d'enchaîner.
PowerPoint (.pptx)BonLe texte des diapos sort. Les schémas et visuels, non. Or c'est souvent là qu'est l'info.
Excel (.xlsx)MoyenTu récupères les valeurs, pas les formules ni les graphiques. Un onglet propre passe bien, un classeur-usine à gaz beaucoup moins.
PDF multi-colonnesMoyenL'ordre de lecture peut se mélanger (journaux, brochures, articles scientifiques). Vérifie.
ZIPUtileIl itère sur le contenu de l'archive. Pratique pour un lot de pièces jointes.
PDF scannéÉchecPage vide. Pas d'OCR par défaut → section suivante.
Le bon réflexe : ouvre toujours le .md obtenu et lis les 20 premières lignes. Une conversion ratée est visible en trois secondes, et cela t'évite de bâtir une analyse entière sur un document tronqué.

7Les PDF scannés : là où MarkItDown s'arrête

Un PDF scanné, ce n'est pas du texte : c'est une photo de texte. MarkItDown n'embarque pas d'OCR par défaut : il te rend donc une page vide, sans erreur bruyante. C'est le piège classique.

Le test en 10 secondes : lance markitdown scan.pdf | head -20. Si rien ne sort (ou seulement des numéros de page), ton PDF est un scan. Tu le sais avant d'avoir perdu une heure.

Trois sorties possibles, de la plus simple à la plus industrielle :

1. Laisse ce PDF-là à Claude en direct. Contre-intuitif après tout ce guide, mais c'est le cas où la vision vaut son coût : Claude lit très bien une page scannée, puisqu'il la traite comme une image. Sur trois pages, c'est la meilleure décision. Sur trois cents, non.

2. Le plugin markitdown-ocr. Il ajoute la reconnaissance de texte aux convertisseurs PDF, Word, PowerPoint et Excel en s'appuyant sur un modèle de vision, sans dépendance lourde à installer :

pip install markitdown-ocr

Il faut lui fournir un client de modèle de vision (les plugins s'activent avec --use-plugins en ligne de commande, ou enable_plugins=True côté Python). Sans client fourni, l'OCR est silencieusement ignoré, d'où l'importance de vérifier la sortie.

3. Les services Azure, pour du volume. Le dépôt intègre Azure Document Intelligence ([az-doc-intel]) et Azure Content Understanding ([az-content-understanding]), pensés pour l'extraction de qualité sur des scans, des tableaux complexes et des documents longs :

markitdown scan.pdf --use-cu --cu-endpoint "<ton_endpoint>"

C'est du cloud facturé à l'appel : réservé aux volumes où le temps gagné dépasse largement le coût. Pour un scan ponctuel, l'option 1 suffit.

8Le protocole complet, en une page

La règle est simple : tu ne donnes une image à un modèle que quand tu as réellement besoin de ses yeux. Voilà la décision, dans l'ordre.

Ta situationCe que tu fais
Contrat, rapport, appel d'offres, compte rendu (texte)★ MarkItDown, puis tu donnes le markdown
Word, Excel, PowerPointMarkItDown (Claude ne lit pas ces formats en direct)
Question sur un graphique, un plan, une signaturePDF en direct, c'est le bon usage de la vision
PDF scanné, quelques pagesPDF en direct
PDF scanné, gros volumePlugin OCR ou service Azure, puis markdown
Même document relu tous les joursConvertis une fois, garde le .md, réutilise-le
Le vrai gain n'est pas la facture. C'est la place. Un document en markdown, c'est de la fenêtre de contexte libérée pour ce qui compte vraiment : tes questions, tes allers-retours, tes autres documents, et un Claude qui n'oublie pas le début du contrat au milieu de ton analyse.

Trois actions pour aujourd'hui : (1) installe le serveur MCP (5 minutes), (2) reprends ton dernier gros PDF et convertis-le pour voir la différence, (3) fais du .md ton format de dépôt par défaut. Le reste suit tout seul.

Envie d'aller plus loin ? On forme les dirigeants et leurs équipes à Claude, ChatGPT et Gemini, directement sur leurs propres cas. Découvrir la formation IA NoesisAI.
Nos expertises

Ce que nous concevons pour vous

De l'application métier sur-mesure aux systèmes d'IA les plus avancés : nous couvrons toute la chaîne, du produit digital à l'intelligence artificielle.

Produits digitaux

Logiciel métier

Des outils internes sur-mesure qui digitalisent vos processus spécifiques.

Application web & SaaS

Plateformes web performantes, du MVP au produit SaaS multi-utilisateurs.

Automatisation

Workflows n8n / Make qui connectent vos outils et éliminent les tâches manuelles.

API & microservices

Architectures modulaires et intégrations robustes entre vos systèmes.

Solutions IA

Agents autonomes & multi-agents

Des agents IA qui exécutent des tâches complexes et collaborent entre eux.

Agentic Workflows

Des chaînes de décision intelligentes orchestrant IA, outils et données.

AI Engineering

Intégration de LLM, RAG et fine-tuning au cœur de vos applications.

Computer Vision

Analyse d'images et de vidéos pour automatiser le contrôle et la détection.

Ils nous font confiance
Homelok FastParts BT Propre Bungazur NRGY UP Bunker Game ISCI Muller Client à confirmer

Tu veux appliquer ça dans ton activité ?

On fait le point sur ta situation et sur les endroits où l'IA peut concrètement te faire gagner du temps. Sans engagement.

Réserver un appel →
Échange 1:1 avec Ugo Sartini · sans engagement