test-my-mcpserver

  • Linux
  • Apple

Integrations

  • Enables querying a vector database for RAG (Retrieval Augmented Generation) responses, allowing the LLM to retrieve information from stored knowledge base documents.

  • Implements tools for executing code and performing calculations, allowing the LLM to run Python functions to retrieve or process information.

Estandarización de la interacción de LLM con servidores MCP

El Protocolo de Contexto de Modelo (MCP) es un protocolo abierto que estandariza cómo las aplicaciones proporcionan contexto a los LLM . En otras palabras, proporciona un marco unificado para que las aplicaciones basadas en LLM se conecten a fuentes de datos, obtengan contexto, utilicen herramientas y ejecuten indicaciones estándar.

El ecosistema MCP describe tres componentes específicos:

  • Los servidores MCP manejan: disponibilidad de herramientas (exponer qué funciones están disponibles), ejecución de herramientas (ejecutar esas funciones cuando se solicita), contenido estático como recursos (proporcionar datos a los que se puede hacer referencia), indicaciones preestablecidas (plantillas estandarizadas para tareas comunes)
  • Los clientes administran: Conexiones a servidores, integración LLM, paso de mensajes entre componentes
  • Los hosts proporcionan: interfaces frontend, presentación de la funcionalidad de MCP a los usuarios, puntos de integración para el ecosistema general

Esta arquitectura crea un sistema modular donde se pueden desarrollar diferentes componentes de forma independiente, manteniendo la interoperabilidad. Esto permite a los usuarios crear servidores MCP para diferentes funcionalidades relacionadas con LLM y conectarlos a diversas aplicaciones compatibles. Se utiliza comúnmente para integrar API y herramientas de servicios, o para conectarse a fuentes de datos locales en su propio equipo.

Componentes del servidor MCP

Los servidores MCP constituyen la base del protocolo al ofrecer capacidades estandarizadas mediante interfaces bien definidas. Los hosts y clientes pueden conectarse a estos servidores mediante el estándar del protocolo, pero la forma en que se presentan estas capacidades a los usuarios es flexible y está abierta a los desarrolladores. Esto significa que la implementación y la experiencia del usuario dependen completamente del desarrollador, ya sea mediante interfaces de línea de comandos, aplicaciones gráficas o integradas en sistemas más grandes.

En esta guía, nos centraremos en la creación de un servidor MCP de ejemplo con funciones básicas, junto con una implementación de cliente sencilla para demostrar los patrones de interacción. Para empezar, repasemos los componentes principales de un servidor MCP:

Herramientas

Las herramientas son funciones que el LLM puede invocar para realizar acciones o recuperar información. Cada herramienta se define con:

{ name: string; // Unique identifier for the tool description?: string; // Human-readable description inputSchema: { // JSON Schema for the tool's parameters type: "object", properties: { ... } // Tool-specific parameters } }

Las herramientas permiten a los LLM interactuar con sistemas externos, ejecutar código, consultar bases de datos o realizar cálculos. Representan acciones que tienen efectos o calculan nueva información.

Recursos

Los recursos representan fuentes de datos a las que la aplicación cliente puede acceder. Se identifican mediante URI y pueden incluir:

{ uri: string; // Unique identifier for the resource name: string; // Human-readable name description?: string; // Optional description mimeType?: string; // Optional MIME type }

Los recursos pueden ser estáticos (como archivos de configuración) o dinámicos (como registros de bases de datos o respuestas de API). Proporcionan contexto al LLM sin necesidad de llamadas a funciones.

Indicaciones

Los avisos son plantillas reutilizables que definen patrones de interacción específicos. Permiten a los servidores exponer flujos de conversación estandarizados:

{ name: string; // Unique identifier for the prompt description?: string; // Human-readable description arguments?: [ // Optional list of arguments { name: string; // Argument identifier description?: string; // Argument description required?: boolean; // Whether argument is required } ] }

Las indicaciones ayudan a crear interacciones consistentes y diseñadas específicamente para tareas comunes, permitiendo a los usuarios invocarlas a través de elementos de la interfaz de usuario, como comandos de barra.

Nota: Si bien las herramientas están diseñadas específicamente para la interacción con LLM (similar a la llamada a funciones), las indicaciones y los recursos tienen diferentes propósitos en el ecosistema MCP. Las indicaciones suelen ser plantillas controladas por el usuario que se pueden invocar directamente mediante elementos de la interfaz de usuario, como comandos de barra diagonal, y los recursos son fuentes de datos controladas por la aplicación que se pueden presentar a los usuarios para su selección antes de incluirlos en el contexto de LLM.

Se pueden encontrar más detalles y funcionalidades adicionales en la Documentación Oficial de MCP


Estableciendo nuestro ejemplo

Nuestro servidor MCP destacará herramientas, recursos y sugerencias. El concepto principal es crear un flujo de chatbot simple para la base de conocimientos que permitirá:

  1. Permitir que el LLM utilice herramientas para consultar una base de datos vectorial para obtener respuestas RAG
  2. Permitir que el usuario elija recursos existentes para proporcionar contexto
  3. Permitir que el usuario ejecute indicaciones estándar para flujos de trabajo analíticos más complejos

El diagrama anterior es lo que se implementa en mcp_server.py con un cliente CLI simple correspondiente en client.py .

Como recurso útil, consulte la Lista de servidores de MCP para conocer integraciones oficiales y servidores creados por la comunidad.


Configuración e instalación

  1. Clonar el repositorio
git clone https://github.com/ALucek/quick-mcp-example.git cd quick-mcp-example
  1. Crear la base de datos ChromaDB

Siga las instrucciones en MCP_setup.ipynb para crear la base de datos vectorial e incrustar un PDF en ella.

  1. Crear el entorno virtual e instalar paquetes
# Using uv (recommended) uv venv source .venv/bin/activate # On macOS/Linux # OR .venv\Scripts\activate # On Windows # Install dependencies uv sync
  1. Ejecutar el cliente y el servidor
python client.py mcp_server.py
-
security - not tested
F
license - not found
-
quality - not tested

prueba

  1. MCP Server Components
    1. Tools
    2. Resources
    3. Prompts
  2. Setting Up Our Example
    1. Setup and Installation
      ID: gjpoubbada