Saltar al contenido principal

Herramientas y servidores MCP

Conecte Rikoo a sus sistemas mediante el Model Context Protocol, autenticado con un secreto de la bóveda o con OAuth 2.1, y restringido herramienta por herramienta.

Las herramientas convierten a un agente que responde en un agente que actúa. Rikoo habla el Model Context Protocol: un servidor MCP accesible por HTTP, suyo o de un proveedor, se declara una vez en un proyecto y luego se concede a los agentes que lo necesitan.

Declarar un servidor​

En la pantalla MCP Servers, Add a server (añadir un servidor) pide su dirección, su transporte y su autenticación, y Browse the library (explorar la biblioteca) parte de una lista de servidores conocidos. Test connection (probar la conexión) consulta el servidor y rellena la lista de las herramientas que expone. Esa lista solo se actualiza cuando usted lo pide, y cada descubrimiento registra lo que se añadió, se retiró o cambió desde el anterior.

TransporteCuándo usarlo
Streamable HTTPEl valor por defecto y el transporte de la especificación MCP actual (endpoint /mcp).
Legacy SSEUn servidor que aún sigue la especificación del 2024-11-05 (endpoint /sse).
Bare JSON-RPCUn servidor tolerante que responde en JSON-RPC sin el protocolo de enlace de MCP.

No se puede declarar un servidor stdio de terceros: ejecutarlo supondría dejar que el worker lance un binario proporcionado por un inquilino.

Los servidores declarados, su transporte y su estado de conexión. Cada uno se concede a un agente, y el acceso puede restringirse herramienta por herramienta.
The MCP Servers screen of the Studio: ten connected servers, each streamable and reporting its connection state.

Autenticación​

MétodoCómo funcionaCuándo usarlo
NingunoNo se envía ninguna credencialUn servidor de su red que no autentica a quien lo llama
Secreto de la bóvedaUn token portador o una clave de API guardado en la bóveda de secretos y adjuntado en cada llamadaUn servidor interno, o un proveedor que emite tokens de larga duración
OAuth 2.1Código de autorización con PKCE (solo S256), o credenciales de cliente cuando el servidor las ofrece. Los tokens se sellan con el mismo sobre que la bóveda, se guardan con el servidor y se renuevan automáticamenteServidores alojados que solo aceptan OAuth, como Notion, Linear o GitHub

Con OAuth, Rikoo descubre el servidor de autorización a partir de los metadatos que publica el servidor MCP y registra un cliente automáticamente, salvo que usted introduzca un client_id registrado previamente. Es el worker quien intercambia el código por tokens, nunca el servidor de API.

Restringir las herramientas​

Dos niveles restringen lo que puede ejecutarse:

  • En el servidor, para todo el proyecto. Las herramientas marcadas en la página del servidor son el techo del proyecto. Con todas marcadas no hay restricción, tampoco para las herramientas que se descubran más tarde.
  • En el acceso del agente. Desmarcar una herramienta la prohíbe a ese agente. En cuanto se desmarca una, el acceso lleva una lista explícita: una herramienta que el proveedor añada más tarde queda bloqueada para ese agente hasta que alguien la autorice.

Un acceso sin restricción da al agente todas las herramientas que el proyecto permite en ese servidor.

En la edición Enterprise, una herramienta también puede configurarse para exigir una aprobación humana: la ejecución espera la decisión antes de que salga nada. Consulte Licencia Enterprise.

La exposición no es una frontera

Ocultar una herramienta al modelo es una decisión de usabilidad, no un control de seguridad. El worker vuelve a comprobar la restricción del agente en el momento de abrir la llamada: un modelo que inventa el nombre de una herramienta que no se le concedió recibe un rechazo, no una ejecución.

Salud y salidas voluminosas​

Cada servidor tiene una sonda de salud (Health probe), cuya cadencia se ajusta por servidor o se desactiva, y el Studio muestra su último contacto correcto. Tras 3 fallos consecutivos, un disyuntor deja de llamar al servidor durante 1 minuto, y más tiempo (hasta 10 minutos) si sigue caído: un servidor muerto no cuesta un tiempo de espera en cada llamada. Los tiempos de espera de llamada y de conexión se ajustan por servidor.

Una salida de herramienta voluminosa no llena el contexto del modelo. Por encima de un umbral de tamaño, la salida completa se traslada al almacenamiento de objetos, y el modelo recibe una vista previa con la referencia que necesita para leer el resto (read_tool_result).

Imágenes y otros medios​

Algunos servidores devuelven imágenes o audio: una captura de pantalla, un gráfico, una grabación. Por defecto, esos archivos no se almacenan ni se muestran. El interruptor Allow media (images, audio) from this server (permitir medios de este servidor) se ajusta en el acceso del agente, servidor por servidor. Una vez activado, cada archivo pasa por la misma política de admisión que un adjunto (tipo comprobado sobre los bytes, límites de tamaño), se almacena y se muestra en las conversaciones del agente. El modelo nunca recibe el archivo, solo una referencia a él. El ajuste queda fijado al crear una ejecución.

Los servidores integrados​

Cada proyecto incluye 2 servidores que no requieren instalación ni dirección:

  • Espacio de trabajo: listar, leer (por páginas) y escribir archivos, ejecutar Python (run_python) o un comando (run_command). No tiene acceso a la red.
  • Navegador: navegar, leer una página, rellenar un formulario. Su tráfico sale por un proxy de salida dedicado, que aplica la misma protección anti-SSRF que el resto de la plataforma.

Están desactivados por defecto. Un agente los obtiene mediante un acceso, como cualquier servidor MCP, y las restricciones de herramientas, el disyuntor, la sonda de salud y la traza se les aplican sin cambios.

El espacio de trabajo pertenece a la conversación, no a una sola ejecución. Los archivos que adjunta el usuario aparecen en uploads/, que el agente puede leer pero no modificar; el agente trabaja en work/ y deja en outputs/ lo que devuelve al usuario. Lo que escribe en ambos se guarda en el almacenamiento de objetos como adjuntos de la conversación, al final de cada ejecución. Cada espacio de trabajo se ejecuta con su propio usuario sin privilegios, en un directorio que ninguna otra conversación puede leer, con límites de tiempo, de disco y de procesos.

El espacio de trabajo exige además un usuario identificado por la superficie de la que viene el mensaje: un visitante anónimo del widget nunca lo obtiene. En el widget está cerrado por defecto, y el operador lo abre de forma deliberada poniendo WORKSPACE_SURFACE_WIDGET en true. En la API, Slack y el Studio está abierto.

Nada de lo que devuelve una herramienta es de fiar

Una página web, un archivo, la respuesta de API de un proveedor: nada de eso es una instrucción. La salida de las herramientas HTTP, MCP y de búsqueda de conocimiento, así como las descripciones de las herramientas MCP de terceros, se enmarcan como datos no confiables antes de llegar al modelo, en un solo lugar para toda la plataforma. El enmarcado reduce el riesgo de inyección indirecta de prompt sin eliminarlo; por eso un agente servido al público pierde sus capacidades más arriesgadas (consulte Guardarraíles).