Este repositorio contiene una implementación en Python del Protocolo de Contexto de Modelo (MCP), que muestra cómo crear una aplicación tanto de servidor como de cliente que se comuniquen usando el estándar MCP.
La implementación de MCP consta de dos componentes principales:
-
Servidor MCP (
server.py) - Un servidor que expone:- Herramientas: Funciones que pueden ser llamadas de forma remota
- Recursos: Datos que pueden ser recuperados
- Prompts: Plantillas para generar prompts para modelos de lenguaje
-
Cliente MCP (
client.py) - Una aplicación cliente que se conecta al servidor y utiliza sus funcionalidades
Esta implementación demuestra varias características clave de MCP:
completion- Genera completados de texto a partir de modelos de IA (simulado)add- Calculadora simple que suma dos números
models://- Devuelve información sobre los modelos de IA disponiblesgreeting://{name}- Devuelve un saludo personalizado para un nombre dado
review_code- Genera un prompt para revisar código
Para usar esta implementación de MCP, instala los paquetes requeridos:
pip install mcp-server mcp-clientEjecuta el servidor en una ventana de terminal:
python server.pyEl servidor también puede ejecutarse en modo desarrollo usando la CLI de MCP:
mcp dev server.pyO instalarse en Claude Desktop (si está disponible):
mcp install server.pyEjecuta el cliente en otra ventana de terminal:
python client.pyEsto conectará con el servidor y demostrará todas las funcionalidades disponibles.
El cliente (client.py) demuestra todas las capacidades de MCP:
python client.pyEsto conectará con el servidor y utilizará todas las funciones, incluyendo herramientas, recursos y prompts. La salida mostrará:
- Resultado de la herramienta calculadora (5 + 7 = 12)
- Respuesta de la herramienta completion a "¿Cuál es el sentido de la vida?"
- Lista de modelos de IA disponibles
- Saludo personalizado para "MCP Explorer"
- Plantilla de prompt para revisión de código
El servidor está implementado usando la API FastMCP, que provee abstracciones de alto nivel para definir servicios MCP. Aquí hay un ejemplo simplificado de cómo se definen las herramientas:
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers together
Args:
a: First number
b: Second number
Returns:
The sum of the two numbers
"""
logger.info(f"Adding {a} and {b}")
return a + bEl cliente usa la librería cliente MCP para conectarse y llamar al servidor:
async with stdio_client(server_params) as (reader, writer):
async with ClientSession(reader, writer) as session:
await session.initialize()
result = await session.call_tool("add", arguments={"a": 5, "b": 7})Para más información sobre MCP, visita: https://modelcontextprotocol.io/
Aviso legal:
Este documento ha sido traducido utilizando el servicio de traducción automática Co-op Translator. Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda la traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas derivadas del uso de esta traducción.