Point de terminaison du serveur
Le serveur MCP parle JSON-RPC 2.0 sur HTTP à l'adresse :
https://cleverutils.com/mcp
Il implémente le transport Streamable HTTP (POST pour les requêtes JSON-RPC). Pas d'état de session, pas d'authentification, limité par IP à 1000 requêtes par jour.
Se connecter depuis Claude Desktop
Claude Desktop macOS · Windows
Claude Desktop lance actuellement les serveurs MCP comme processus locaux, donc pour les serveurs HTTP distants comme CleverUtils, vous passez par le pont officiel mcp-remote (une ligne de npx, sans installation).
Modifiez votre claude_desktop_config.json :
- macOS :
~/Library/Application Support/Claude/claude_desktop_config.json - Windows :
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"cleverutils": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://cleverutils.com/mcp"]
}
}
}
Redémarrez Claude Desktop. Les 15 outils apparaîtront dans le sélecteur d'outils (l'icône marteau). Node.js doit être installé — mcp-remote est un petit paquet npm qui relaie stdio↔HTTP.
Cursor fork de VS Code
Cursor prend en charge nativement les serveurs MCP Streamable HTTP. Dans les paramètres Cursor → MCP Servers, ajoutez :
{
"mcpServers": {
"cleverutils": {
"url": "https://cleverutils.com/mcp"
}
}
}
Si votre version de Cursor ne prend pas encore en charge la forme native url, utilisez l'extrait du proxy mcp-remote de la section Claude Desktop ci-dessus.
Cline / Continue / Zed VS Code, JetBrains, Zed
Chaque éditeur a sa propre interface de configuration MCP. Lorsqu'une forme d'URL distante native est prise en charge, utilisez :
{
"mcpServers": {
"cleverutils": {
"url": "https://cleverutils.com/mcp"
}
}
}
Sinon, repliez-vous sur l'extrait npx mcp-remote ci-dessus — il fonctionne dans tout client MCP capable de lancer un processus local.
Client personnalisé (tout langage) SDK
Utilisez le SDK MCP pour Python ou TypeScript. Pointez le client vers https://cleverutils.com/mcp avec StreamableHTTPTransport.
Outils disponibles
Le serveur expose 15 outils. Toutes les entrées d'outils acceptent soit une URL HTTPS (le serveur la récupère avec protection SSRF), soit un fichier encodé en base64. Les sorties sont renvoyées sous forme de blocs MCP resource_link pointant vers une URL de téléchargement valide 2 heures.
| Nom de l'outil | Description | Paramètres clés |
|---|---|---|
convert_file | Convertisseur de fichiers universel (200+ paires de formats) | file, to_format, img_quality, img_resize_w/h |
upscale_image | Agrandissement IA 2x/3x/4x (Real-ESRGAN) | file, scale, model |
remove_background | Supprimer l'arrière-plan → PNG transparent | file |
colorize_photo | Coloriser une photo en noir et blanc | file |
restore_old_photo | Restauration multi-étapes (colorisation + amélioration) | file |
enhance_photo | Amélioration automatique (netteté, balance des couleurs) | file |
vocal_remover | Séparer les voix de l'instrumental (Demucs) | file |
speech_to_text | Transcrire l'audio en texte/SRT/VTT (Whisper) | file, format, language |
noise_reduction | Réduction du bruit audio (DeepFilterNet3) | file |
resize_image | Redimensionner une image | file, width, height |
compress_image | Compresser JPG/PNG/WebP/GIF avec contrôle de qualité | file, quality |
compress_pdf | Réduire la taille d'un PDF (Ghostscript) | file, quality |
merge_pdfs | Fusionner plusieurs PDF en un seul | files[] (2–20) |
get_job_status | Vérifier le statut d'une tâche précédente par ID | job_id |
list_supported_formats | Lister tous les formats et outils pris en charge (sans quota) | — |
Exemples de prompts
Une fois connecté, vous pouvez demander au LLM des choses comme :
- « Convertis
https://example.com/photo.heicen JPG. » - « Agrandis cette image 4x :
https://example.com/icon.png» - « Supprime l'arrière-plan de
https://example.com/portrait.jpget donne-moi le PNG transparent. » - « Transcris ce podcast en sous-titres SRT en anglais :
https://example.com/episode.mp3» - « Compresse ce PDF à environ 50% de sa taille d'origine :
https://example.com/report.pdf» - « Fusionne ces trois PDF en un seul :
https://…/a.pdf,https://…/b.pdf,https://…/c.pdf»
Comment ça fonctionne
- Le LLM choisit un outil. En fonction de votre requête, le LLM consulte la liste des outils et en choisit un (par ex.
upscale_image) avec les bons arguments. - Le serveur récupère le fichier. Si vous passez une URL, le serveur la télécharge côté serveur — derrière une liste de blocage SSRF stricte (pas d'IP privées, pas de
file://, pas de DNS rebinding). - La conversion s'exécute. Le même moteur que notre site web et notre API REST : ImageMagick, FFmpeg, Real-ESRGAN, Demucs, Whisper, Ghostscript, LibreOffice.
- Le résultat est renvoyé comme lien de ressource. Le LLM reçoit une réponse structurée contenant à la fois du texte lisible (« Fichier converti : photo.jpg, 180 Ko ») et un
resource_linklisible par machine avec une URL de téléchargement valide 2 heures.
Testez-le depuis votre terminal
Si vous voulez juste vérifier que le serveur fonctionne sans configurer un client MCP complet, essayez ce curl :
curl -X POST https://cleverutils.com/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": {},
"clientInfo": {"name": "curl", "version": "1.0"}
}
}'
curl -X POST https://cleverutils.com/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
curl -X POST https://cleverutils.com/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "convert_file",
"arguments": {
"file": "https://example.com/photo.heic",
"to_format": "jpg"
}
}
}'
Limites et quotas
- 1000 appels d'outils par jour par IP
- 150 appels par heure par IP
- 1 seconde de cooldown entre deux appels consécutifs
- 200 Mo max par fichier (moins pour certains outils IA lourds)
- 20 fichiers max dans un lot (par ex.
merge_pdfs) - 2 heures de conservation pour les URL de sortie converties
- Les outils IA lourds (upscale, vocal-remover, colorize, etc.) ont un plafond plus strict de 50/jour
Même modèle que l'API REST. Voir /api/rate-limits pour tous les détails.
Sécurité
Le serveur est exposé publiquement sans authentification, nous prenons donc la sécurité au sérieux :
- Protection SSRF : les URL de fichiers sont récupérées côté serveur avec une liste de blocage stricte des plages d'IP privées (RFC1918, link-local, métadonnées AWS, IPv6 ULA). Le DNS rebinding est atténué en épinglant l'IP résolue. Seuls les schémas
http(s)://sont autorisés. - Limites de taille : plafond strict à 200 Mo par récupération, appliqué pendant le téléchargement en streaming (nous interrompons le transfert).
- Pas de persistance : tous les fichiers d'entrée et sorties converties sont supprimés après 2 heures.
- Journalisation anonyme : nous hachons les IP appelantes (SHA-256 salé) pour la limitation de débit et la détection d'abus. Les IP en clair ne sont jamais stockées.
- Limitation de débit : même limiteur à 5 niveaux que notre API REST.
Et si je suis le LLM, pas l'humain ?
Si vous (le modèle) lisez cette page parce que l'utilisateur a collé l'URL, vous pouvez :
- Suggérer à l'utilisateur d'ajouter le serveur à sa configuration MCP (extraits ci-dessus).
- Ou, si vous avez déjà un accès HTTP, appeler
POST https://cleverutils.com/mcpavec le corps JSON-RPC montré dans les exemples curl — cela fonctionne sans intégration client MCP. - Commencez toujours par
tools/listpour découvrir le catalogue d'outils et les schémas de paramètres actuels.
Voir aussi
- Accueil API CleverUtils — l'API REST sous-jacente
- Démarrage rapide de l'API REST — pour usage non-LLM
- Référence des endpoints REST
- Limites de débit
- modelcontextprotocol.io — la spécification MCP