Servidor MCP para asistentes de IA
Conecta Claude Code, Claude Desktop o Cursor a tu espacio de trabajo por el Model Context Protocol: configuraciones listas, catálogo de herramientas, permisos y planes.
Actualizado el 14 de agosto de 2026
El servidor MCP permite que un asistente de IA trabaje directamente con tus enlaces y tus analíticas: «acorta esta página de aterrizaje en nuestro dominio de marca», «qué cinco enlaces se llevaron más clics la semana pasada», «silencia hasta el lunes la regla de alerta del dominio de campaña». El asistente lo hace a través de la misma API pública que llamarías tú, con exactamente los permisos de la clave con la que lo hayas conectado.
https://api.linkprofit.com/v1/mcp
El transporte es JSON-RPC 2.0 sobre HTTP, siguiendo la revisión 2025-06-18
del Model Context Protocol (también se acepta la revisión 2025-03-26). No hay
flujo de eventos iniciado por el servidor ni estado de sesión: GET y DELETE
responden 405, no se emite ningún Mcp-Session-Id y cada solicitud lleva en
la propia clave todo el contexto que necesita. Sirve cualquier cliente MCP que
hable HTTP; los tres de abajo son simplemente aquellos para los que damos
configuraciones listas para copiar.
1. Crea una clave para el asistente
En tu panel abre Ajustes → Claves de API y crea una clave de espacio de
trabajo (lp_live_…). Concédele solo los alcances que el asistente deba
tener de verdad: el catálogo de herramientas de abajo indica lo que necesita
cada una. Una clave con links:read + analytics:read te da un asistente de
solo lectura, capaz de responder preguntas pero no de cambiar nada.
El valor completo de la clave se muestra una sola vez. Trátala como una contraseña: va a acabar en un archivo de configuración de tu máquina.
2. Añade el servidor a tu cliente
Claude Code
Un solo comando, sin archivos de configuración que editar:
claude mcp add --transport http linkprofit https://api.linkprofit.com/v1/mcp \
--header "Authorization: Bearer lp_live_…your key…"
Añade --scope user para que el servidor esté disponible en todos los
proyectos de tu máquina y no solo en el actual. Comprueba el resultado con
claude mcp list y elimínalo más adelante con claude mcp remove linkprofit.
Claude Desktop
Edita el archivo de configuración —en macOS
~/Library/Application Support/Claude/claude_desktop_config.json, en Windows
%APPDATA%\Claude\claude_desktop_config.json— y añade el servidor:
{
"mcpServers": {
"linkprofit": {
"type": "http",
"url": "https://api.linkprofit.com/v1/mcp",
"headers": {
"Authorization": "Bearer lp_live_…your key…"
}
}
}
}
Reinicia Claude Desktop. Las herramientas aparecen en el selector de herramientas de una conversación nueva.
Cursor
Crea .cursor/mcp.json en el proyecto (o ~/.cursor/mcp.json para tenerlo en
todas partes):
{
"mcpServers": {
"linkprofit": {
"url": "https://api.linkprofit.com/v1/mcp",
"headers": {
"Authorization": "Bearer lp_live_…your key…"
}
}
}
}
Cursor recoge el archivo al guardarlo y muestra el servidor en Settings → MCP.
Comprobar la conexión a mano
Los problemas de cualquier cliente se leen mejor al nivel del protocolo. Este es el mismo saludo inicial que hacen los clientes:
curl -s -X POST https://api.linkprofit.com/v1/mcp \
-H "Authorization: Bearer $LINKPROFIT_API_KEY" \
-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" }
}
}'
Una respuesta sana nombra la versión del protocolo, el servidor y su capacidad
de herramientas. Cambia el método por tools/list para ver el catálogo, y por
ping para comprobar únicamente que responde.
Herramientas
Diez herramientas, todas limitadas al espacio de trabajo al que pertenece la clave. La columna de alcance es lo que la clave debe llevar; una herramienta para la que la clave no tiene alcance simplemente falla al llamarla, no se oculta del catálogo.
| Herramienta | Qué hace | Alcance necesario |
| --- | --- | --- |
| list_links | Lista los enlaces cortos del espacio de trabajo, con un filtro opcional por cadena de búsqueda | links:read |
| get_link | Lee un enlace por su id | links:read |
| create_link | Crea un enlace corto; sin domain_id se usa el dominio por defecto del espacio de trabajo | links:write |
| update_link | Cambia el destino o el título de un enlace existente | links:write |
| analytics_summary | Clics, visitantes y escaneos de QR de un periodo, opcionalmente de un solo enlace | analytics:read |
| analytics_breakdown | Clics y visitantes agrupados por país, ciudad, dispositivo, navegador, sistema operativo, referente o UTM | analytics:read |
| analytics_top_links | Los enlaces más clicados del periodo, con sus clics y visitantes | analytics:read |
| analytics_timeseries | Clics y visitantes a lo largo del tiempo, por hora, día o semana | analytics:read |
| list_alert_rules | Lista las reglas de alerta con sus canales y su ventana de repetición | alerts:read |
| update_alert_rule | Activa, desactiva o reajusta la ventana de repetición de una regla de alerta | alerts:write |
Los esquemas de argumentos salen de las mismas definiciones que validan la
llamada, así que lo que se le cuenta al asistente sobre una herramienta y lo
que el servidor acepta de verdad no pueden separarse. Las herramientas de solo
lectura vienen anotadas como tales, y eso es lo que permite a un cliente pedir
confirmación antes de las tres herramientas que modifican datos: create_link,
update_link y update_alert_rule, más lo que una versión futura añada a esa
lista.
Cada llamada a una herramienta que modifica algo se escribe en el registro de auditoría del espacio de trabajo, con la clave que la hizo y la nota de que llegó por MCP, así que los cambios de un asistente son tan rastreables como los de una persona.
Permisos y seguridad
La clave es la frontera de permisos. No existe un «modo asistente»
privilegiado: una llamada a una herramienta se ejecuta con los alcances de la
clave, dentro del espacio de trabajo de la clave, bajo el mismo límite de
solicitudes y el mismo aislamiento entre tenants que una llamada REST. Un id de
otro espacio de trabajo responde not_found, exactamente igual que por REST.
Tres costumbres que compensan:
- Dale al asistente su propia clave, nunca la que usa tu integración de producción. Así, revocarla no cuesta nada.
- Empieza en solo lectura.
links:read+analytics:readcubre las preguntas de informes que la gente le hace de verdad a un asistente. Añadelinks:writesolo cuando quieras que se creen enlaces desde el chat. - Rota en cuanto se exponga. Una clave metida en un archivo de
configuración viaja con las copias de seguridad, las pantallas compartidas y
los tickets de soporte. Revócala en el panel en cuanto se filtre; la
siguiente solicitud responde
401.
El límite de solicitudes se comparte con la API REST —por clave, con ventana deslizante de un minuto—, así que un asistente hablador y una tarea en segundo plano con la misma clave compiten por el mismo presupuesto. Otro argumento a favor de una clave aparte. Consulta Límites de solicitudes para las cabeceras y las reglas de reintento.
Requisitos de plan
El endpoint está condicionado por dos funciones del plan:
api_access— el derecho a usar la API, para empezar;assistant_tools— el derecho a usar el catálogo de herramientas y, por tanto, MCP.
Ambas se fijan en el plan que tenga contratado tu espacio de trabajo. Un
espacio cuyo plan no incluya alguna de las dos recibe un 403 con el código
plan_restricted y un mensaje que nombra la capacidad que falta. Si revendes
LinkProfit con tu propia marca, esta es una función que decides incluir en un
plan o vender como mejora.
Resolución de problemas
403 plan_restricted — el plan no incluye assistant_tools (o
api_access). Sube de plan; aquí no hay nada en la clave ni en la
configuración del cliente que lo arregle.
401 unauthorized — falta la cabecera, está mal formada, o la clave es
desconocida, está revocada o ha caducado. Los tres casos son deliberadamente
indistinguibles. Comprueba que el valor sea la clave entera, que lleve el
prefijo Bearer y que el cliente envíe la cabecera de verdad: el saludo con
curl de arriba lo responde en una sola solicitud.
403 forbidden — se ha usado una clave de partner (lpp_live_…). MCP es
una superficie de espacio de trabajo; crea una clave de espacio de trabajo.
429 rate_limited — la clave ha agotado su ventana. La respuesta lleva
Retry-After; los clientes que reintentan de inmediato solo mantienen la clave
bloqueada.
405 en GET — es lo esperado, no un fallo. El servidor no ofrece flujo de
eventos ni mantiene sesión; un cliente que solo hable el transporte basado en
SSE de revisiones antiguas no puede conectarse.
Una herramienta responde con un error en lugar de datos — en una
transcripción de chat, dos cosas distintas se parecen. Los argumentos que no
pasan la validación vuelven como un resultado de herramienta marcado como
error, con los campos problemáticos listados, y el asistente puede corregirse y
reintentar. Un alcance que falta vuelve como error de protocolo con el código
insufficient_scope y el nombre del alcance: eso necesita una clave nueva, no
otro intento.
Lecturas relacionadas
- Autenticación — claves, la lista completa de alcances y la rotación.
- Errores — todos los códigos de error y cómo tratarlos.
- Referencia de la API — los endpoints REST que hay detrás de las herramientas.
- Bibliotecas de cliente — las mismas operaciones desde tu propio código.