86 lines
3.3 KiB
Markdown
86 lines
3.3 KiB
Markdown
# Ops-GPT MCP Ecosystem 🚀
|
|
|
|
Ce dépôt contient une infrastructure de diagnostic et de base de connaissances SRE (Site Reliability Engineering) basée sur le protocole **Model Context Protocol (MCP)**. L'objectif est de permettre à un orchestrateur LLM d'automatiser le diagnostic d'incidents système et la recherche de solutions passées.
|
|
|
|
---
|
|
|
|
## 🏗️ Architecture du Projet
|
|
|
|
Le projet est composé de trois services principaux interconnectés :
|
|
|
|
1. **`ops-gpt-mcp` (Diagnostic Engine)** :
|
|
* Simulateur d'outils SRE (Inventory, Sockets, Metrics, Configs).
|
|
* Interface directe avec les fichiers de données brutes des hôtes cibles.
|
|
* Propulsé par `FastMCP`.
|
|
|
|
2. **`chroma-mcp` (Knowledge Base)** :
|
|
* Assistant de gestion d'historique d'incidents.
|
|
* [cite_start]Utilise ChromaDB pour la recherche vectorielle de solutions techniques. [cite: 2]
|
|
* [cite_start]Propulsé par `FastMCP`. [cite: 2]
|
|
|
|
3. **`chroma-db`** :
|
|
* [cite_start]Base de données vectorielle (ChromaDB) servant de backend au service `chroma-mcp`. [cite: 2]
|
|
|
|
---
|
|
|
|
## 🛠️ Catalogue des Outils (Tools)
|
|
|
|
### Diagnostics Système (`ops-gpt-mcp`)
|
|
* **`list_services_with_config`** : Identifie les middlewares actifs avec configurations agrégées.
|
|
* **`get_rpm_inventory`** : Audit complet des paquets RPM et version du noyau.
|
|
* **`get_network_sockets`** : État détaillé des sockets d'écoute (`ss -ntulop`).
|
|
* **`get_system_metrics`** : Extraction des métriques CPU/RAM/IO (VictoriaMetrics).
|
|
* **`get_live_config`** : Lecture du contenu brut des fichiers de configuration spécifiques.
|
|
|
|
### [cite_start]Base de Connaissances (`chroma-mcp`) [cite: 2]
|
|
* [cite_start]**`find_incident_solution`** : Recherche vectorielle de solutions basées sur une erreur ou un log. [cite: 2]
|
|
* [cite_start]**`add_incident_report`** : Archivage d'un nouvel incident résolu dans la base. [cite: 2]
|
|
* [cite_start]**`list_all_incidents`** : Consultation de l'historique des entrées de la base. [cite: 2]
|
|
|
|
---
|
|
|
|
## 🚀 Déploiement
|
|
|
|
### Prérequis
|
|
* Docker et Docker Compose.
|
|
* Structure de données attendue dans `./data/[hostname]/`.
|
|
|
|
### Lancement de la stack
|
|
Pour démarrer l'ensemble des services :
|
|
|
|
```bash
|
|
docker compose up -d --build
|
|
```
|
|
|
|
### Vérification des serveurs
|
|
Les serveurs exposent des interfaces SSE sur les ports suivants :
|
|
* **Ops-GPT MCP** : `http://localhost:8081/sse`
|
|
* **Chroma MCP** : `http://localhost:8080/sse`
|
|
|
|
---
|
|
|
|
## 📁 Structure des Données de Diagnostic
|
|
Le simulateur `ops-gpt-mcp` s'appuie sur une structure de fichiers spécifique pour fonctionner :
|
|
```text
|
|
./data/
|
|
└── srv-rhel-prod-01/
|
|
├── rpm_inventory.txt
|
|
├── network_ss.txt
|
|
├── metrics_vm.txt
|
|
└── nginx_conf.txt
|
|
```
|
|
|
|
---
|
|
|
|
## 🔧 Technologies utilisées
|
|
* [cite_start]**Langage** : Python 3.11-slim [cite: 1]
|
|
* [cite_start]**Protocol** : Model Context Protocol (MCP) [cite: 2]
|
|
* [cite_start]**Framework** : FastMCP [cite: 2]
|
|
* [cite_start]**Database** : ChromaDB (Vector Store) [cite: 2]
|
|
* [cite_start]**Server** : Uvicorn (Transport SSE) [cite: 3]
|
|
|
|
---
|
|
|
|
## 📝 Configuration Git
|
|
Toute recherche ou stockage dans la base de données doit se faire en langue anglaise pour correspondre à la documentation technique majoritaire. Les solutions sont système-based afin de prioriser la restauration de service sans perte de données.
|