pure.md — un proxy markdown pour agents IA, avec MCP intégré
Les agents qui fetchent du web se plantent pour trois raisons : bot detection, SPAs vides sans hydration JS, et PDFs opaques. pure.md est un proxy REST qui absorbe les trois — et retourne du markdown propre, calibré pour les LLMs.
Le problème concret
Un agent qui fait fetch("https://reuters.com/article/xyz") reçoit soit un 403, soit un shell HTML vide. Les SPAs React n’ont pas de contenu sans JavaScript. Les PDFs sont binaires. Les alternatives — Jina AI et Tavily, deux services de scraping web orientés LLMs — s’en sortent mieux, mais au prix d’une inflation de tokens : 143K tokens pour un article Wikipedia avec Jina, 55K avec Tavily — 28K avec pure.md.
gantt
title Token count — wikipedia.org/wiki/Artificial_intelligence
dateFormat X
axisFormat %sK
section r.jina.ai
143K tokens : 0, 143
section tavily.com
55K tokens : 0, 55
section pure.md
28K tokens ✓ : 0, 28pure.md fait tourner un vrai browser headless pour hydrater les SPAs, tourne les IPs et fingerprints pour passer la bot detection, et convertit HTML/PDF/images en markdown allégé via HTMLRewriter.
L’API : un préfixe, c’est tout
# Avant
GET https://en.wikipedia.org/wiki/Artificial_intelligence # → HTML complet, 143K tokens
# Après
GET https://pure.md/en.wikipedia.org/wiki/Artificial_intelligence # → markdown propre, 28K tokensPas de SDK, pas de transformation de l’URL. Juste un préfixe. Le cache global évite les requêtes redondantes vers la même ressource — si quelqu’un d’autre a déjà fetché cette page, tu récupères la version en cache directement.
Le POST permet l’extraction structurée : tu passes un prompt et un schéma JSON, un LLM tourne sur le contenu de la page (Llama 3.1 8B par défaut, jusqu’à DeepSeek R1 distillé 32B) et retourne du JSON typé.
Le MCP : deux outils, quatre lignes
Deux outils sont exposés : unblock-url pour fetcher une URL en markdown, search-web pour lancer une recherche et concaténer les résultats des premières pages.
Configuration dans ~/.cursor/mcp.json (identique pour Windsurf et Claude Desktop) :
{
"mcpServers": {
"pure.md": {
"command": "npx",
"args": ["-y", "puremd-mcp"],
"env": {
"PUREMD_API_KEY": "<TOKEN>"
}
}
}
}Utilisable anonymement (6 req/min sans clé, 10 req/min connecté sans abonnement). Le plan Starter à 0€ démarre à 60 req/min avec facturation à l’usage ($0.003/fetch, $0.005/search) — et inclut $1 de crédit gratuit, soit environ 333 fetches avant de débourser quoi que ce soit. Largement suffisant pour tester en conditions réelles. Le plan Growth à $19/mois monte à 600 req/min avec $20 de crédit inclus — la clé API reste optionnelle pour explorer, indispensable dès qu’on passe en production.