Servidor MCP con integración con OpenAI, Git, sistema de archivos y Prometheus
Este repositorio contiene una implementación de servidor de plano de control de modelo (MCP) que admite servicios OpenAI, análisis de repositorios Git, operaciones de sistemas de archivos locales e integración de Prometheus.
Estructura del proyecto
Requisitos
Python 3.8+
API rápida
Uvicornio
Kit de desarrollo de software de OpenAI
GitPython
Solicitudes
Docker y Docker Compose (para las funciones de Prometheus)
Instalación
Clonar este repositorio
Instalar las dependencias:
Variables de entorno
Establezca las siguientes variables de entorno:
Para Azure OpenAI:
Para OpenAI estándar:
Para Prometeo:
Ejecución del servidor
Inicie el servidor MCP:
O para más opciones:
El servidor estará disponible en http://localhost:8000 .
Herramienta de prueba unificada
Proporcionamos un script de prueba unificado que le brinda una interfaz fácil de usar para todas las funciones de prueba:
Este script interactivo proporciona:
Pruebas del sistema de archivos
Pruebas de integración de Git
Herramientas de análisis de memoria
Pruebas de Prometeo y estrés de la memoria
Gestión de servidores MCP
Configuración del entorno
Pruebas individuales
También puedes ejecutar pruebas individuales directamente:
Pruebe la integración de OpenAI:
Pruebe la integración de Git (proporcione una URL del repositorio de Git):
Pruebe la funcionalidad de diferencias de Git (analice la compatibilidad de requisitos):
Pruebe la funcionalidad del sistema de archivos:
Pruebe la integración de langflow con MCP:
Pruebe la integración de Prometheus:
Análisis avanzado de Git
Para un análisis más avanzado del repositorio Git con recomendaciones de IA:
También puedes buscar patrones específicos en el repositorio:
O analice la última diferencia de confirmación con información de IA:
Herramientas de análisis de memoria
MCP incluye varias herramientas para la monitorización y análisis de la memoria:
También puedes simular la presión de la memoria para realizar pruebas:
Integración de Prometeo
Configuración
Inicie la pila Prometheus usando Docker Compose:
Esto comenzará:
Servidor Prometheus (accesible en http://localhost:9090 )
Exportador de nodos (para métricas del host)
cAdvisor (para métricas de contenedores)
Para realizar pruebas de estrés, puede iniciar el contenedor de estrés de memoria:
O utilice el script de prueba del contenedor:
Scripts de configuración y restablecimiento de Docker
Este proyecto incluye múltiples configuraciones de Docker y scripts de reinicio para un funcionamiento confiable en diferentes entornos:
Configuraciones de Docker
Configuración estándar (
docker-compose.yml): utiliza Dockerfiles personalizados para Prometheus y Langflow para garantizar permisos consistentes en todos los sistemas.Configuración de red de puente (
docker-compose.bridge.yml): configuración alternativa que utiliza redes de puente para entornos donde la red del host es problemática.
Archivos Docker personalizados para resolver problemas de permisos
El proyecto utiliza Dockerfiles personalizados tanto para Prometheus como para Langflow para resolver problemas de permisos comunes:
Dockerfile.prometheus : configura la configuración de Prometheus con los permisos adecuados para el usuario
nobody.Dockerfile.langflow : copia el directorio de componentes en el contenedor sin cambiar la propiedad del archivo, lo que permite que Langflow acceda a los componentes sin errores de permiso.
Este enfoque elimina la necesidad de realizar montajes de volumen que pueden generar conflictos de permisos entre diferentes máquinas y configuraciones de usuario.
Restablecer scripts
Restablecer todos los servicios (
reset-all.sh): restablece todos los contenedores con un solo comando.# Basic reset (rebuilds containers with existing volumes) ./reset-all.sh # Full reset (removes volumes and rebuilds containers) ./reset-all.sh --cleanReinicio de servicio individual :
# Reset only Prometheus ./reset-prometheus.sh # Reset only Langflow ./reset-langflow.sh
Estos scripts garantizan que los contenedores estén configurados correctamente con los permisos correctos y los últimos cambios de código.
Solución de problemas
Si encuentra problemas de permisos:
Utilice los scripts de reinicio para reconstruir los contenedores
Verifique los registros con
docker compose logs <service_name>Asegúrese de que todos los componentes agregados a Langflow estén incluidos en Dockerfile.langflow
Implementación entre máquinas
Al implementar en una nueva máquina:
Clonar el repositorio
Hacer que los scripts de reinicio sean ejecutables:
chmod +x *.shEjecute el script de reinicio:
./reset-all.sh
Los Dockerfiles personalizados manejan automáticamente todos los problemas de permisos que puedan ocurrir en diferentes sistemas.
Uso del cliente Prometheus
La clase MCPAIComponent incluye capacidades de Prometheus:
Consultas útiles de PromQL
Uso de CPU:
rate(node_cpu_seconds_total{mode!="idle"}[1m])Uso de memoria:
node_memory_MemTotal_bytes - node_memory_MemAvailable_bytesUso del disco:
node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}Uso de CPU del contenedor:
rate(container_cpu_usage_seconds_total[1m])Uso de memoria del contenedor:
container_memory_usage_bytes
Puntos finales de API
Puntos finales de OpenAI
GET
/v1/models- Lista todos los modelos disponiblesGET
/v1/models/{model_id}- Obtener información sobre un modelo específicoPOST
/v1/models/azure-gpt-4/completion- Generar la finalización de texto con Azure OpenAIPOST
/v1/models/azure-gpt-4/chat- Generar una respuesta de chat con Azure OpenAIPOST
/v1/models/openai-gpt-chat/chat- Generar una respuesta de chat usando el modelo de chat de OpenAIPOST
/v1/models/openai-gpt-completion/completion- Generar la finalización de texto utilizando el modelo de finalización de OpenAI
Puntos finales de integración de Git
POST
/v1/models/git-analyzer/analyze- Analizar un repositorio GitPOST
/v1/models/git-analyzer/search- Busca en un repositorio Git archivos que coincidan con un patrónPOST
/v1/models/git-analyzer/diff- Obtener la diferencia de la última confirmación en un repositorio
Puntos finales del sistema de archivos
POST
/v1/models/filesystem/list- Lista el contenido de un directorioPOST
/v1/models/filesystem/read- Leer el contenido de un archivoPOST
/v1/models/filesystem/read-multiple- Leer varios archivos a la vezPOST
/v1/models/filesystem/write- Escribe contenido en un archivoPOST
/v1/models/filesystem/edit- Editar un archivo con múltiples reemplazosPOST
/v1/models/filesystem/mkdir- Crear un directorioPOST
/v1/models/filesystem/move- Mover un archivo o directorioPOST
/v1/models/filesystem/search- Busca archivos que coincidan con un patrónPOST
/v1/models/filesystem/info- Obtener información sobre un archivo o directorio
Puntos finales de Prometheus
POST
/v1/models/prometheus/query- Ejecutar una consulta instantáneaPOST
/v1/models/prometheus/query_range- Ejecutar una consulta de rangoPOST
/v1/models/prometheus/series- Obtener datos de la serieGET
/v1/models/prometheus/labels- Obtener todas las etiquetas disponiblesPOST
/v1/models/prometheus/label_values- Obtener valores para una etiqueta específicaGET
/v1/models/prometheus/targets- Obtener todos los objetivosGET
/v1/models/prometheus/rules- Obtener todas las reglasGET
/v1/models/prometheus/alerts- Obtener todas las alertas
Uso del cliente
Puede utilizar MCPAIComponent en sus pipelines LangFlow proporcionando la URL del servidor MCP:
Uso de la clase GitCodeAnalyzer
Para un análisis de Git más estructurado, puede utilizar la clase GitCodeAnalyzer :
Solución de problemas
Problemas de Prometeo
Verifique que Prometheus se esté ejecutando:
docker ps | grep prometheusComprueba que puedes acceder a la interfaz de usuario de Prometheus: http://localhost:9090
Verifique que el servidor MCP esté en ejecución y sea accesible
Verifique los registros del servidor MCP para detectar errores
Pruebe primero consultas simples para verificar la conectividad (por ejemplo, consulta
up)
Problemas de OpenAI
Verifique que sus claves API estén configuradas correctamente
Compruebe si hay problemas de limitación de velocidad o de cuota
Verifique que esté utilizando modelos compatibles con su clave API
Problemas con Git
Asegúrese de que la URL del repositorio de Git sea accesible
Compruebe si hay problemas de autenticación si utiliza repositorios privados
Asegúrese de que GitPython esté instalado correctamente
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Una implementación de servidor que proporciona una interfaz unificada para servicios OpenAI, análisis de repositorios Git y operaciones del sistema de archivos local a través de puntos finales de API REST.
- Estructura del proyecto
- Requisitos
- Instalación
- Variables de entorno
- Ejecución del servidor
- Herramienta de prueba unificada
- Pruebas individuales
- Análisis avanzado de Git
- Herramientas de análisis de memoria
- Integración de Prometeo
- Puntos finales de API
- Uso del cliente
- Uso de la clase GitCodeAnalyzer
- Solución de problemas
Related Resources
Related MCP Servers
- -securityAlicense-qualityThis server facilitates scalable discovery and execution of OpenAPI endpoints using semantic search and high-performance processing, overcoming limitations of large spec handling for streamlined API interactions.Last updated -73MIT License
- -securityAlicense-qualityA server that allows AI assistants to browse and read files from specified GitHub repositories, providing access to repository contents via the Model Context Protocol.Last updated -5MIT License
- -securityFlicense-qualityA custom server implementation that allows AI assistants to interact with GitLab repositories, providing capabilities for searching, fetching files, creating/updating content, and managing issues and merge requests.Last updated -1
- -securityFlicense-qualityA unified API server that enables interaction with multiple AI model providers like Anthropic and OpenAI through a consistent interface, supporting chat completions, tool calling, and context handling.Last updated -