Un post sur r/ClaudeAI a lancé PullMD pour corriger le gonflement des tokens HTML dans Claude Code. La même correction fonctionne via l'endpoint /extract de Scavio sans infrastructure. Ce tutoriel explique la substitution.
Prérequis
- Claude Code installé
- Clé API Scavio
Parcours
Étape 1: Identifier le HTML qui brûle des tokens dans l'agent actuel
Rechercher les appels d'outils qui récupèrent du HTML brut et le transmettent au LLM.
# Before:
# fetch(url) -> raw HTML -> LLM context
# 60KB HTML = ~30K tokensÉtape 2: Attacher Scavio MCP
Une ligne de configuration dans Claude Code.
claude mcp add scavio https://mcp.scavio.dev/mcp --header "x-api-key: $SCAVIO_API_KEY"Étape 3: Remplacer l'outil fetch par l'outil extract MCP
L'agent appelle extract(url) au lieu de fetch.
# Agent prompt now uses extract tool:
# 'Use extract to read the markdown of $URL'
# Returns ~3K tokens of clean markdown.Étape 4: Exécuter le comptage de tokens avant/après
Comparer l'utilisation des tokens sur la même tâche.
# Before: 30K input tokens / call
# After: 3K input tokens / call
# 10x reduction at the input layer.Étape 5: Décider du coût par appel
Scavio extract coûte 1 crédit / appel. PullMD auto-hébergé est gratuit + votre infrastructure.
# Scavio: $0.0043/call hosted
# PullMD: $0/call + server you maintain
# Pick based on infra preference.Exemple Python
# Direct API alternative if not using MCP:
import os, requests
resp = requests.post('https://api.scavio.dev/api/v1/extract',
headers={'x-api-key': os.environ['SCAVIO_API_KEY']},
json={'url': url, 'format': 'markdown'}).json()
markdown = resp.get('markdown', '')Exemple JavaScript
// Same shape in TS.
const resp = await fetch('https://api.scavio.dev/api/v1/extract', {
method: 'POST',
headers: { 'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ url, format: 'markdown' })
}).then(r => r.json());Sortie attendue
Claude Code agent's HTML-related tool calls drop from ~30K input tokens to ~3K. Per-task LLM cost drops accordingly.