Vamos a construir un chatbot basado en CLI para comprender mejor cómo funcionan juntos los clientes y servidores MCP. Este proyecto práctico te dará experiencia directa con ambos lados de la arquitectura MCP.
Cuando la configuración esté lista, deberías poder hacer dos cosas: decir qué hace el cliente y qué hace el servidor, y distinguir si una respuesta llegó a través de una herramienta o directamente del modelo.
Qué vamos a construir
Nuestro chatbot permitirá a los usuarios interactuar con una colección de documentos a través de una interfaz de línea de comandos. El sistema consta de dos componentes principales:
- Un cliente MCP que gestiona las interacciones del usuario
- Un servidor MCP personalizado que gestiona las operaciones con documentos

El servidor proporcionará dos herramientas esenciales: una para leer el contenido de los documentos y otra para actualizarlos. Todos los documentos se almacenarán en memoria por simplicidad: no se requiere base de datos.
Nota importante sobre la arquitectura
En proyectos del mundo real, normalmente implementas un cliente MCP o un servidor MCP, no ambos. Podrías crear:
- Un servidor MCP para exponer tu servicio a otros desarrolladores
- Un cliente MCP para conectarte a servidores MCP existentes

Estamos construyendo ambos componentes en este proyecto únicamente con fines educativos, para entender cómo se comunican y trabajan juntos.
Configuración del proyecto
Descarga cli_project.zip desde la sección de Descargas al final de esta lección y extráelo en tu directorio de desarrollo preferido. Abre tu editor de código en la carpeta del proyecto.
El proyecto incluye un archivo README completo con instrucciones de configuración. Sigue estos pasos:
- Agrega tu clave de API de Anthropic al archivo
.env - Instala las dependencias usando UV (recomendado) o pip
- Ejecuta la aplicación inicial para verificar que todo funcione
Ejecutar la aplicación
Navega a tu directorio de proyecto en la terminal. Verás los archivos principales del proyecto, incluyendo main.py, mcp_client.py y mcp_server.py.
Para iniciar la aplicación, usa uno de estos comandos:
# Si usas UV (recomendado)
uv run main.py
# Si usas Python estándar
python main.pyCuando la aplicación se inicie correctamente, verás un indicador de chat.
Verifica tú mismo la línea base. Escribe una pregunta que puedas verificar a simple vista, como "¿cuánto es 1+1?". No te conformes con que aparezca una respuesta: confirma que la respuesta sea realmente 2. Una respuesta correcta demuestra que tu clave de API, las dependencias y el bucle de chat funcionan.
Luego escribe una segunda pregunta, algo como "¿qué dicen los documentos?". Sea lo que sea que regrese, no puede haber venido de las herramientas de documentos, porque aún no las has construido. La respuesta es el modelo respondiendo por su cuenta. Observa qué componente será responsable de ese trabajo una vez que exista: el servidor gestiona las operaciones con documentos, y el cliente gestiona tu lado de la conversación.
El hábito detrás de esta verificación: ajusta cuán cuidadosamente verificas al costo de equivocarte. Una configuración rota aquí te cuesta cada lección posterior construida sobre ella; verificar cuesta dos preguntas.
Una verificación que vale la pena conservar
El comportamiento que debes llevar más allá de este proyecto: cada vez que agregues una nueva capa a un proyecto de API, ya sea una herramienta, una fuente de datos o un servidor MCP, hazle al sistema en ejecución una pregunta cuya respuesta ya conozcas antes de construir la siguiente capa. Una línea base que has verificado es la única línea base contra la que puedes depurar.
Con la configuración básica completa, estamos listos para comenzar a implementar funciones de MCP y explorar cómo los clientes y servidores se comunican a través del Model Context Protocol.