🧠 Guide d'utilisation de l'API Cerveau Store
📋 Vue d'ensemble
Le Cerveau Store est votre catalogue universel d'outils MCP avec indexation intelligente et recherche sémantique. Il permet de :
- 📚 Indexer tous vos outils MCP de manière centralisée
- 🔍 Rechercher intelligemment avec scoring de pertinence
- 📊 Analyser les performances et l'utilisation des outils
- 🎯 Découvrir automatiquement les outils pertinents pour chaque tâche
🚀 Démarrage rapide
1. Vérifier que l'API fonctionne
curl -X GET http://localhost:8002/health
2. Explorer les outils existants
# Liste des outils
curl -X GET http://localhost:8002/tools?per_page=10
# Catégories disponibles
curl -X GET http://localhost:8002/tools/categories
3. Recherche intelligente
# Recherche sémantique
curl -X POST http://localhost:8002/search \
-H "Content-Type: application/json" \
-d '{"query":"connexion serveur distant","semantic":true,"limit":5}'
📝 Enregistrement d'outils MCP
Structure d'un outil MCP
{
"name": "nom_de_votre_outil",
"category": "automation",
"description": "Description détaillée de l'outil",
"parameters": {
"param1": {
"type": "string",
"description": "Description du paramètre",
"required": true
},
"param2": {
"type": "integer",
"description": "Paramètre optionnel",
"default": 100,
"required": false
}
},
"llm_usage": "Instructions pour l'IA : quand et comment utiliser cet outil",
"server_id": "votre_serveur_mcp",
"metadata": {
"version": "1.0.0",
"author": "VotreNom",
"tags": ["tag1", "tag2", "tag3"],
"documentation": "https://docs.exemple.com"
}
}
Catégories disponibles
- network : Outils réseau (SSH, scan de ports, etc.)
- database : Base de données (PostgreSQL, MongoDB, etc.)
- file_management : Gestion de fichiers
- web : Web scraping, APIs REST
- development : Outils de développement (Docker, qualité code)
- communication : Notifications (Slack, email)
- security : Sécurité (mots de passe, cryptographie)
- automation : Automatisation générale
Enregistrement via API
curl -X POST http://localhost:8002/tools/register \
-H "Content-Type: application/json" \
-d @votre_outil.json
Enregistrement via Python
import requests
def register_tool():
tool_data = {
"name": "mon_outil_mcp",
"category": "automation",
"description": "Mon outil personnalisé",
"parameters": {
"input": {"type": "string", "description": "Données d'entrée"}
},
"llm_usage": "Utilisez pour automatiser des tâches spécifiques",
"server_id": "mon_serveur",
"metadata": {
"version": "1.0.0",
"author": "Mon équipe"
}
}
response = requests.post(
"http://localhost:8002/tools/register",
json=tool_data
)
return response.json()
🔍 Recherche intelligente
Types de recherche
1. Recherche textuelle simple
curl -X POST http://localhost:8002/search \
-H "Content-Type: application/json" \
-d '{"query":"ssh","limit":5}'
2. Recherche sémantique (recommandée)
curl -X POST http://localhost:8002/search \
-H "Content-Type: application/json" \
-d '{"query":"connexion serveur distant","semantic":true,"limit":5}'
3. Recherche par catégorie
curl -X GET "http://localhost:8002/tools?category=network&per_page=10"
4. Recherche avec filtres
curl -X POST http://localhost:8002/search \
-H "Content-Type: application/json" \
-d '{
"query":"base de données",
"semantic":true,
"category":"database",
"limit":10,
"min_score":0.5
}'
Interprétation des scores
- 0.8 - 1.0 : Très pertinent, recommandé
- 0.6 - 0.8 : Pertinent, bon candidat
- 0.4 - 0.6 : Moyennement pertinent, à considérer
- 0.0 - 0.4 : Peu pertinent, éviter
📊 Monitoring et métriques
Health check complet
curl -X GET http://localhost:8002/health
Statistiques du registry
curl -X GET http://localhost:8002/registry/stats
Métriques d'un outil spécifique
# Enregistrer une utilisation
curl -X POST "http://localhost:8002/tools/{tool_id}/metrics?success=true&latency=1000"
# Consulter les statistiques
curl -X GET "http://localhost:8002/tools/{tool_id}/stats"
🎯 Cas d'usage avancés
1. Découverte automatique d'outils
def find_best_tool_for_task(task_description):
"""Trouve le meilleur outil pour une tâche donnée"""
search_result = requests.post(
"http://localhost:8002/search",
json={
"query": task_description,
"semantic": True,
"limit": 3
}
).json()
if search_result["results"]:
best_tool = search_result["results"][0]
if best_tool["relevance_score"] > 0.7:
return best_tool
return None
# Exemple d'utilisation
task = "Je veux me connecter à un serveur distant de manière sécurisée"
best_tool = find_best_tool_for_task(task)
print(f"Outil recommandé: {best_tool['name']}")
2. Système de recommandation
def get_similar_tools(tool_id):
"""Trouve des outils similaires"""
# Récupérer les détails de l'outil
tool = requests.get(f"http://localhost:8002/tools/{tool_id}").json()
# Rechercher des outils similaires
similar = requests.post(
"http://localhost:8002/search",
json={
"query": tool["description"],
"semantic": True,
"category": tool["category"],
"limit": 5
}
).json()
# Exclure l'outil original
return [t for t in similar["results"] if t["id"] != tool_id]
3. Validation et scoring personnalisé
def validate_tool_for_context(tool_id, context):
"""Valide qu'un outil convient pour un contexte donné"""
tool = requests.get(f"http://localhost:8002/tools/{tool_id}").json()
# Vérifier les prérequis
required_params = [
p for p, info in tool["parameters"].items()
if info.get("required", False)
]
# Vérifier la disponibilité
if not tool.get("available_on"):
return False, "Outil non disponible"
# Score personnalisé basé sur le contexte
score = calculate_context_score(tool, context)
return score > 0.6, f"Score: {score}"
🔧 Configuration avancée
Variables d'environnement importantes
# Port de l'API
CERVEAU_STORE_PORT=8002
# Base de données
CERVEAU_STORE_DB_URL=sqlite:///./cerveau_store.db
# Recherche sémantique
SENTENCE_TRANSFORMER_MODEL=all-MiniLM-L6-v2
SEARCH_CACHE_TTL_MINUTES=15
# Performance
MAX_SEARCH_RESULTS=100
BATCH_SIZE=50
Optimisation des performances
- Cache de recherche : Activé par défaut (15 min TTL)
- Indexation en lot : Utilisez
/tools/register/batch
pour plusieurs outils - Pagination : Utilisez
page
etper_page
pour les grandes listes - Filtres : Combinez catégories et scores pour affiner les résultats
🧪 Scripts utiles
Script de sauvegarde
def backup_tools():
"""Sauvegarde tous les outils"""
tools = requests.get("http://localhost:8002/tools?per_page=1000").json()
with open("backup_tools.json", "w") as f:
json.dump(tools, f, indent=2)
print(f"✅ {len(tools['tools'])} outils sauvegardés")
Script de migration
def migrate_tools_from_config(config_file):
"""Migre des outils depuis un fichier de configuration"""
with open(config_file) as f:
config = json.load(f)
for server_name, server_config in config["mcpServers"].items():
# Convertir la configuration en format Cerveau Store
tool_data = convert_mcp_config_to_tool(server_name, server_config)
# Enregistrer l'outil
response = requests.post(
"http://localhost:8002/tools/register",
json=tool_data
)
print(f"Migré: {server_name} - {response.status_code}")
📚 Documentation API complète
- Swagger UI : http://localhost:8002/docs
- ReDoc : http://localhost:8002/redoc
- OpenAPI JSON : http://localhost:8002/openapi.json
🎉 Conclusion
Le Cerveau Store transforme votre écosystème MCP en un catalogue intelligent où :
- Tous vos outils sont indexés et documentés
- La recherche sémantique trouve les outils pertinents automatiquement
- Les métriques vous aident à optimiser l'utilisation
- L'API REST permet une intégration facile dans vos workflows
Votre système est maintenant prêt à gérer intelligemment tous vos outils MCP ! 🚀