local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
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.Copy - Reinicio de servicio individual :Copy
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 *.sh
- Ejecute 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_bytes
- Uso 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 disponibles - GET
/v1/models/{model_id}
- Obtener información sobre un modelo específico - POST
/v1/models/azure-gpt-4/completion
- Generar la finalización de texto con Azure OpenAI - POST
/v1/models/azure-gpt-4/chat
- Generar una respuesta de chat con Azure OpenAI - POST
/v1/models/openai-gpt-chat/chat
- Generar una respuesta de chat usando el modelo de chat de OpenAI - POST
/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 Git - POST
/v1/models/git-analyzer/search
- Busca en un repositorio Git archivos que coincidan con un patrón - POST
/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 directorio - POST
/v1/models/filesystem/read
- Leer el contenido de un archivo - POST
/v1/models/filesystem/read-multiple
- Leer varios archivos a la vez - POST
/v1/models/filesystem/write
- Escribe contenido en un archivo - POST
/v1/models/filesystem/edit
- Editar un archivo con múltiples reemplazos - POST
/v1/models/filesystem/mkdir
- Crear un directorio - POST
/v1/models/filesystem/move
- Mover un archivo o directorio - POST
/v1/models/filesystem/search
- Busca archivos que coincidan con un patrón - POST
/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ánea - POST
/v1/models/prometheus/query_range
- Ejecutar una consulta de rango - POST
/v1/models/prometheus/series
- Obtener datos de la serie - GET
/v1/models/prometheus/labels
- Obtener todas las etiquetas disponibles - POST
/v1/models/prometheus/label_values
- Obtener valores para una etiqueta específica - GET
/v1/models/prometheus/targets
- Obtener todos los objetivos - GET
/v1/models/prometheus/rules
- Obtener todas las reglas - GET
/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 prometheus
- Comprueba 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
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.
- Project Structure
- Requirements
- Installation
- Environment Variables
- Running the Server
- Unified Testing Tool
- Individual Tests
- Advanced Git Analysis
- Memory Analysis Tools
- Prometheus Integration
- API Endpoints
- Client Usage
- Using the GitCodeAnalyzer Class
- Troubleshooting