Cómo MCP proporciona a los modelos de IA una forma estandarizada de conectarse a herramientas externas, fuentes de datos y servicios — transformando un chatbot en un agente capaz y fundamentado.
tools/list, resources/list y prompts/list. Los esquemas de capacidades del servidor se inyectan en el prompt de sistema del LLM. El LLM nunca llama herramientas directamente — emite un bloque tool_use estructurado que el host intercepta.
tools/call al servidor. El servidor ejecuta la lógica en aislamiento y devuelve un resultado content. Aquí se puede insertar aprobación humana antes de la ejecución.
tool_result. El LLM retoma la generación con datos reales y frescos en su ventana de contexto. Se pueden encadenar múltiples herramientas secuencial o en paralelo dentro de un mismo turno.
Funciones ejecutables que el LLM puede invocar para realizar acciones o recuperar datos dinámicos. Cada herramienta tiene un nombre, descripción y un esquema JSON para sus parámetros. El LLM lee el esquema y decide cuándo y cómo llamarla.
Datos de solo lectura que el host puede cargar en el contexto — archivos, registros, configuraciones. A diferencia de las herramientas, los recursos son obtenidos por el host a su discreción, no llamados por el LLM. Piénsalos como inyección de contexto estructurado.
Plantillas de prompt reutilizables con argumentos opcionales, expuestos como comandos slash o iniciadores de flujo de trabajo. Los autores del servidor empaquetan instrucciones de antemano para guiar al LLM hacia tareas específicas sin que el usuario las escriba cada vez.
Cada aplicación de IA construye sus propias integraciones a medida. Un asistente de código tiene código Git personalizado; un bot de soporte tiene código Zendesk personalizado — nada de eso es transferible. El contexto está desactualizado: el LLM solo puede saber lo que se incorporó en el entrenamiento o se pegó manualmente en el prompt. Añadir una nueva fuente de datos significa reescribir la app.
Un servidor MCP se conecta a cualquier host compatible con MCP sin modificaciones. Un servidor de sistema de archivos funciona en Claude Desktop, Claude Code y tu app personalizada por igual. El LLM obtiene acceso en vivo a datos del mundo real bajo demanda, convirtiendo completaciones estáticas en respuestas fundamentadas, actualizadas y accionables.
Cuando el host se lanza, se conecta a cada servidor MCP configurado y envía un handshake initialize. Luego llama a tools/list, resources/list y prompts/list para preguntar "¿qué puedes hacer?" El servidor responde con esquemas JSON de todo lo que expone. Estos esquemas se inyectan automáticamente en el prompt de sistema del LLM, de modo que conoce todas las herramientas disponibles y cómo llamarlas.
El LLM no ejecuta nada directamente. Cuando decide que necesita una herramienta, emite un bloque tool_use en su respuesta — con el nombre de la herramienta, argumentos en JSON y un ID de llamada único. El host intercepta esto antes de mostrar cualquier resultado al usuario. Este punto de interceptación es donde se puede insertar la aprobación humana: el host puede pausar y pedir al usuario que confirme antes de ejecutar la herramienta.
El cliente MCP envía un mensaje JSON-RPC tools/call al servidor con el nombre de la herramienta y sus argumentos. El servidor ejecuta — consultando una base de datos, llamando a una API externa, leyendo un archivo, ejecutando un subproceso — y devuelve un bloque content con texto, datos estructurados o incluso imágenes. Esto se ejecuta dentro del proceso aislado del servidor, completamente separado del LLM y el host. El servidor no tiene acceso al historial de la conversación.
El resultado de la herramienta se añade al hilo de la conversación como mensaje tool_result. El LLM retoma la generación con datos frescos y del mundo real en su ventana de contexto. Puede encadenar llamadas adicionales a herramientas — buscar, luego leer, luego resumir — o sintetizar una respuesta final que cite directamente los datos recuperados. El resultado está fundamentado en información en vivo, no en suposiciones del momento del entrenamiento.