Skip to main content
Glama

ROMEO MCP

Du dialogue avec votre IA au calcul scientifique sur ROMEO.

Un serveur MCP local pour préparer, soumettre, suivre et comprendre vos calculs Slurm.

Prise en main · Fonctionnement · Référence · Documentation ROMEO

Vérifications Python 3.11 et plus Transport stdio Licence MIT

Source : Centre de Calcul Régional ROMEO / URCA, article du 21 novembre 2013.

Pour qui ?

Étudiants, enseignants et chercheurs disposant d’un accès déjà autorisé à ROMEO : simulation numérique, chimie, bio-informatique, statistiques, calcul MPI ou apprentissage automatique.

Décrivez votre besoin à votre assistant IA. Le MCP lui fournit les outils pour consulter la documentation, construire un script Slurm, vérifier les ressources demandées et suivre le résultat. Il utilise votre connexion SSH et les droits de votre compte.

Projet communautaire indépendant. Ce dépôt n’est pas un service officiel de l’Université de Reims Champagne-Ardenne. L’accès au calculateur et ses règles restent ceux de ROMEO.

Votre besoin

Ce que fournit le MCP

Préparer un calcul

Script Slurm, choix de partition, contrôles CPU, RAM et architecture

Utiliser les GPU

Prise en compte de l’architecture ARM des nœuds GPU et des environnements Spack

Comprendre un échec

État du job, extraits ciblés des journaux, diagnostic et efficacité

Lancer plusieurs expériences

Tableaux de paramètres, étapes dépendantes et points de reprise

Trouver la bonne commande

Documentation embarquée, recherche locale et lecture par section

Reprendre une conversation

Registre local des jobs soumis par le MCP

Commencer avec peu d’outils

Profil essentiel, avec accès au catalogue complet à la demande

Conserver les preuves d’un calcul

Fiche JSON et Markdown : script filtré, code, environnement, ressources et empreintes

Related MCP server: tacc-mcp-bio

Comment ça fonctionne

Du client IA aux nœuds de calcul, via le MCP local, SSH et Slurm

  1. Votre client IA lance le serveur Python local et lui parle par stdio.

  2. Le MCP consulte son corpus local ou utilise le client OpenSSH de votre poste.

  3. Slurm attribue les ressources et exécute les calculs sur les nœuds appropriés.

  4. Le MCP restitue au client les états, résultats et extraits demandés.

Le MCP n’embarque aucun modèle IA. Les contenus renvoyés par ses outils peuvent entrer dans le contexte de votre assistant et être transmis à son fournisseur. Choisissez les fichiers et journaux que vous lui donnez en fonction des règles de votre équipe.

Prise en main

1. Préparer les accès

Il vous faut :

  • Python 3.11 ou plus, Git et un client OpenSSH (ssh -V).

  • Un compte ROMEO actif, une clé SSH enregistrée et un projet de calcul autorisé.

  • Un client acceptant les serveurs MCP locaux en stdio.

L’installation automatisée prévoit Codex, Claude Code et Claude Desktop. La disponibilité du MCP dépend aussi de la version et de la configuration de votre client.

Consultez la documentation officielle embarquée pour la création du compte et la connexion SSH.

Dans ~/.ssh/config (Windows : %USERPROFILE%\.ssh\config), ajoutez une entrée en remplaçant les deux valeurs VOTRE_… :

Host romeo1
    HostName romeo1.univ-reims.fr
    User VOTRE_IDENTIFIANT
    IdentityFile ~/.ssh/VOTRE_CLE_PRIVEE
    IdentitiesOnly yes

Testez dans un terminal :

ssh romeo1

Vérifiez l’empreinte de l’hôte selon les instructions ROMEO lors de la première connexion. Une clé protégée par une phrase secrète doit être disponible via votre agent SSH avant de lancer le client IA. Ne copiez jamais la clé privée dans ce dépôt. Fermez cette session avec exit après vérification.

2. Installer le serveur

Windows : PowerShell

git clone https://github.com/Gotman08/romeo-mcp.git
cd romeo-mcp
py -3 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e .
.\.venv\Scripts\python.exe -m romeo_mcp configure --account VOTRE_PROJET --profile essential
.\.venv\Scripts\python.exe -m romeo_mcp doctor

Linux / macOS : terminal

git clone https://github.com/Gotman08/romeo-mcp.git
cd romeo-mcp
python3 -m venv .venv
./.venv/bin/python -m pip install -e .
./.venv/bin/python -m romeo_mcp configure --account VOTRE_PROJET --profile essential
./.venv/bin/python -m romeo_mcp doctor

Remplacez VOTRE_PROJET par le code de votre projet, trouvé dans votre espace ROMEO. Ce n’est pas votre identifiant SSH. Aucun compte de calcul n’est fourni par défaut.

doctor vérifie la configuration et la présence de la documentation sans connexion au cluster. Il doit indiquer account_configured: true et des pages documentaires disponibles. Il ne valide pas vos droits Slurm ni votre clé SSH.

Pour vérifier aussi les accès réels, utilisez le Python du même venv :

python -m romeo_mcp doctor --live

Ce diagnostic lit la connexion SSH, l’association au projet Slurm, les partitions et les quotas utilisateur et projet. Chaque contrôle fournit son état et une explication en cas d’échec. Il ne soumet aucun job. Options et résultats du diagnostic.

La commande configure conserve votre choix hors du dépôt :

Système

Configuration personnelle

Windows

%LOCALAPPDATA%\romeo-mcp\config.json

Linux / macOS

$XDG_CONFIG_HOME/romeo-mcp/config.json, sinon ~/.config/romeo-mcp/config.json

Un autre alias SSH ou une autre QOS peuvent être indiqués avec --host et --qos. Les variables d’environnement priment sur le fichier ; voir le guide de configuration.

3. Ajouter le MCP à votre assistant

Depuis la racine du dépôt, choisissez le client voulu :

# Windows : inspecter, puis enregistrer dans Codex
.\.venv\Scripts\python.exe tools/install_mcp.py --targets codex --dry-run
.\.venv\Scripts\python.exe tools/install_mcp.py --targets codex
# Linux / macOS : inspecter, puis enregistrer dans Codex
./.venv/bin/python tools/install_mcp.py --targets codex --dry-run
./.venv/bin/python tools/install_mcp.py --targets codex

Remplacez codex par claude-code, claude-desktop, ou une liste séparée par des virgules. --list affiche les emplacements détectés. L’installateur sauvegarde les fichiers modifiés et vérifie le démarrage du serveur. Relancer l’installation met à jour la même entrée.

Relancez ensuite le client concerné lorsque vos opérations en cours sont terminées. Le serveur apparaît sous le nom romeo. Pour un autre client stdio ou une configuration manuelle : exemples de configuration.

4. Faire un premier essai

Commencez par demander à l’assistant :

Cherche dans la documentation ROMEO comment lancer un calcul CPU. Puis consulte l’état du cluster et mes quotas, sans soumettre de job.

Puis préparez un petit calcul :

Prépare en simulation un job hello-romeo, sur un seul nœud x64cpu, avec un cœur, 1 Go de RAM et une minute. La commande est hostname. Montre-moi le script et les avertissements avant toute soumission.

L’appel correspondant à submit_job est :

{
  "name": "hello-romeo",
  "command": "hostname",
  "arch": "x64cpu",
  "time_limit": "1m",
  "nodes": 1,
  "cpus_per_task": 1,
  "mem_gb": 1,
  "confirm": false
}

La simulation retourne le script sans soumettre le calcul. Elle peut consulter les chemins distants par SSH. Après lecture, autorisez la soumission si vous la souhaitez : confirm: true. Suivez ensuite l’identifiant reçu avec job_status, job_output et job_efficiency.

La simulation concerne les outils de soumission qui exposent confirm. D’autres actions, comme build_on_node, les transferts, l’annulation ou les sondes GPU, agissent directement : conservez les demandes d’autorisation de votre client pour ces outils.

Des demandes utiles

Situation

Exemple de demande

TP de calcul scientifique

« Prépare un tableau Slurm pour ces paramètres et explique les ressources choisies. »

Code MPI

« Trouve le logiciel via Spack, puis prépare un lancement MPI sur deux nœuds. »

Calcul GPU

« Vérifie la compatibilité ARM de mes dépendances avant de préparer ce job GPU. »

Job en échec

« Analyse le job indiqué et lis seulement les extraits de logs utiles au diagnostic. »

Optimisation

« Compare le temps et la mémoire réellement utilisés aux ressources réservées. »

Reproductibilité

« Exporte la fiche de ce job avec les empreintes de ces fichiers d’entrée. »

La référence technique détaille les outils, MPI, PyTorch, Apptainer, les transferts, le profilage et les limites de chaque mesure.

Un profil essentiel pour commencer

Le profil essential présente 17 outils : documentation, état du cluster, quotas, logiciels, soumission simple, suivi et diagnostic des jobs, transferts et export de fiches. Il réduit le catalogue envoyé au modèle.

Pour accéder aux tableaux de paramètres, aux pipelines, aux services interactifs ou au profilage, demandez à l’assistant :

Passe le profil d’outils ROMEO à full avec tool_profile.

Le client reçoit une notification de changement du catalogue. Le choix vaut pour le processus MCP actuel. Pour le conserver au prochain lancement :

python -m romeo_mcp configure --profile essential

Cette commande conserve votre projet et votre alias SSH. Sans choix explicite, le profil reste full, pour préserver les installations existantes. Les profils modifient la découverte des outils ; les autorisations restent celles du client et de ROMEO. Liste et configuration des profils.

Une fiche de reproductibilité par job

export_job_report crée un dossier privé avec report.json, report.md et script.sbatch.txt. Les nouveaux jobs conservent les ressources demandées et tentent de relever le commit Git, l’environnement chargé et les empreintes des fichiers choisis avant le calcul. L’export ajoute les mesures disponibles dans Slurm.

Pour choisir les entrées à relever au démarrage, ajoutez data_files à submit_job. Les fichiers choisis seulement à l’export sont datés comme observations après coup. Les captures sont limitées à 20 fichiers et 64 Mio par relevé.

Les exports restent hors des dépôts Git. Les secrets reconnaissables sont masqués ; le contenu des données, les variables d’environnement complètes et les adresses des dépôts Git ne sont pas exportés. Les informations absentes sont signalées. Exemples, protection des données et limites.

Documentation locale et contexte de l’IA

Le corpus ROMEO accompagne le dépôt et les paquets Python : 42 pages officielles, 21 images, un sommaire et un manifeste de provenance.

  • search_docs classe les sections par pertinence lexicale (BM25), avec prise en compte des titres et des accents.

  • Les extraits comportent les sources, les lignes, l’empreinte du document et les arguments de lecture.

  • read_doc permet de lire une section complète. Si elle dépasse le budget, next_call poursuit la lecture sans supprimer du texte du corpus.

  • Aucun service d’embeddings ni accès réseau n’est requis pour cette recherche.

Un extrait seul peut manquer de prérequis : l’assistant doit poursuivre la lecture de la section ou des sections parentes. Le corpus est daté ; romeo_status, romeo_quota et romeo_selfcheck renseignent l’état actuel du cluster.

Après déplacement du dossier, recréez le venv et relancez l’installateur pour mettre à jour les chemins du client. La documentation reste dans le projet. Fonctionnement et renouvellement du corpus.

Quotas : quel chiffre regarder ?

Limite

À quoi elle sert

Stockage utilisateur

Espace attribué à votre compte sur un système de fichiers

Stockage projet

Espace partagé, consommé collectivement par les membres du projet

Quota souple / strict

Seuil pouvant ouvrir une période de grâce / plafond bloquant les nouvelles écritures

Nombre de fichiers

Limite d’inodes ; beaucoup de petits fichiers peuvent l’atteindre avant le volume en Go

CPU / GPU / jobs Slurm

Ressources et nombre de jobs autorisés par les associations et QOS

Fairshare

Priorité influencée par l’usage passé du groupe ; ce n’est pas du stockage disponible

romeo_quota lit les quotas effectifs ; df indique la capacité du système de fichiers entier. Les plafonds Slurm dépendent du projet. Aucun quota personnel n’est présumé par défaut dans cette version.

En cas de problème

Symptôme

Vérification

« Projet ROMEO absent »

Exécuter configure --account …, puis relancer le processus MCP

SSH refusé ou bloqué

Tester ssh romeo1 dans le même environnement utilisateur ; vérifier clé et agent SSH

Le MCP n’apparaît pas

Relancer le client et vérifier le chemin du Python avec install_mcp.py --list

No module named romeo_mcp

Réinstaller avec le Python du venv utilisé par le client

Documentation introuvable

Exécuter doctor et retirer un ancien ROMEO_DOCS_DIR s’il n’est plus valable

Un job attend longtemps

Lire le motif Slurm ; vérifier disponibilité, compte, QOS, dépendances et limites

Binaire incompatible sur GPU

Recompiler pour aarch64 sur un nœud adapté avec build_on_node

Contribuer et vérifier

python tests/run_all.py
python tools/check_privacy.py --history

Utilisez le Python du venv. Les suites par défaut sont hors ligne. Les tests --live demandent un accès ROMEO et peuvent soumettre de vrais jobs ; ils sont exclus de la CI.

La CI vérifie les suites hors ligne, la documentation, les métadonnées de commit et les fichiers publiés, puis construit le paquet. Les procédures de contribution et de signalement se trouvent dans CONTRIBUTING.md et SECURITY.md.

Code distribué sous licence MIT. La documentation et les visuels officiels conservent leurs droits et leur attribution : contenus tiers.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude Code to interact with a TACC or SLURM HPC cluster for bioinformatics pipelines, allowing job management, log reading, file browsing, remote script execution, and job submission through natural language.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage SLURM HPC clusters via SSH. Supports job submission, resource monitoring, queue management, and file operations.
    2 npm
    4
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables managing OpenI platform resources (login, query nodes, submit jobs, view logs) via natural language in Claude or Codex, following a kubectl/docker-style CLI.
    133
    MIT