Integrations
Manages environment variables for API keys and configuration settings through .env files
Provides a web API framework for hosting the MCP server, with endpoints for chat interactions and conversation management
Provides repository hosting for the MCP server code with instructions for cloning and contributing
Implementación del servidor MCP
Una implementación completa basada en Flask del Protocolo de Contexto de Modelo (MCP) para mejorar las capacidades del modelo de lenguaje grande con herramientas externas.
Descripción general
Este repositorio demuestra cómo crear un servidor que gestiona el Protocolo de Contexto de Modelo (MCP), un método para ampliar las capacidades de LLM mediante la invocación de herramientas directamente en la salida de texto del modelo. A diferencia de la invocación de funciones, MCP coloca las definiciones de herramientas directamente en la ventana de contexto y analiza las respuestas en lenguaje natural del modelo para identificar su uso.
Características
- 🔧 Implementación completa de MCP : análisis completo, ejecución y manejo de respuestas
- 🌤️ Herramientas de muestra : Herramientas meteorológicas y de cálculo con validación de parámetros
- 🔄 Flujo de conversación : mantiene el contexto en múltiples interacciones
- Análisis basado en expresiones regulares : análisis de texto flexible para invocaciones de herramientas
- API de Flask : puntos finales de API REST para la integración de chat
Estructura del proyecto
Instalación
- Clonar el repositorio:Copy
- Crear un entorno virtual:Copy
- Instalar dependencias:Copy
- Configurar variables de entorno:Copy
Uso
Ejecución del servidor
Inicie el servidor de desarrollo Flask:
Para producción:
Puntos finales de API
- POST/chat : Procesar mensajes de chat con MCPCopy
Ejemplo independiente
Ejecute el script de ejemplo para ver MCP en acción:
Cómo funciona
- Registro de herramientas : Las herramientas se registran con sus parámetros y lógica de ejecución.
- Inyección de definición de herramienta : se agregan descripciones de herramientas con formato XML al mensaje
- Procesamiento de respuesta de LLM : los patrones de expresiones regulares identifican las llamadas a herramientas en la salida de texto de LLM
- Ejecución de herramientas : los parámetros se analizan y se pasan a los controladores de herramientas adecuados
- Inyección de resultados : los resultados de la ejecución de la herramienta se insertan nuevamente en la respuesta.
MCP vs. Llamada a funciones
Característica | MCP | Llamada de función |
---|---|---|
Definición Ubicación | En el texto de solicitud | En parámetros de API |
Formato de invocación | Lenguaje natural | JSON estructurado |
Implementación | Análisis de texto | Integración de API |
Visibilidad | Visible en respuesta | Puede estar oculto |
Soporte de plataforma | Cualquier LLM basado en texto | Requiere soporte de API |
Ejemplo de conversación
Usuario : ¿Cómo es el clima en Boston?
Maestría en Derecho :
Después del procesamiento :
Agregar sus propias herramientas
- Crear una nueva clase heredando de
Tool
- Definir parámetros y lógica de ejecución
- Regístrese con el controlador MCP
Ejemplo:
Flujo de configuración e invocación de MCP
- Registro de herramientas :
- Las herramientas MCP se registran con el controlador
- Cada herramienta proporciona su nombre, descripción y definiciones de parámetros.
- Definición de herramienta Inyección :
- Las definiciones de herramientas se agregan al mensaje del sistema.
- El formato sigue la estructura XML para MCP
- Procesamiento de respuestas de LLM :
- LLM genera respuestas que pueden incluir invocaciones de herramientas
- La coincidencia de patrones identifica las llamadas a herramientas en el texto
- Los parámetros de la herramienta se analizan y se pasan a los métodos de ejecución de la herramienta.
- Ejecución de la herramienta :
- Las herramientas se ejecutan con los parámetros proporcionados.
- Los resultados se reintroducen en la conversación.
- Gestión de conversaciones :
- Las respuestas procesadas con resultados de la herramienta se agregan al historial de conversaciones
- Las futuras solicitudes de LLM incluyen este historial para el contexto
Ejemplo de conversación
He aquí un ejemplo de cómo podría ser una conversación:
Usuario : ¿Cómo es el clima en Boston?
Sistema : envía un mensaje con las definiciones de herramientas MCP a LLM
Respuesta de LLM :
Manejador MCP : analiza la respuesta, encuentra la llamada a la herramienta y ejecuta la herramienta meteorológica
Resultado de la ejecución de la herramienta :
Respuesta procesada (enviada de vuelta al usuario):
Usuario : ¿Puedes calcular la raíz cuadrada de 144?
Respuesta de LLM :
Manejador MCP : analiza la respuesta y ejecuta la herramienta de cálculo.
Resultado de la ejecución de la herramienta :
Respuesta procesada (enviada de vuelta al usuario):
Esto demuestra el flujo completo del uso de la herramienta MCP, desde la invocación basada en texto del LLM hasta la ejecución y el procesamiento de la respuesta.
Licencia
Instituto Tecnológico de Massachusetts (MIT)
Contribuyendo
¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.
This server cannot be installed
Un servidor basado en Flask que implementa el Protocolo de Contexto de Modelo para mejorar los LLM con capacidades de herramientas externas a través del lenguaje natural, permitiendo que herramientas como la búsqueda y los cálculos del clima se invoquen directamente en la salida de texto del modelo.