Integrations
Uses FastAPI as the foundation for the server implementation, providing high-performance API endpoints and asynchronous request handling for the MCP protocol.
Provides an example implementation for integrating OpenAI models within the handle_sample method, allowing developers to use GPT-4 for processing prompts and generating responses.
Servidor MCP
Descripción general del proyecto
Basado en FastAPI y MCP (Protocolo de Contexto de Modelo), este proyecto permite la interacción contextual estandarizada entre modelos de IA y entornos de desarrollo. Mejora la escalabilidad y el mantenimiento de las aplicaciones de IA al simplificar la implementación de modelos, proporcionar endpoints API eficientes y garantizar la consistencia en la entrada y salida de los modelos, facilitando a los desarrolladores la integración y gestión de tareas de IA.
MCP (Protocolo de Contexto de Modelo) es un protocolo unificado para la interacción contextual entre modelos de IA y entornos de desarrollo. Este proyecto proporciona una implementación de servidor MCP basada en Python que admite funciones básicas del protocolo MCP, como la inicialización, el muestreo y la gestión de sesiones.
Características
- JSON-RPC 2.0 : Comunicación de solicitud-respuesta basada en el protocolo estándar JSON-RPC 2.0
- Conexión SSE : Compatibilidad con conexiones de eventos enviados por el servidor para notificaciones en tiempo real
- Diseño modular : arquitectura modular para una fácil ampliación y personalización
- Procesamiento asincrónico : servicio de alto rendimiento que utiliza FastAPI y E/S asincrónica
- Cliente completo : incluye una implementación de cliente de prueba completa
Estructura del proyecto
Instalación
- Clonar el repositorio:
- Instalar dependencias:
Uso
Iniciando el servidor
De forma predeterminada, el servidor se iniciará en 127.0.0.1:12000
. Puede personalizar el host y el puerto mediante variables de entorno:
Ejecución del cliente
Ejecute el cliente en otra terminal:
Si el servidor no se ejecuta en la dirección predeterminada, puede configurar una variable de entorno:
Puntos finales de API
El servidor proporciona los siguientes puntos finales de API:
- Ruta raíz (
/
): proporciona información del servidor - Punto final de API (
/api
): maneja solicitudes JSON-RPC - Punto final SSE (
/sse
): maneja conexiones SSE
Implementación del protocolo MCP
Flujo de inicialización
- El cliente se conecta al servidor a través de SSE
- El servidor devuelve la URI del punto final de la API
- El cliente envía una solicitud de inicialización con la versión del protocolo y las capacidades
- El servidor responde a la solicitud de inicialización, devolviendo las capacidades del servidor.
Solicitud de muestreo
Los clientes pueden enviar solicitudes de muestreo con indicaciones:
El servidor devolverá los resultados del muestreo:
Cerrar una sesión
Los clientes pueden enviar una solicitud de apagado:
El servidor se apagará correctamente:
Extensiones de desarrollo
Agregar nuevos métodos
Para agregar nuevos métodos MCP, agregue una función de controlador a la clase MCPServer
y regístrela en el método _register_methods
:
Integración de modelos de IA
Para integrar modelos de IA reales, modifique el método handle_sample
:
Solución de problemas
Problemas comunes
- Errores de conexión : asegúrese de que el servidor esté en ejecución y que el cliente esté usando la URL del servidor correcta
- 405 Método no permitido : asegúrese de que el cliente esté enviando solicitudes al punto final de API correcto
- Error de conexión SSE : Verifique las conexiones de red y la configuración del firewall
Explotación florestal
Tanto el servidor como el cliente proporcionan registros detallados. Consulte los registros para obtener más información:
Referencias
- Especificación del protocolo MCP
- Documentación de FastAPI
- Especificación JSON-RPC 2.0
- Especificación SSE
Licencia
Este proyecto está licenciado bajo la Licencia MIT. Consulte el archivo de LICENCIA para más detalles.
This server cannot be installed
Una implementación basada en FastAPI del Protocolo de contexto de modelo que permite la interacción estandarizada entre los modelos de IA y los entornos de desarrollo, lo que facilita a los desarrolladores la integración y la gestión de tareas de IA.