Servidor de Protocolo de Contexto de Modelo (MCP)
Una implementación de servidor simple para el Protocolo de Contexto de Modelo que proporciona una API unificada para múltiples proveedores de modelos de IA.
Características
API unificada para múltiples proveedores de IA (Anthropic, OpenAI)
Compatibilidad con finalizaciones de chat y finalizaciones heredadas
Soporte de llamada de herramientas
Manejo de mensajes de contexto/sistema
Configuración basada en el entorno
Base de datos MongoDB para persistencia y gestión de estado
Historial y análisis de ejecución de herramientas
Instalación
El script de configuración lo guiará a través de la configuración de las claves API necesarias:
ANTHROPIC_API_KEY
- Para modelos ClaudeOPENAI_API_KEY
- Para modelos GPT y generación de imágenes DALL-ESTABILITY_API_KEY
- Para la generación de imágenes de difusión estableGOOGLE_CSE_API_KEY
yGOOGLE_CSE_ID
: para la funcionalidad de búsqueda webBING_SEARCH_API_KEY
- Para búsqueda web de respaldo
También puede editar manualmente el archivo .env
si lo prefiere.
Configuración de MongoDB
El servidor MCP utiliza MongoDB para la persistencia de datos. Tiene varias opciones para configurar MongoDB:
Opción 1: Configuración automatizada (recomendada)
Ejecute el script de configuración de MongoDB, que lo guiará a través del proceso:
Este script hará lo siguiente:
Comprueba si Docker está disponible
Inicie MongoDB usando Docker Compose (si está disponible)
Configure la conexión en su archivo .env
Verificar la conexión de MongoDB
Opción 2: Configuración manual de Docker
La forma más sencilla de comenzar a utilizar MongoDB es utilizar la configuración de Docker Compose incluida:
MongoDB estará disponible en mongodb://mcpuser:mcppassword@localhost:27017/mcp-server
Mongo Express (administración web) estará disponible en http://localhost:8081
Opción 3: Instalación local de MongoDB
Si prefiere instalar MongoDB localmente:
Instale MongoDB desde https://www.mongodb.com/try/download/community
Iniciar el servicio MongoDB
Actualice su archivo
.env
con:MONGODB_URI=mongodb://localhost:27017/mcp-server
Opción 4: MongoDB Atlas (Nube)
Para uso en producción, se recomienda MongoDB Atlas:
Crea una cuenta en https://www.mongodb.com/cloud/atlas
Crear un nuevo clúster
Configurar un usuario de base de datos y poner en lista blanca su dirección IP
Obtenga su cadena de conexión y actualice su archivo
.env
:MONGODB_URI=mongodb+srv://<username>:<password>@<cluster>.mongodb.net/mcp-server?retryWrites=true&w=majority
Migración de bases de datos
Para migrar datos existentes a MongoDB:
Este script hará lo siguiente:
Migrar definiciones de herramientas a MongoDB
Migrar configuraciones (como claves API) a MongoDB
Importar cualquier dato de respaldo si está disponible
Uso
Iniciar el servidor
El servidor se ejecutará en http://localhost:3000 (o el puerto que especificó en .env).
Opciones de inicio
Inicio estándar (
npm start
):Comprueba si las claves API están configuradas
Solicitudes de configuración si no se encuentran claves
Recomendado para usuarios primerizos
Modo de desarrollo (
npm run dev
):Utiliza nodemon para la recarga automática en caso de cambios de código
Todavía realiza comprobaciones del entorno
Lo mejor para el desarrollo
Inicio rápido (
npm run quick-start
):Evita todas las comprobaciones del entorno
Inicia el servidor inmediatamente
Útil cuando sabes que tu configuración es correcta
Modo de producción PM2 (
npm run pm2:start:prod
):Ejecuta el servidor utilizando el administrador de procesos PM2
Se reinicia automáticamente si el servidor falla
Optimizado para entornos de producción
Evita los controles ambientales
Uso del Administrador de procesos PM2
El servidor puede ejecutarse con PM2, un gestor de procesos de producción para aplicaciones Node.js. PM2 ofrece funciones como:
Gestión de procesos (reinicio en caso de fallo)
Gestión de registros
Monitoreo del rendimiento
Equilibrio de carga (para múltiples instancias)
Comandos PM2
La configuración de PM2 se almacena en ecosystem.config.js
. Puede modificar este archivo para cambiar:
Nombre del proceso
Variables de entorno
Límites de memoria
Configuración de implementación
Número de instancias (para equilibrar la carga)
Puntos finales de API
POST /mcp/:provider
Realice solicitudes a modelos de IA a través de una API unificada.
Parámetros de URL:
provider
: El proveedor de IA a utilizar (anthropic
uopenai
)
Cuerpo de la solicitud:
O (formato heredado):
Respuesta: Devuelve la respuesta sin procesar de la API del proveedor.
GET /tools/available
Obtenga una lista completa de todas las herramientas disponibles con información detallada.
Parámetros de consulta:
format
- Formato de respuesta:json
(predeterminado),yaml
,table
ohtml
category
- Herramientas de filtrado por categoría (opcional)enabled
- Filtrar por estado habilitado:true
(predeterminado) ofalse
search
: busque herramientas por nombre, descripción o etiquetasprovider
- Filtrar herramientas por proveedor (por ejemplo,openai
,google
)limit
- Número máximo de herramientas a devolver (para paginación)offset
- Desplazamiento para la paginación (predeterminado: 0)
Respuesta (formato JSON):
GET /health
Punto final de verificación de estado que devuelve el estado 200 si el servidor está en ejecución.
Gestión de datos
Copias de seguridad de bases de datos
Puede crear y administrar copias de seguridad de bases de datos:
Prueba de la conexión a la base de datos
Para verificar su configuración de MongoDB:
Clientes de ejemplo
Cliente de línea de comandos
Se incluye un cliente de prueba en src/client.js
. Para ejecutarlo:
Cliente web
Hay una interfaz web sencilla disponible en http://localhost:3000 cuando el servidor está en ejecución. Puede usarla para probar la API directamente desde su navegador.
Herramientas disponibles
El servidor MCP proporciona un punto final de descubrimiento de herramientas que permite a los usuarios y agentes de IA enumerar programáticamente todas las herramientas disponibles:
Descubrimiento de herramientas
GET /tools/available
: enumera todas las herramientas disponibles con información detallada.
Admite múltiples formatos: JSON, YAML, HTML y tabla ASCII
Proporciona filtrado por categoría, proveedor y términos de búsqueda.
Incluye metadatos detallados y ejemplos de uso para cada herramienta.
Ejemplo de uso:
Herramientas de búsqueda web
El servidor incluye herramientas de búsqueda y recuperación web integradas:
Búsqueda web (
/tools/web/search
)Busque en la web información sobre una consulta determinada
Parámetros:
query
(obligatorio),limit
(opcional)Requiere: variables de entorno
GOOGLE_CSE_API_KEY
yGOOGLE_CSE_ID
Vuelve a
BING_SEARCH_API_KEY
si falla la búsqueda de Google
Contenido web (
/tools/web/content
)Recuperar y extraer contenido de una URL específica
Parámetros:
url
(obligatorio),useCache
(opcional)
Lote web (
/tools/web/batch
)Recuperar contenido de múltiples URL en paralelo
Parámetros:
urls
(matriz obligatoria),useCache
(opcional)
Herramientas de generación de imágenes
El servidor también incluye herramientas de generación, edición y variación de imágenes:
Generar imagen (
/tools/image/generate
)Generar una imagen basada en una indicación de texto
Parámetros:
prompt
(obligatorio): Descripción detallada de la imagenprovider
(opcional):openai
ostability
(predeterminado aopenai
)options
(opcionales): opciones específicas del proveedor
Editar imagen (
/tools/image/edit
)Editar una imagen existente con un mensaje de texto
Parámetros:
imagePath
(obligatorio): Ruta a la imagen a editarprompt
(obligatorio): Descripción de la edición a realizarmaskPath
(opcional): Ruta a una imagen de máscara
Crear variación de imagen (
/tools/image/variation
)Crear una variación de una imagen existente
Parámetros:
imagePath
(obligatorio): Ruta a la imagen para crear variaciones de
Nota: Para utilizar estas herramientas, debe configurar claves API en su archivo
.env
:
Para imágenes OpenAI:
OPENAI_API_KEY
Para imágenes de IA de estabilidad:
STABILITY_API_KEY
Para búsqueda web:
GOOGLE_CSE_API_KEY
yGOOGLE_CSE_ID
Integración de herramientas con modelos de IA
El servidor MCP gestiona automáticamente la llamada y ejecución de herramientas con modelos de IA. Cuando un modelo decide usar una herramienta, el servidor:
Ejecuta la herramienta solicitada con los parámetros proporcionados
Devuelve la respuesta de la herramienta al modelo.
El modelo puede entonces incorporar la respuesta de la herramienta en su respuesta final.
Descubrimiento de herramientas para modelos de IA
Los modelos de IA pueden usar el punto de conexión /tools/available
para descubrir qué herramientas están disponibles y cómo usarlas. Esto es especialmente útil para:
Descubrimiento dinámico de herramientas durante el tiempo de ejecución
Autodocumentación para agentes de IA
Permitir que los sistemas de IA se adapten a las capacidades disponibles
Ejemplo de mensaje del sistema para modelos de IA:
Ejemplo de uso de la herramienta
Consulte el directorio /examples
para ver un código de muestra que demuestra el uso de la herramienta.
Agregar nuevos proveedores o herramientas
Agregar nuevos proveedores de IA
Para agregar nuevos proveedores de IA:
Agregue el SDK del proveedor al proyecto
Crear una nueva función de controlador en
server.js
Agregar un nuevo caso en el controlador de ruta principal
Agregar nuevas herramientas
Para agregar nuevas herramientas al servidor:
Cree una nueva implementación de herramienta en el directorio
/src/tools
Agregue la definición de la herramienta a
tool-definitions.js
Actualizar las funciones de ejecución de la herramienta en
server.js
Agregar nuevos puntos finales de API para el uso directo de la herramienta (si es necesario)
Licencia
ISC
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Un servidor API unificado que permite la interacción con múltiples proveedores de modelos de IA como Anthropic y OpenAI a través de una interfaz consistente, que admite la finalización de chat, la llamada de herramientas y el manejo del contexto.
Related MCP Servers
- -securityAlicense-qualityThis server facilitates the invocation of AI models from providers like Anthropic, OpenAI, and Groq, enabling users to manage and configure large language model interactions seamlessly.Last updated -9MIT License
- -securityAlicense-qualityA server implementation that provides a unified interface for OpenAI services, Git repository analysis, and local filesystem operations through REST API endpoints.Last updated -GPL 3.0
- -securityFlicense-qualityA server that provides rich UI context and interaction capabilities to AI models, enabling deep understanding of user interfaces through visual analysis and precise interaction via Model Context Protocol.Last updated -59
- -securityFlicense-qualityA simple server that acts as a Master Control Program (MCP) for unified interaction with OpenAI and Anthropic (Claude) AI models through a single API endpoint.Last updated -5