SDK de Python para MCP
Implementación en Python del Protocolo de Contexto de Modelo (MCP)
Tabla de contenido
- SDK de Python para MCP
Descripción general
El Protocolo de Contexto de Modelo permite que las aplicaciones proporcionen contexto para los LLM de forma estandarizada, separando la necesidad de proporcionar contexto de la interacción real con el LLM. Este SDK de Python implementa la especificación MCP completa, lo que facilita:
- Cree clientes MCP que puedan conectarse a cualquier servidor MCP
- Cree servidores MCP que expongan recursos, indicaciones y herramientas
- Utilice transportes estándar como stdio y SSE
- Manejar todos los mensajes del protocolo MCP y eventos del ciclo de vida
Instalación
Cómo agregar MCP a su proyecto de Python
Recomendamos utilizar uv para administrar sus proyectos de Python.
Si aún no ha creado un proyecto administrado por uv, cree uno:
Luego agregue MCP a las dependencias de su proyecto:
Alternativamente, para proyectos que utilizan pip para dependencias:
Ejecución de las herramientas de desarrollo de MCP independientes
Para ejecutar el comando mcp con uv:
Inicio rápido
Creemos un servidor MCP simple que exponga una herramienta de calculadora y algunos datos:
Puede instalar este servidor en Claude Desktop e interactuar con él de inmediato ejecutando:
Alternativamente, puedes probarlo con el Inspector MCP:
¿Qué es MCP?
El Protocolo de Contexto de Modelo (MCP) permite crear servidores que exponen datos y funcionalidades a aplicaciones LLM de forma segura y estandarizada. Se trata de una API web, pero diseñada específicamente para interacciones LLM. Los servidores MCP pueden:
- Exponer datos a través de recursos (piense en ellos como puntos finales GET; se utilizan para cargar información en el contexto del LLM)
- Proporcionar funcionalidad a través de herramientas (algo así como puntos finales POST; se utilizan para ejecutar código o producir un efecto secundario)
- Definir patrones de interacción a través de Prompts (plantillas reutilizables para interacciones LLM)
- ¡Y más!
Conceptos básicos
Servidor
El servidor FastMCP es la interfaz principal del protocolo MCP. Se encarga de la gestión de conexiones, la conformidad con el protocolo y el enrutamiento de mensajes.
Recursos
Los recursos son la forma de exponer los datos a los LLM. Son similares a los puntos finales GET de una API REST: proporcionan datos, pero no deberían realizar cálculos significativos ni tener efectos secundarios.
Herramientas
Las herramientas permiten a los LLM realizar acciones a través de su servidor. A diferencia de los recursos, se espera que las herramientas realicen cálculos y tengan efectos secundarios:
Indicaciones
Las indicaciones son plantillas reutilizables que ayudan a los LLM a interactuar con su servidor de manera efectiva:
Imágenes
FastMCP proporciona una clase Image
que maneja automáticamente los datos de imagen:
Contexto
El objeto Contexto brinda a sus herramientas y recursos acceso a las capacidades de MCP:
Ejecución de su servidor
Modo de desarrollo
La forma más rápida de probar y depurar su servidor es con el Inspector MCP:
Integración de escritorio de Claude
Una vez que su servidor esté listo, instálelo en Claude Desktop:
Ejecución directa
Para escenarios avanzados como implementaciones personalizadas:
Ejecútalo con:
Montaje en un servidor ASGI existente
Puede montar el servidor SSE en un servidor ASGI existente mediante el método sse_app
. Esto le permite integrar el servidor SSE con otras aplicaciones ASGI.
Para obtener más información sobre el montaje de aplicaciones en Starlette, consulte la documentación de Starlette .
Ejemplos
Servidor Echo
Un servidor sencillo que muestra recursos, herramientas y sugerencias:
Explorador de SQLite
Un ejemplo más complejo que muestra la integración de bases de datos:
Uso avanzado
Servidor de bajo nivel
Para mayor control, puede usar directamente la implementación del servidor de bajo nivel. Esto le brinda acceso completo al protocolo y le permite personalizar cada aspecto de su servidor, incluyendo la gestión del ciclo de vida mediante la API de vida útil.
La API de vida útil proporciona:
- Una forma de inicializar recursos cuando se inicia el servidor y limpiarlos cuando se detiene
- Acceso a recursos inicializados a través del contexto de solicitud en los controladores
- Transferencia de contexto de tipo seguro entre controladores de vida útil y de solicitudes
Escritura de clientes MCP
El SDK proporciona una interfaz de cliente de alto nivel para conectarse a servidores MCP:
Primitivas MCP
El protocolo MCP define tres primitivos fundamentales que los servidores pueden implementar:
Primitivo | Control | Descripción | Ejemplo de uso |
---|---|---|---|
Indicaciones | Controlado por el usuario | Plantillas interactivas invocadas por elección del usuario | Comandos de barra, opciones de menú |
Recursos | Controlado por aplicación | Datos contextuales gestionados por la aplicación cliente | Contenido del archivo, respuestas de la API |
Herramientas | Controlado por modelos | Funciones expuestas al LLM para tomar acciones | Llamadas API, actualizaciones de datos |
Capacidades del servidor
Los servidores MCP declaran capacidades durante la inicialización:
Capacidad | Bandera de característica | Descripción |
---|---|---|
prompts | listChanged | Gestión de plantillas de indicaciones |
resources | listChanged subscribe | Exposición y actualizaciones de recursos |
tools | listChanged | Descubrimiento y ejecución de herramientas |
logging | - | Configuración del registro del servidor |
completion | - | Sugerencias para completar argumentos |
Documentación
- Documentación del Protocolo de Contexto del Modelo
- Especificación del protocolo de contexto del modelo
- Servidores con soporte oficial
Contribuyendo
Nos apasiona apoyar a colaboradores de todos los niveles de experiencia y nos encantaría que participaras en el proyecto. Consulta la guía de colaboración para empezar.
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Una implementación en Python del Protocolo de Contexto de Modelo que permite que las aplicaciones proporcionen un contexto estandarizado para los LLM, lo que posibilita la creación de servidores que exponen datos y funcionalidades a las aplicaciones LLM a través de recursos, herramientas y avisos.
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that gives LLMs the ability to interact with Ethereum networks, manage wallets, query blockchain data, and execute smart contract operations through a standardized interface.Last updated -313232TypeScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server that extracts and analyzes Python code structures, focusing on import/export relationships between files to help LLMs understand code context.Last updated -4PythonMIT License
- AsecurityFlicenseAqualityA Python server implementing the Model Context Protocol to provide customizable prompt templates, resources, and tools that enhance LLM interactions in the continue.dev environment.Last updated -2Python
- AsecurityFlicenseAqualityA Model Context Protocol server that allows LLMs to interact with Python environments, execute code, and manage files within a specified working directory.Last updated -937Python