Endpoint del servidor
El servidor MCP habla JSON-RPC 2.0 sobre HTTP en:
https://cleverutils.com/mcp
Implementa el transporte Streamable HTTP (POST para peticiones JSON-RPC). Sin estado de sesión, sin autenticación, con límite de 1000 peticiones por día por IP.
Conectar desde Claude Desktop
Claude Desktop macOS · Windows
Claude Desktop actualmente lanza servidores MCP como procesos locales, por lo que para servidores HTTP remotos como CleverUtils se usa el puente oficial mcp-remote (una línea de npx, sin instalación).
Edita tu 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"]
}
}
}
Reinicia Claude Desktop. Las 15 herramientas aparecerán en el selector de herramientas (el icono del martillo). Node.js debe estar instalado — mcp-remote es un pequeño paquete npm que retransmite stdio↔HTTP.
Cursor fork de VS Code
Cursor admite servidores MCP Streamable HTTP de forma nativa. En la configuración de Cursor → MCP Servers, añade:
{
"mcpServers": {
"cleverutils": {
"url": "https://cleverutils.com/mcp"
}
}
}
Si tu versión de Cursor todavía no admite la forma nativa url, usa el snippet del proxy mcp-remote de la sección de Claude Desktop anterior.
Cline / Continue / Zed VS Code, JetBrains, Zed
Cada editor tiene su propia interfaz de configuración MCP. Cuando se admite una forma nativa de URL remota, usa:
{
"mcpServers": {
"cleverutils": {
"url": "https://cleverutils.com/mcp"
}
}
}
De lo contrario, recurre al snippet npx mcp-remote de arriba — funciona en cualquier cliente MCP que pueda lanzar un proceso local.
Cliente personalizado (cualquier lenguaje) SDK
Usa el SDK de MCP para Python o TypeScript. Apunta el cliente a https://cleverutils.com/mcp con StreamableHTTPTransport.
Herramientas disponibles
El servidor expone 15 herramientas. Todas las entradas aceptan una URL HTTPS (el servidor la descarga con protección SSRF) o un archivo codificado en base64. Las salidas se devuelven como bloques MCP resource_link que apuntan a una URL de descarga válida durante 2 horas.
| Nombre de la herramienta | Descripción | Parámetros clave |
|---|---|---|
convert_file | Conversor universal de archivos (200+ pares de formatos) | file, to_format, img_quality, img_resize_w/h |
upscale_image | Ampliación IA 2x/3x/4x (Real-ESRGAN) | file, scale, model |
remove_background | Eliminar fondo de imagen → PNG transparente | file |
colorize_photo | Colorizar foto en blanco y negro | file |
restore_old_photo | Restauración multietapa (colorizar + mejorar) | file |
enhance_photo | Mejora automática (nitidez, balance de color) | file |
vocal_remover | Separar voces del instrumental (Demucs) | file |
speech_to_text | Transcribir audio a texto/SRT/VTT (Whisper) | file, format, language |
noise_reduction | Reducción de ruido de audio (DeepFilterNet3) | file |
resize_image | Redimensionar imagen a dimensiones | file, width, height |
compress_image | Comprimir JPG/PNG/WebP/GIF con control de calidad | file, quality |
compress_pdf | Reducir el tamaño de un PDF (Ghostscript) | file, quality |
merge_pdfs | Combinar varios PDF en uno | files[] (2–20) |
get_job_status | Comprobar el estado de un trabajo previo por ID | job_id |
list_supported_formats | Listar todos los formatos y herramientas compatibles (sin coste) | — |
Prompts de ejemplo
Una vez conectado, puedes pedirle al LLM cosas como:
- «Convierte
https://example.com/photo.heica JPG.» - «Amplía esta imagen 4x:
https://example.com/icon.png» - «Elimina el fondo de
https://example.com/portrait.jpgy dame el PNG transparente.» - «Transcribe este podcast como subtítulos SRT en inglés:
https://example.com/episode.mp3» - «Comprime este PDF a aproximadamente el 50% del tamaño original:
https://example.com/report.pdf» - «Combina estos tres PDF en uno:
https://…/a.pdf,https://…/b.pdf,https://…/c.pdf»
Cómo funciona
- El LLM elige una herramienta. Según tu petición, el LLM revisa la lista de herramientas y elige una (por ejemplo,
upscale_image) con los argumentos correctos. - El servidor descarga el archivo. Si pasaste una URL, el servidor la descarga del lado del servidor — detrás de una lista de bloqueo SSRF estricta (sin IP privadas, sin
file://, sin DNS rebinding). - Se ejecuta la conversión. El mismo motor que nuestro sitio web y API REST: ImageMagick, FFmpeg, Real-ESRGAN, Demucs, Whisper, Ghostscript, LibreOffice.
- El resultado se devuelve como enlace de recurso. El LLM recibe una respuesta estructurada que contiene tanto texto legible («Archivo convertido: photo.jpg, 180 KB») como un
resource_linklegible por máquina con una URL de descarga válida durante 2 horas.
Pruébalo desde tu terminal
Si solo quieres verificar que el servidor funciona sin configurar un cliente MCP completo, prueba este 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"
}
}
}'
Límites y cuotas
- 1000 llamadas de herramienta al día por IP
- 150 llamadas por hora por IP
- 1 segundo de cooldown entre llamadas consecutivas
- Máx. 200 MB por archivo (menos para algunas herramientas de IA pesadas)
- Máx. 20 archivos en un lote (por ejemplo,
merge_pdfs) - 2 horas de retención para las URL de salida convertidas
- Las herramientas de IA pesadas (upscale, vocal-remover, colorize, etc.) tienen un límite más estricto de 50/día
Mismo modelo que la API REST. Consulta /api/rate-limits para todos los detalles.
Seguridad
El servidor está expuesto públicamente sin autenticación, por lo que nos tomamos la seguridad en serio:
- Protección SSRF: las URL de archivos se descargan del lado del servidor con una lista de bloqueo estricta de rangos de IP privadas (RFC1918, link-local, metadatos de AWS, IPv6 ULA). El DNS rebinding se mitiga fijando la IP resuelta. Solo se permiten esquemas
http(s)://. - Límites de tamaño: tope estricto de 200 MB por descarga, aplicado durante la descarga en streaming (abortamos a mitad de transferencia).
- Sin persistencia: todos los archivos de entrada y salidas convertidas se eliminan tras 2 horas.
- Registro anónimo: hasheamos las IP del llamante (SHA-256 con sal) para limitar la tasa y detectar abusos. Las IP en texto claro nunca se almacenan.
- Limitación de tasa: limitador de 5 niveles idéntico al de nuestra API REST.
¿Y si soy el LLM, no el humano?
Si tú (el modelo) estás leyendo esta página porque el usuario pegó la URL, puedes:
- Sugerir al usuario que añada el servidor a su configuración MCP (snippets anteriores).
- O, si ya tienes acceso HTTP, llamar a
POST https://cleverutils.com/mcpcon el cuerpo JSON-RPC mostrado en los ejemplos de curl — esto funciona sin integración de cliente MCP. - Comienza siempre con
tools/listpara descubrir el catálogo de herramientas actual y los esquemas de parámetros.
Véase también
- Inicio de la API de CleverUtils — la API REST subyacente
- Inicio rápido de la API REST — para uso no-LLM
- Referencia de endpoints REST
- Límites de tasa
- modelcontextprotocol.io — la especificación MCP