Servidores MCP

MCP es un protocolo abierto que permite que un servicio exponga herramientas a un modelo. Conectando un servidor MCP al workspace, todas sus herramientas quedan disponibles en el catálogo para dárselas a cualquier agente.

El flujo normal tiene tres pasos:

POST /v1/tools/mcp/preview        → ves qué expone el servidor
POST /v1/tools/mcp                → lo conectas e instalas las que quieras
POST /v1/agents/{agentId}/tools   → se las das a un agente

Explorar Servidor MCP

Se conecta al servidor, negocia el transporte y lista sus herramientas. No guarda nada — es la llamada previa para decidir qué instalar.

POST https://api.platica.mx/v1/tools/mcp/preview

Cuerpo de la solicitud

{
  "url": "https://mcp.example.com/mcp",
  "auth": {
    "type": "bearer",
    "token": "sk_live_xxx"
  }
}
ParámetroTipoDescripciónRequeridoDefault
urlstringURL del servidor MCP. Debe ser https
authobjetoAutenticación del servidor. Ver abajo{ "type": "none" }
headersobjetoHeaders extra para el handshake, como pares nombre: valor

Sin autenticación

{ "type": "none" }

Bearer token

{ "type": "bearer", "token": "sk_live_xxx" }

API key en un header

{
  "type": "apikey-header",
  "token": "sk_live_xxx",
  "headerName": "X-Api-Key",
  "headerPrefix": ""
}

headerPrefix es el texto que va antes del token; déjalo vacío si el header lleva sólo el valor.

OAuth 2

{ "type": "oauth2", "scope": "read write" }

Los campos clientId y clientSecret son opcionales: si el servidor soporta registro dinámico de cliente, Platica lo hace solo.

Respuesta

{
  "requiresOAuth": false,
  "serverInfo": {
    "name": "linear-mcp",
    "version": "1.4.0",
    "protocolVersion": "2025-06-18"
  },
  "transport": "streamable-http",
  "count": 2,
  "tools": [
    {
      "name": "create_issue",
      "description": "Create a new issue in Linear",
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": { "type": "string" },
          "teamId": { "type": "string" }
        },
        "required": ["title", "teamId"]
      }
    },
    {
      "name": "search_issues",
      "description": "Search issues by text query",
      "inputSchema": {
        "type": "object",
        "properties": { "query": { "type": "string" } }
      }
    }
  ]
}

Los name de esta respuesta son los nombres originales del servidor, y son los que se pasan como tools al conectar y al sincronizar.

Con auth.type: "oauth2" la respuesta llega con requiresOAuth: true y tools: []: el descubrimiento sólo es posible después de autorizar.

Errores

StatusCausa
400La URL no es válida o falta un campo de auth
502No se pudo conectar al servidor MCP, o el servidor falló al listar sus herramientas

Listar Servidores MCP

GET https://api.platica.mx/v1/tools/mcp

Respuesta

{
  "count": 1,
  "servers": [
    {
      "id": "QZPHpckDPC58JIVLQA3Z",
      "name": "Linear",
      "description": "Gestión de issues del equipo",
      "url": "https://mcp.linear.app/mcp",
      "transport": "streamable-http",
      "slug": "a1b2c3",
      "authType": "bearer",
      "status": "connected",
      "lastError": null,
      "serverInfo": { "name": "linear-mcp", "version": "1.4.0" },
      "discoveredToolsCount": 12,
      "installedToolsCount": 2,
      "customHeaderNames": [],
      "lastSyncAt": "2026-07-14T18:02:11.410Z",
      "createdAt": "2026-07-14T18:02:11.410Z",
      "updatedAt": "2026-07-14T18:02:11.410Z"
    }
  ]
}
CampoTipoDescripción
statusstringconnected, pending_auth (falta completar OAuth), needs_reauth (el token expiró) o error.
lastErrorstring | nullMotivo del último fallo cuando status es error.
slugstring | nullSufijo que Platica añade al nombre de cada herramienta para evitar choques entre servidores.
discoveredToolsCountnumberHerramientas que expone el servidor.
installedToolsCountnumberCuántas de ellas están en el catálogo del workspace.
customHeaderNamesstring[]Nombres de los headers personalizados. Los valores nunca se devuelven.

Conectar Servidor MCP

Guarda el servidor e instala sus herramientas en el catálogo del workspace.

POST https://api.platica.mx/v1/tools/mcp

Cuerpo de la solicitud

{
  "name": "Linear",
  "description": "Gestión de issues del equipo",
  "url": "https://mcp.linear.app/mcp",
  "auth": {
    "type": "bearer",
    "token": "lin_api_xxx"
  },
  "tools": ["create_issue", "search_issues"]
}
ParámetroTipoDescripciónRequeridoDefault
namestringNombre visible del servidor dentro de Platica (≤ 120 caracteres)
urlstringURL del servidor MCP
descriptionstringNota interna (≤ 500 caracteres)""
authobjetoIgual que en explorar { "type": "none" }
headersobjetoHeaders extra para el handshake
toolsstring[]Nombres originales de las herramientas a instalartodas

Si omites tools, Platica consulta al servidor y instala todo lo que exponga.

Respuesta

{
  "status": "success",
  "message": "MCP server connected successfully",
  "data": {
    "mcpId": "QZPHpckDPC58JIVLQA3Z",
    "slug": "a1b2c3",
    "installedToolIds": ["8fK2mQpLxT4vNbRc", "Lm9RtWq3ZxYvBn2P"],
    "installedToolNames": ["create_issue", "search_issues"],
    "requiresOAuth": false
  }
}

Los installedToolIds son los toolId del catálogo: úsalos directamente en POST /v1/agents/{agentId}/tools .

Errores

StatusCausa
400Falta name o url, o la URL no es válida
502No se pudo conectar al servidor MCP

Obtener Servidor MCP

Igual que un elemento de la lista, más el detalle de las herramientas que expone y cuáles están instaladas.

GET https://api.platica.mx/v1/tools/mcp/{mcpId}

Parámetros de URL

ParámetroTipoDescripciónRequerido
mcpIdstringIdentificador del servidor MCP

Respuesta

{
  "id": "QZPHpckDPC58JIVLQA3Z",
  "name": "Linear",
  "url": "https://mcp.linear.app/mcp",
  "transport": "streamable-http",
  "slug": "a1b2c3",
  "authType": "bearer",
  "status": "connected",
  "lastError": null,
  "discoveredToolsCount": 2,
  "installedToolsCount": 1,
  "customHeaderNames": [],
  "lastSyncAt": "2026-07-14T18:02:11.410Z",
  "discoveredTools": [
    {
      "name": "create_issue",
      "description": "Create a new issue in Linear",
      "inputSchema": { "type": "object", "properties": {} },
      "installed": true,
      "lastSeenAt": "2026-07-14T18:02:11.410Z"
    },
    {
      "name": "search_issues",
      "description": "Search issues by text query",
      "inputSchema": { "type": "object", "properties": {} },
      "installed": false,
      "lastSeenAt": "2026-07-14T18:02:11.410Z"
    }
  ],
  "installedTools": [
    {
      "id": "8fK2mQpLxT4vNbRc",
      "name": "mcp_create_issue_a1b2c3",
      "mcpToolName": "create_issue"
    }
  ]
}

discoveredTools es lo que el servidor ofrece; installedTools es lo que existe en el catálogo del workspace, con el toolId de cada uno.

Errores

StatusCausa
404El servidor MCP no existe en el workspace

Iniciar OAuth

Inicia o reinicia la autorización de un servidor creado con auth.type: "oauth2".

POST https://api.platica.mx/v1/tools/mcp/{mcpId}/oauth/start

Cuerpo de la solicitud

{
  "scope": "read write"
}

scope, clientId y clientSecret son opcionales. Normalmente se reutiliza la configuración guardada al conectar el servidor.

Respuesta

{
  "status": "success",
  "message": "MCP OAuth authorization started",
  "data": {
    "mcpId": "QZPHpckDPC58JIVLQA3Z",
    "authorizeUrl": "https://provider.example.com/oauth/authorize?...",
    "state": "workspace.mcp.nonce"
  }
}

Abre authorizeUrl en un navegador. El callback guarda los tokens cifrados; después usa Refrescar Servidor MCP .

Errores

StatusCausa
400El servidor no usa OAuth o necesita un clientId propio
404El servidor MCP no existe
502No se pudo descubrir o contactar al servidor de autorización

Refrescar Servidor MCP

Vuelve a preguntarle al servidor qué herramientas expone y actualiza los esquemas de las que ya están instaladas. Úsalo cuando el servidor haya cambiado sus herramientas, o después de completar un flujo OAuth.

POST https://api.platica.mx/v1/tools/mcp/{mcpId}/refresh

Parámetros de URL

ParámetroTipoDescripciónRequerido
mcpIdstringIdentificador del servidor MCP

Respuesta

{
  "status": "success",
  "message": "MCP server refreshed successfully",
  "data": {
    "id": "QZPHpckDPC58JIVLQA3Z",
    "name": "Linear",
    "status": "connected",
    "discoveredToolsCount": 14,
    "installedToolsCount": 2,
    "discoveredTools": [],
    "installedTools": []
  }
}

data tiene la misma forma que obtener servidor , ya con los datos actualizados.

Refrescar no instala herramientas nuevas: las que aparezcan por primera vez llegan con installed: false hasta que las agregues con /tools/sync.

Errores

StatusCausa
401El servidor usa OAuth y falta completar la autorización
404El servidor MCP no existe en el workspace
502No se pudo conectar al servidor. Su status queda en error con el motivo en lastError

Sincronizar Herramientas Instaladas

Define exactamente qué herramientas del servidor quedan instaladas en el catálogo.

POST https://api.platica.mx/v1/tools/mcp/{mcpId}/tools/sync

Parámetros de URL

ParámetroTipoDescripciónRequerido
mcpIdstringIdentificador del servidor MCP

Cuerpo de la solicitud

{
  "tools": ["create_issue", "search_issues", "list_teams"]
}
ParámetroTipoDescripciónRequerido
toolsstring[]Lista completa de nombres originales que deben quedar instalados

Respuesta

{
  "status": "success",
  "message": "MCP tools updated successfully",
  "data": {
    "mcpId": "QZPHpckDPC58JIVLQA3Z",
    "installedCount": 3,
    "installedToolIds": ["tool-1", "tool-2", "tool-3"],
    "installedToolNames": ["create_issue", "search_issues", "list_teams"],
    "removedToolCount": 1,
    "removedAgentConnections": 2
  }
}

Los nombres que no aparezcan entre los descubiertos se ignoran en silencio: si un servidor dejó de exponer una herramienta, no se puede instalar. Refresca primero para ver la lista vigente.

Errores

StatusCausa
404El servidor MCP no existe en el workspace

Eliminar Servidor MCP

DELETE https://api.platica.mx/v1/tools/mcp/{mcpId}

Parámetros de URL

ParámetroTipoDescripciónRequerido
mcpIdstringIdentificador del servidor MCP

Respuesta

{
  "status": "success",
  "message": "MCP server deleted successfully",
  "data": {
    "mcpId": "QZPHpckDPC58JIVLQA3Z",
    "removedTools": 2,
    "removedAgentConnections": 3
  }
}

Se elimina el servidor, sus credenciales, todas sus herramientas del catálogo y las conexiones que esas herramientas tuvieran con cualquier agente. No es reversible.

Errores

StatusCausa
404El servidor MCP no existe en el workspace