Saltar al contenido principal
SocialCutter

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:

UsoFicheroÁmbito
Extensión de IDE~/.cline/data/settings/cline_mcp_settings.jsonGlobal compartido
CLI~/.cline/mcp.jsonGlobal 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 significa sse y el transporte equivocado.
  • url: el endpoint exacto, con su /mcp final.
  • headers: X-API-Key con la clave sc_..., o Authorization: Bearer sc_.... Ninguna herramienta acepta la clave como argumento, la autenticación va siempre por cabecera.
  • disabled: false para dejar el servidor activo. Si lo pones en true, 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íntomaCausa probableSolución
El servidor aparece pero sin herramientasFalta type, así que Cline usa el transporte legacy sseAñade "type": "streamableHttp" y refresca
401: Invalid or expired authentication tokenNo 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 keyClave mal copiada, revocada o de otra cuentaCrea una nueva en Perfil → API keys y sustitúyela
La conexión funciona en el IDE y no en el CLIHas editado solo uno de los dos ficherosReplica la entrada en ~/.cline/mcp.json
cline mcp install no responde o se cuelgaEl asistente necesita una terminal interactivaEdita el JSON a mano
El servidor sigue desactivadodisabled está en truePonlo en false y refresca
Cada llamada pide confirmaciónautoApprove está vacíoAñade a la lista las herramientas que quieras ejecutar sin preguntar

Siguientes pasos

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_...