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:
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
:
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 -9PythonMIT License
- -security-license-qualityAn open standard server implementation that enables AI assistants to directly access APIs and services through Model Context Protocol, built using Cloudflare Workers for scalability.Last updated -TypeScript
- -securityFlicense-qualityA modern AI service proxy that enables interaction with multiple AI providers (Anthropic Claude, OpenAI) through a unified API, deployed globally using Cloudflare Workers.Last updated -16TypeScript
- AsecurityFlicenseAqualityA Model Context Protocol server that enables AI assistants to interact with the Omi API for retrieving and creating conversations and memories for users.Last updated -4TypeScript