Server-endpoint
De MCP-server spreekt JSON-RPC 2.0 via HTTP op:
https://cleverutils.com/mcp
Het implementeert het Streamable HTTP-transport (POST voor JSON-RPC-verzoeken). Geen sessiestatus, geen authenticatie, IP-gelimiteerd op 1000 verzoeken per dag.
Verbinden vanuit Claude Desktop
Claude Desktop macOS · Windows
Claude Desktop start MCP-servers momenteel als lokale processen, dus voor externe HTTP-servers zoals CleverUtils route je via de officiële mcp-remote-brug (één regel npx, geen installatie).
Bewerk je 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"]
}
}
}
Herstart Claude Desktop. De 15 tools verschijnen in de tool-kiezer (het hamerpictogram). Node.js moet geïnstalleerd zijn — mcp-remote is een klein npm-pakket dat stdio↔HTTP doorstuurt.
Cursor VS Code-fork
Cursor ondersteunt Streamable HTTP MCP-servers native. In de Cursor-instellingen → MCP Servers, voeg toe:
{
"mcpServers": {
"cleverutils": {
"url": "https://cleverutils.com/mcp"
}
}
}
Als jouw versie van Cursor de native url-vorm nog niet ondersteunt, gebruik dan het mcp-remote-proxy-snippet uit het Claude Desktop-hoofdstuk hierboven.
Cline / Continue / Zed VS Code, JetBrains, Zed
Elke editor heeft zijn eigen MCP-configuratie-UI. Waar een native remote-URL-vorm wordt ondersteund, gebruik:
{
"mcpServers": {
"cleverutils": {
"url": "https://cleverutils.com/mcp"
}
}
}
Anders val terug op het npx mcp-remote-snippet hierboven — het werkt in elke MCP-client die een lokaal proces kan starten.
Aangepaste client (elke taal) SDK
Gebruik de MCP-SDK voor Python of TypeScript. Wijs de client naar https://cleverutils.com/mcp met StreamableHTTPTransport.
Beschikbare tools
De server biedt 15 tools. Alle tool-invoer accepteert een HTTPS-URL (de server haalt op met SSRF-bescherming) of een base64-gecodeerd bestand. Uitvoer wordt geretourneerd als MCP-resource_link-blokken die verwijzen naar een download-URL die 2 uur geldig is.
| Toolnaam | Beschrijving | Belangrijkste parameters |
|---|---|---|
convert_file | Universele bestandsconversie (200+ formaatparen) | file, to_format, img_quality, img_resize_w/h |
upscale_image | AI 2x/3x/4x upscaling (Real-ESRGAN) | file, scale, model |
remove_background | Achtergrond verwijderen → transparante PNG | file |
colorize_photo | Zwart-witfoto inkleuren | file |
restore_old_photo | Meerfasige restauratie (kleuren + verbeteren) | file |
enhance_photo | Automatische verbetering (scherpte, kleurbalans) | file |
vocal_remover | Zang scheiden van instrumentaal (Demucs) | file |
speech_to_text | Audio transcriberen naar tekst/SRT/VTT (Whisper) | file, format, language |
noise_reduction | Audioruisonderdrukking (DeepFilterNet3) | file |
resize_image | Afbeelding schalen naar afmetingen | file, width, height |
compress_image | JPG/PNG/WebP/GIF comprimeren met kwaliteitsregeling | file, quality |
compress_pdf | PDF-bestandsgrootte verkleinen (Ghostscript) | file, quality |
merge_pdfs | Meerdere PDFs samenvoegen tot één | files[] (2–20) |
get_job_status | Status van een eerdere taak opvragen met ID | job_id |
list_supported_formats | Alle ondersteunde formaten en tools opsommen (geen quota) | — |
Voorbeeldprompts
Eenmaal verbonden kun je het LLM dingen vragen als:
- "Converteer
https://example.com/photo.heicnaar JPG." - "Upscale deze afbeelding 4x:
https://example.com/icon.png" - "Verwijder de achtergrond van
https://example.com/portrait.jpgen geef me de transparante PNG." - "Transcribeer deze podcast als SRT-ondertitels in het Engels:
https://example.com/episode.mp3" - "Comprimeer deze PDF tot ongeveer 50% van de oorspronkelijke grootte:
https://example.com/report.pdf" - "Voeg deze drie PDFs samen tot één:
https://…/a.pdf,https://…/b.pdf,https://…/c.pdf"
Hoe het werkt
- LLM kiest een tool. Op basis van je verzoek bekijkt het LLM de tool-lijst en kiest een tool (bijv.
upscale_image) met de juiste argumenten. - Server haalt het bestand op. Als je een URL meegaf, downloadt de server deze serverzijdig — achter een strikte SSRF-blokkeerlijst (geen privé-IPs, geen
file://, geen DNS rebinding). - Conversie wordt uitgevoerd. Dezelfde engine als onze website en REST-API: ImageMagick, FFmpeg, Real-ESRGAN, Demucs, Whisper, Ghostscript, LibreOffice.
- Resultaat wordt geretourneerd als resource-link. Het LLM krijgt een gestructureerd antwoord met zowel leesbare tekst ("Bestand geconverteerd: photo.jpg, 180 KB") als een machine-leesbare
resource_linkmet een download-URL die 2 uur geldig is.
Test het vanuit je terminal
Als je alleen wilt controleren of de server werkt zonder een volledige MCP-client op te zetten, probeer dan deze 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"
}
}
}'
Limieten en quota
- 1000 tool-aanroepen per dag per IP
- 150 aanroepen per uur per IP
- 1 seconde cooldown tussen opeenvolgende aanroepen
- Max 200 MB per bestand (minder voor sommige zware AI-tools)
- Max 20 bestanden in één batch (bijv.
merge_pdfs) - 2 uur retentie voor geconverteerde uitvoer-URLs
- Zware AI-tools (upscale, vocal-remover, colorize enz.) hebben een strengere limiet van 50/dag
Zelfde model als de REST-API. Zie /api/rate-limits voor alle details.
Beveiliging
De server is publiek toegankelijk zonder authenticatie, dus we nemen beveiliging serieus:
- SSRF-bescherming: bestands-URLs worden serverzijdig opgehaald met een strikte blokkeerlijst van privé-IP-bereiken (RFC1918, link-local, AWS-metadata, IPv6 ULA). DNS rebinding wordt beperkt door de opgeloste IP vast te pinnen. Alleen
http(s)://-schemas zijn toegestaan. - Groottelimieten: harde bovengrens van 200 MB per ophaal, gehandhaafd tijdens streaming-download (we breken af tijdens overdracht).
- Geen persistentie: alle invoerbestanden en geconverteerde uitvoer worden na 2 uur verwijderd.
- Anonieme logging: we hashen aanroeper-IPs (gezouten SHA-256) voor ratebeperking en misbruikdetectie. Platte tekst-IPs worden nooit opgeslagen.
- Ratebeperking: identieke 5-traps-limiter als onze REST-API.
Wat als ik het LLM ben, niet de mens?
Als jij (het model) deze pagina leest omdat de gebruiker de URL heeft geplakt, kun je:
- De gebruiker voorstellen de server aan zijn MCP-configuratie toe te voegen (snippets hierboven).
- Of, als je al HTTP-toegang hebt,
POST https://cleverutils.com/mcpaanroepen met de JSON-RPC-body uit de curl-voorbeelden — dit werkt zonder MCP-clientintegratie. - Begin altijd met
tools/listom de huidige tool-catalogus en parameter-schemas te ontdekken.
Zie ook
- CleverUtils API-startpagina — de onderliggende REST-API
- REST API-snelstart — voor niet-LLM-gebruik
- REST-endpoint-referentie
- Ratelimieten
- modelcontextprotocol.io — de MCP-specificatie