IA y agentes
Conecta SocialCutter a Cline por MCP: el transporte correcto
Configura el servidor MCP de SocialCutter en Cline: type streamableHttp, los ficheros del IDE y del CLI, autoApprove y errores de transporte.
- Cline
- MCP
- streamableHttp
- sse
- cline_mcp_settings.json
- X-API-Key
- SocialCutter
Qué hace Cline y dónde encaja el MCP
Cline es un agente de programación que trabaja sobre tu editor y también tiene un CLI. Como cualquier cliente MCP, permite que el agente llame herramientas de un servicio externo en lugar de escribir peticiones HTTP a mano. En nuestro caso, el servidor MCP de SocialCutter publica 28 herramientas: procesar imágenes, consultar el historial y el monedero, gestionar cupones y claves de API, y leer la facturación.
El catálogo completo de herramientas, los modos de conexión y los detalles del protocolo están en la guía del servidor MCP de SocialCutter. Esta página se centra en lo específico de Cline, que tiene una trampa documentada, dos ficheros de configuración distintos y un asistente de línea de comandos con una limitación que sorprende a mucha gente.
Antes de entrar: SocialCutter admite las dos cabeceras, X-API-Key: sc_... y Authorization: Bearer sc_.... Usa la que documente tu cliente; el resultado es el mismo. Un Bearer sin el prefijo sc_ se trata como token de sesión y dará 401. El endpoint es https://mcp.socialcutter.theboomer.dev/mcp y habla HTTP con streaming, no SSE.
La trampa: si omites type, Cline asume sse
Esta es la parte que hay que leer dos veces, porque está documentada y aun así se cuela en casi todas las configuraciones escritas a mano.
Cline mantiene el transporte legacy sse por retrocompatibilidad. Cuando en una entrada de mcpServers falta el campo type, Cline no adivina por la forma de la URL ni prueba varios transportes: asume sse. Y como el endpoint de SocialCutter es HTTP con streaming, ese supuesto apunta a la conexión equivocada.
El síntoma típico no es un error visible y claro, sino un servidor que aparece en la lista sin herramientas o que se queda intentando conectar. Es exactamente el tipo de fallo que se busca en el sitio equivocado: se revisa la URL, la clave, el cortafuegos, y el problema era un campo que no estaba.
La solución es de una línea:
"type": "streamableHttp"
De ahí que todos los ejemplos de esta guía incluyan siempre type explícito. Si además estás migrando una configuración antigua que funcionaba con SSE, ese es el cambio: sse fuera, streamableHttp dentro.
Los dos ficheros de configuración
Cline es extensión de IDE y también CLI, y cada uno guarda su configuración en un sitio distinto:
| Uso | Fichero | Ámbito |
|---|---|---|
| Extensión de IDE | ~/.cline/data/settings/cline_mcp_settings.json | Global compartido |
| CLI | ~/.cline/mcp.json | Global del CLI |
Dos avisos prácticos:
- No se sincronizan solos. Añadir el servidor a la extensión no lo añade al CLI ni al contrario. Si usas los dos, escribe la entrada en ambos ficheros.
- En la extensión también puedes abrir el mismo JSON desde el botón Configure MCP Servers del panel de MCP: es la forma más segura de acertar con la ruta que usa tu versión, porque abre directamente el fichero que la extensión está leyendo.
En Windows, el ~ es tu carpeta de usuario, así que ~/.cline/mcp.json es C:\Users\tu_usuario\.cline\mcp.json.
El bloque completo
Con type explícito, la cabecera correcta y los dos campos de control que Cline espera:
{
"mcpServers": {
"socialcutter": {
"type": "streamableHttp",
"url": "https://mcp.socialcutter.theboomer.dev/mcp",
"headers": { "X-API-Key": "sc_tu_clave" },
// equivalente: "headers": { "Authorization": "Bearer sc_tu_clave" },
"disabled": false,
"autoApprove": []
}
}
}
Qué hace cada campo:
type:"streamableHttp". No lo omitas nunca; omitirlo significassey el transporte equivocado.url: el endpoint exacto, con su/mcpfinal.headers:X-API-Keycon la clavesc_..., oAuthorization: Bearer sc_.... Ninguna herramienta acepta la clave como argumento, la autenticación va siempre por cabecera.disabled:falsepara dejar el servidor activo. Si lo pones entrue, Cline lo ignora sin borrar la configuración, que es útil para desactivar un servidor puntualmente.autoApprove: un array. Vacío significa que Cline te pide confirmación antes de usar cualquier herramienta. Si añades nombres concretos —por ejemplo["list_platforms", "get_credits"]—, esas se ejecutan sin preguntar y el resto siguen pidiendo permiso.
Si prefieres no escribir la clave en claro, guarda el valor en tu gestor de secretos y pega el fichero desde plantilla. El fichero de configuración de Cline no está pensado para publicarse.
Alta por línea de comandos (y su limitación)
Cline trae un asistente para no editar el JSON a mano:
cline mcp install socialcutter --transport http https://mcp.socialcutter.theboomer.dev/mcp
Y para revisar lo que hay dado de alta:
cline mcp
El aviso importante: el asistente de instalación exige una terminal interactiva (TTY). Funciona perfectamente cuando lo lanzas tú en tu terminal, y falla o se queda colgado en un script, en un fichero de automatización, en una CI o en cualquier entorno sin terminal interactiva. Si es tu caso, la alternativa es exactamente la que ya tienes arriba: editar el JSON directamente. No hay un flag documentado que desbloquee el asistente sin TTY, así que no merece la pena pelearse con él.
En la práctica, para una sola máquina el camino más rápido es crear la entrada en el JSON y refrescar. El asistente tiene sentido cuando estás dando de alta varios servidores y no quieres recordar el nombre de los campos.
Errores típicos
| Síntoma | Causa probable | Solución |
|---|---|---|
| El servidor aparece pero sin herramientas | Falta type, así que Cline usa el transporte legacy sse | Añade "type": "streamableHttp" y refresca |
401: Invalid or expired authentication token | No llega ninguna cabecera, o un Authorization: Bearer cuyo valor no empieza por sc_ (se toma como token de sesión) | Manda tu clave sc_... en X-API-Key, o en Authorization: Bearer sc_... |
401: Invalid API key | Clave mal copiada, revocada o de otra cuenta | Crea una nueva en Perfil → API keys y sustitúyela |
| La conexión funciona en el IDE y no en el CLI | Has editado solo uno de los dos ficheros | Replica la entrada en ~/.cline/mcp.json |
cline mcp install no responde o se cuelga | El asistente necesita una terminal interactiva | Edita el JSON a mano |
| El servidor sigue desactivado | disabled está en true | Ponlo en false y refresca |
| Cada llamada pide confirmación | autoApprove está vacío | Añade a la lista las herramientas que quieras ejecutar sin preguntar |
Siguientes pasos
- Panorama del protocolo: Usa SocialCutter desde tu LLM o editor con MCP
- Camino con código: Procesa imágenes con la API desde la terminal (curl) y desde Python
- Estrategia: Automatizar imágenes para redes sociales: los 4 caminos
- Referencia de la API: https://docs.socialcutter.theboomer.dev
- Dashboard: https://dash.socialcutter.theboomer.dev
Preguntas frecuentes
He copiado la configuración y Cline no encuentra ninguna herramienta, ¿por qué?
Lo más probable es que falte el campo type. Si se omite, Cline asume el transporte legacy sse por retrocompatibilidad, y el endpoint de SocialCutter es HTTP con streaming. Añade "type": "streamableHttp" y refresca.
¿Qué fichero edito, el del IDE o el del CLI?
Depende de dónde uses Cline. La extensión de IDE guarda la configuración global compartida en ~/.cline/data/settings/cline_mcp_settings.json; el CLI usa ~/.cline/mcp.json. Son ficheros distintos y no se sincronizan solos.
¿Puedo instalar el servidor con un comando en vez de editar el JSON?
Sí, con cline mcp install, pero el asistente exige una terminal interactiva (TTY). En un script, una CI o cualquier entorno no interactivo el asistente no funciona y la alternativa es editar el JSON directamente.
¿Para qué sirve autoApprove?
Para que Cline no te pida confirmación antes de cada llamada a una herramienta. Es un array: si lo dejas vacío, Cline pregunta antes de ejecutar nada; si incluyes nombres concretos, esos se ejecutan sin preguntar.
¿El servidor MCP necesita credenciales para arrancar?
No. Las herramientas públicas responden sin clave, así que puedes configurar la conexión, refrescar y comprobar con list_platforms antes de crear la clave sc_. Las privadas sí exigen una cabecera de autenticación: X-API-Key: sc_... o Authorization: Bearer sc_...