Un LLM est brillant et aveugle. Et cet aveuglement est silencieux.
Un scraper classique remet à votre agent une page de challenge Cloudflare comme s'il s'agissait de l'article. L'agent y croit, la résume et agit en conséquence. Aucune erreur ne se déclenche. Personne ne s'en rend compte jusqu'à ce qu'un client le fasse.
Chaque lecture arrive avec un reçu.
render_quality mesure la fidélité du rendu d'une page avant qu'on ne la lise. Les pages de challenge, les coquilles de SPA vides, les chargements différés partiels et les interstitiels le font baisser. C'est la frontière entre « mon agent agit peut-être sur n'importe quoi » et « mon agent sait ».
- Noté à chaque lecturePas un contrôle de santé que vous devez brancher vous-même. Chaque réponse perceive et convert porte un champ render_quality, de 0,0 à 1,0.
- Signalé en dessous de 0,40Une page bloquée ou protégée par une connexion revient quand même en entier, mais avec un score bas et un tableau warnings nommant ce que nous avons détecté. Votre agent obtient le contenu et la vérité à son sujet, si bien qu'une page de challenge n'est jamais confondue avec la vraie.
- Personne d'autre ne fait çaNi les API de scraping, ni les API de conversion, ni les cinq fournisseurs que vous devriez assembler vous-même. Ce score, vous ne le trouverez nulle part ailleurs.
{
"render_quality": 0.12,
"status": "blocked",
"warnings": ["challenge_page"],
"markdown": "…" // full output, flagged
}Nous avons mesuré l'échec silencieux.
Le même ensemble de pages hostiles, lu de deux façons. Une requête naïve renvoie une page de blocage comme s'il s'agissait de contenu, et ne le signale jamais. Enconvert rend la vraie page là où la requête naïve a échoué, et signale les rares qu'elle ne peut pas. Le harnais de test et la liste d'URLs sont publics, vous pouvez l'exécuter vous-même.
URLs réelles testées : bloquées par des bots, avec paywall, riches en JS
Une requête naïve a renvoyé silencieusement une page de blocage comme « contenu »
Parmi elles, Enconvert a rendu la vraie page à la place (récupérées)
Pour les pages qu'elle ne pouvait toujours pas rendre, Enconvert les a signalées, n'en laissant passer aucune silencieusement
Regardez-le démasquer une page qui ment.
Un enregistrement d'écran non retouché : le fondateur exécute le MCP dans un agent réel, sur une page propre et sur une page qui résiste. Environ 40 secondes.
- Le scraper de votre agent ne peut pas dire quand il a été bloqué. Regardez le mien, en direct.
- Une commande : claude mcp add enconvert, collez une clé. Terminé.
- Pointez-le vers une page propre : render_quality 0,96, du Markdown propre revient.
- Maintenant une page protégée par Cloudflare : render_quality 0,12, le blocage est signalé directement dans la réponse.
- Un vrai produit, une vraie page qui résiste, un vrai score honnête. Rien de mis en scène.
Les yeux sont bien réels dès aujourd'hui.
Tout ce qui permet à votre agent de lire le monde extérieur, fichiers et web, est disponible. Sept outils, une clé API, un score honnête sur chaque lecture.
7 outils · tous disponibles- convertOuvrez 46 types de fichiers en une seule requête.PDF · DOCX · HEIC · CSV · URLLive
- perceiveN'importe quelle URL transformée en Markdown propre, JSON ou capture d'écran. Chaque lecture notée.URL → MD · PNG · JSONLive
- discoverCartographiez toutes les URLs d'un site sans rendre une seule page.SITE → URL MAPLive
- lookupRecherchez sur le web en direct depuis la conversation.QUERY → RESULTSLive
- distillFournissez un schéma, récupérez des données structurées de n'importe quelle page.SCHEMA → JSONLive
- ingestExplorez un site entier en fragments prêts pour le RAG en un seul appel.SITE → CHUNKSLive
- watchRecevez un webhook dès qu'une page que vous suivez change.PAGE → DIFFLive
Les mains arrivent. Nous ne prétendrons pas qu'elles sont déjà là.
Le contrôle réel du navigateur est en développement actif pour 2026, pas encore utilisable. Les utilisateurs fondateurs auront les mains en premier. Nous vous disons exactement ce qui est livré et ce qui ne l'est pas, la même honnêteté que nous appliquons à chaque lecture.
Vous êtes sur le point de dépendre de nous. Voici pourquoi c'est sans risque.
Pas encore de logos à montrer. À la place, ce que les logos sont censés prouver : une couche d'intégration auditable et forkable, une véritable posture de sécurité, et un fondateur à qui écrire.
Les versions récentes apparaîtront ici.
Le serveur MCP et le SDK Node qu'il enveloppe sont sous licence MIT et publics. Lisez-les, forkez-les, hébergez-les vous-même. Le moteur de conversion derrière eux est propriétaire et reste le nôtre, mais la couche E/S de votre agent est auditable et ne pourra jamais vous être retirée.
Chaque URL est filtrée contre le SSRF avant d'être récupérée : pas d'IP privée ou link-local, pas de points de terminaison de métadonnées, pas de réseaux internes. Les contextes de navigateur sont en sandbox avec les permissions désactivées, et chaque opération est limitée dans le temps.
L'installation lit votre clé API (depuis ENCONVERT_API_KEY ou ~/.enconvert/config.json, chmod 600) et ne modifie que les configurations des clients IA que vous choisissez. Chacune est d'abord sauvegardée, et votre clé n'y est jamais copiée. À l'exécution, elle appelle l'API Enconvert ainsi que tout fichier ou URL que vous lui confiez. Des analyses d'usage expurgées (nom de l'outil, timing, un id de clé haché — jamais votre clé brute ; les URLs, chemins de fichiers et e-mails sont nettoyés) sont envoyées à PostHog ; définissez DO_NOT_TRACK=1 pour les désactiver.
Une page de statut publique vous dit la vérité sur la disponibilité, de la même façon que render_quality vous dit la vérité sur une lecture. Le changelog arrive bientôt.
J'en avais assez de coller cinq fournisseurs ensemble à chaque fois qu'un agent devait lire un fichier ou une page web, puis de surveiller les scripts qui tenaient le tout debout. L'agent savait raisonner. Il ne savait tout simplement pas voir. Pire, il ne pouvait pas dire quand ce qu'il voyait était une page Cloudflare plutôt que la vraie. J'ai donc construit un seul serveur qui lui donne des yeux honnêtes : il lit n'importe quoi, et il note chaque lecture. Je réponds aux e-mails personnellement.
Remplace la pile que vous rafistolez avec du scotch.
Donner des yeux à un agent aujourd'hui, c'est coudre ensemble quatre ou cinq fournisseurs et surveiller les coutures. Maintenant, c'est une seule dépendance, avec un score qu'aucun d'entre eux ne vous donne.
- Firecrawlpour extraire les pages en markdown
- CloudConvertpour convertir les fichiers
- Browserbasepour une flotte de navigateurs headless
- an LLM-extract steppour extraire des données structurées
- cron + glue scriptspour garder le tout en vie
- Un serveur MCP
- Une clé API
- Une facture
Une facture, pas de deuxième abonnement d'extraction IA, et un score render_quality sur chaque lecture.
Le contrôle du navigateur (la partie Browserbase) figure sur la feuille de route 2026, pas compté dans « aujourd'hui ».
Évitez le code de liaison.
Le même moteur de conversion que l'API REST. Aucun du travail d'intégration.
Encapsuler vous-même l'API REST
Votre code porte tout cela, pour toujours :
- La plomberie HTTP et les uploads multipart
- La validation de schéma sur chaque entrée
- Le polling des tâches longues
- La logique de retry et de backoff
- L'extraction des URLs présignées des réponses
- Votre propre vérification « cette page a-t-elle vraiment été rendue ? »
Enregistrer le serveur MCP
Une seule entrée dans la configuration de votre client :
npx @enconvert/mcp setupL'environnement d'exécution de l'agent gère le polling, les retries, l'authentification et le traitement des sorties. Cursor, Windsurf, Zed et JetBrains utilisent la même structure JSON ; le README les couvre toutes.
Une requête brute donne à votre agent des octets et un 200. Enconvert lui donne du Markdown propre, du JSON, et un score render_quality, pour que l'agent puisse raisonner sur la fiabilité de ce qu'il vient de lire. Cette barrière d'honnêteté, c'est exactement ce que vous devriez sinon construire et maintenir vous-même.
Questions sur le serveur MCP
Votre agent n'est qu'à une installation de tout voir.
Gratuit pour une durée limitée. 29 $/mois quand vous passez à l'échelle. Une facture, aucune surprise.