El cliente MCP funciona como el puente de comunicación entre tu servidor y los servidores MCP. Es tu punto de acceso a todas las herramientas que proporciona un servidor MCP, gestionando el intercambio de mensajes y los detalles del protocolo para que tu aplicación no tenga que hacerlo.
Comunicación agnóstica al transporte
Una de las principales fortalezas de MCP es ser agnóstico al transporte, una forma elegante de decir que el cliente y el servidor pueden comunicarse a través de diferentes protocolos según tu configuración.

La configuración más común ejecuta tanto el cliente como el servidor MCP en la misma máquina, comunicándose a través de entrada/salida estándar. Pero también puedes conectarlos mediante:
- HTTP
- WebSockets
- Varios otros protocolos de red

Tipos de mensajes MCP
Una vez conectados, el cliente y el servidor intercambian tipos de mensajes específicos definidos en la especificación de MCP. Los principales con los que trabajarás son:

ListToolsRequest/ListToolsResult: El cliente le pregunta al servidor "¿qué herramientas proporcionas?" y recibe una lista de herramientas disponibles.

CallToolRequest/CallToolResult: El cliente le pide al servidor que ejecute una herramienta específica con los argumentos dados, y luego recibe los resultados.
Cómo funciona todo en conjunto
Aquí tienes un ejemplo completo que muestra cómo fluye la consulta de un usuario a través de todo el sistema, desde tu servidor, pasando por el cliente MCP, hasta servicios externos como GitHub, y de vuelta a Claude.
Supongamos que un usuario pregunta "¿Qué repositorios tengo?" Aquí está el flujo paso a paso:
- Consulta del usuario: El usuario envía su pregunta a tu servidor
- Descubrimiento de herramientas: Tu servidor necesita saber qué herramientas están disponibles para enviar a Claude
- Intercambio de lista de herramientas: Tu servidor le pide al cliente MCP las herramientas disponibles
- Comunicación MCP: El cliente MCP envía una
ListToolsRequestal servidor MCP y recibe unListToolsResult - Solicitud a Claude: Tu servidor envía la consulta del usuario junto con las herramientas disponibles a Claude
- Decisión de uso de herramientas: Claude decide que necesita llamar a una herramienta para responder la pregunta
- Solicitud de ejecución de herramienta: Tu servidor le pide al cliente MCP que ejecute la herramienta que Claude especificó
- Llamada a la API externa: El cliente MCP envía una
CallToolRequestal servidor MCP, que realiza la llamada real a la API de GitHub - Los resultados regresan: GitHub responde con los datos del repositorio, que regresan a través del servidor MCP como un
CallToolResult - Resultado de la herramienta a Claude: Tu servidor envía los resultados de la herramienta de vuelta a Claude
- Respuesta final: Claude formula una respuesta final utilizando los datos del repositorio
- El usuario obtiene la respuesta: Tu servidor entrega la respuesta de Claude de vuelta al usuario

Sí, este flujo involucra muchos pasos, pero cada componente tiene una responsabilidad clara. El cliente MCP abstrae la complejidad de la comunicación con el servidor, permitiéndote enfocarte en la lógica de tu aplicación mientras sigues teniendo acceso a potentes herramientas externas y fuentes de datos.
Comprender este flujo es crucial porque verás todas estas piezas al construir tus propios clientes y servidores MCP en las próximas secciones.