Table des matières
uml-mcp
uml-mcp est un serveur Model Context Protocol qui permet à un assistant IA de dessiner des diagrammes. L’assistant écrit la source du diagramme (PlantUML, Mermaid, D2, Graphviz, C4, BPMN …), appelle un des outils du serveur et reçoit une image, un lien vers le fichier rendu et un lien vers un éditeur en ligne. Dans les clients qui prennent en charge les MCP Apps, le diagramme s’ouvre dans une visionneuse au sein de la conversation. Le paquet est publié sur PyPI sous le nom uml-mcp (version 1.4.0 dans pyproject.toml), tourne comme point d’accès hébergé sur Vercel et s’auto-héberge avec Docker ou Helm.
1. Démonstration
L’enregistrement vient du dépôt (docs/assets/mcp-app-demo.mp4). Un seul appel generate_uml_batch renvoie quatre diagrammes sous forme d’onglets dans la visionneuse MCP App ; l’utilisateur change d’onglet, puis refait le rendu d’un diagramme dans un autre format.
Les clients sans MCP Apps reçoivent le même résultat sous forme d’image en ligne et de liens, ce qu’affichent la plupart des clients de conversation :

2. Cas d’utilisation
Serveur MCP qui permet aux assistants IA de transformer une source ou une description en diagramme rendu dans la conversation.
- Rendre un diagramme
- Client MCP (chat IA)Kroki / PlantUML
generate_uml reçoit un diagram_type, le code source, un format et un thème optionnel, fait le rendu via Kroki (KROKI_SERVER, https://kroki.io par défaut) et renvoie le fichier, son URL et un lien vers le terrain de jeu.
- Valider une source
- Client MCP (chat IA)
validate_uml vérifie le type, le format et la structure de base en local, sans rendu, pour que l'assistant corrige la source avant de lancer le rendu.
- Rendre un lot de diagrammes
- Client MCP (chat IA)Kroki / PlantUML
generate_uml_batch rend plusieurs éléments en parallèle limité, dans l'ordre reçu, jusqu'à la limite batch_max_items.
- Retoucher dans le visualiseur
- DéveloppeurClient MCP (chat IA)
Dans les clients compatibles MCP Apps, le résultat s'ouvre dans ui://uml-mcp/diagram-viewer : zoom, édition de la source, changement de thème ou de format, export SVG, PNG, HTML ou PDF.
- Héberger le serveur soi-même
- DéveloppeurKroki / PlantUML
uv tool install uml-mcp && uml-mcp setup l'installe en local ; docker-compose.yml lance le serveur sur le port 8000 avec des conteneurs Kroki et un profil PlantUML de secours optionnel, et deploy/helm/uml-mcp vise Kubernetes.
2.1. Scénario : Dessiner une séquence de connexion depuis Cursor
- Ajouter le point d'accès hébergé https://uml-mcp.vercel.app/mcp à la configuration MCP, comme dans .cursor/mcp.json.
- Demander à l'assistant : « Dessine un diagramme de séquence d'un utilisateur qui se connecte via une passerelle d'API. »
- L'assistant appelle list_diagram_types, écrit la source Mermaid ou PlantUML et la vérifie avec validate_uml.
- Il appelle generate_uml_image ; le serveur fait le rendu via Kroki et renvoie un PNG en ligne avec les liens de rendu et de terrain de jeu.
- Ouvrir le lien du terrain de jeu ou le visualiseur MCP App pour retoucher la source et exporter en SVG.
Fichiers consultésREADME.mdpyproject.tomldocker-compose.yml.cursor/mcp.jsonmcp_core/tools/diagram_tools.pymcp_core/apps/diagram_viewer.pymcp_core/core/config.py
3. Aperçu
Le serveur expose cinq outils, ainsi que des ressources (uml://types, uml://examples, uml://templates), des invites et des fichiers de compétences qui enseignent chaque notation à l’assistant.
| Outil | Rôle |
|---|---|
generate_uml | Rend un diagramme ; renvoie url, playground, display_markdown et les octets en base64 quand ils sont récupérés |
generate_uml_image | La même chose, renvoyée comme ImageContent MCP pour l’affichage en ligne (PNG par défaut) |
validate_uml | Vérifie la source avant le rendu, avec des erreurs qui disent comment corriger |
list_diagram_types | Le catalogue en direct des types et de leurs formats de sortie |
generate_uml_batch | Plusieurs diagrammes en un appel (MCP_BATCH_MAX_ITEMS, 20 par défaut) |
Le README compte 46 types de diagrammes : 37 rendus par Kroki et 9 par quatre extensions fournies (graphes de forces D3 et diagrammes infonuagiques avec de vrais logos, diagrammes de pile, architecture, flux et séquences façon archify, et cartes de couches de LLM en 2D/3D).
4. Ce qui se passe lors d’un appel
generate_uml, dans mcp_core/tools/diagram_tools.py, n’est qu’une enveloppe ; le travail se fait dans generate_from_request (mcp_core/core/diagram_service.py) et run_diagram_pipeline (mcp_core/core/diagram_rendering.py).
sequenceDiagram
participant AI as Assistant (client MCP)
participant Tool as generate_uml
participant Svc as generate_from_request
participant Cache as Cache de rendu
participant Pipe as run_diagram_pipeline
participant K as Kroki
participant FB as Serveur PlantUML / mermaid.ink
AI->>Tool: diagram_type, code, output_format, theme, scale
Tool->>Tool: resolve_diagram_type (clé exacte, sinon suggestions ou sélecteur)
Tool->>Svc: DiagramRequest
Svc->>Svc: validation GenerateUMLInput, type au catalogue ?
Svc->>Cache: clé SHA-256 du type, de la source, du format, du thème, de l’échelle et du moteur
alt présent en cache
Cache-->>AI: résultat enregistré, cache_hit = true
else absent
Svc->>Pipe: rendu
alt type d’extension
Pipe->>Pipe: render_with_plugin
else type Kroki
Pipe->>K: GET /{type}/{format}/{source deflate+base64url}
K-->>Pipe: SVG ou PNG
opt échec de Kroki et repli activé
Pipe->>FB: même source
end
end
Pipe-->>Svc: résultat + attempts + render_ms
Svc->>Svc: aplatit les étiquettes SVG, matricialise si PNG demandé pour un type SVG seulement, construit display_markdown
Svc->>Cache: enregistre
Svc-->>AI: url, playground, image, display_markdown
end
Étape par étape :
- Type.
mrtr.resolve_diagram_typemet la clé en minuscules et l’accepte si elle est au catalogue. Sinon, si le client sait afficher un formulaire, le serveur demande à l’utilisateur de choisir parmi jusqu’à huit types proches (difflib, seuil 0,45) ; sinon, il renvoie une erreur avec ces suggestions. Le thème suit le même traitement. - Validation.
GenerateUMLInput(Pydantic) vérifie les arguments ; la source est limitée parMCP_MAX_CODE_LENGTH, 500 000 caractères par défaut. Un type inconnu renvoieUNSUPPORTED_DIAGRAM_TYPEavec un renvoi versuml://types. - Format. Si le client demande du PNG ou du JPEG pour un type qui ne rend que du SVG, le service rend le SVG puis le matricialise.
- Cache. Les appels qui n’écrivent pas de fichier sont mis en cache en mémoire. La clé est le SHA-256 d’un objet JSON contenant le type, la source sans espaces de bord, le format, le thème, l’échelle et l’identité du moteur. Valeurs par défaut : 300 secondes, 128 entrées, 32 Mio (
MCP_RENDER_CACHE_*). - Rendu. Les types d’extension (moteur
plugin:) sont rendus localement. Tout le reste part chez Kroki : la source est compressée avec zlib au niveau 9, encodée en base64url et placée dans l’URL{kroki}/{type}/{format}/{encodé}, qui est aussi le lien rendu à l’utilisateur. - Repli. Si Kroki échoue, les sources de la famille PlantUML sont renvoyées au serveur PlantUML et le Mermaid à mermaid.ink. Mermaid a un délai court de 8 secondes chez Kroki, et un disjoncteur évite le moteur Mermaid de Kroki pendant 60 secondes après des échecs répétés. Le repli est désactivé par défaut sur Vercel et avec un Kroki local, où les services publics ne seraient pas la bonne cible.
- Réponse. Les étiquettes HTML des SVG (
foreignObject) sont converties en texte SVG simple pour que le fichier s’affiche partout,display_markdownest construit pour la conversation, et chaque résultat porteattempts,fallback_usedetrender_ms: un échec dit quel moteur a échoué et pourquoi.
5. Exploitation
uml-mcp admin ouvre une console web sur http://127.0.0.1:8765/admin (sur un serveur déployé, /admin) : installation, réglages, activité, journaux en direct, métriques, limites de débit, outils et extensions, clients et contrôles de qualité. En local, les modifications exigent un jeton d’installation à usage unique ; avec l’authentification d’entreprise (Entra ID), la console reste en lecture seule tant que l’écriture n’est pas activée dans les réglages.

docs/assets/admin/desktop-overview.png) : santé, trafic et liste de démarrage.
6. Démarrage
Utilisez le serveur hébergé dans n’importe quel client MCP :
"uml-mcp": {
"transport": "http",
"url": "https://uml-mcp.vercel.app/mcp"
}
Ou installez-le en local et laissez la commande d’installation écrire la configuration du client :
uv tool install uml-mcp && uml-mcp setup
Demandez ensuite un diagramme à l’assistant, par exemple « Dessine un diagramme de séquence d’un utilisateur qui se connecte par une passerelle d’API. » Le dépôt fournit des configurations prêtes pour Cursor (.cursor/mcp.json), VS Code (.vscode/mcp.json), Codex, Claude Desktop et Open WebUI, et docs/installation.md couvre Docker, Helm et l’exécution depuis les sources.
7. Guide du dépôt
server.py,app.py: points d’entrée stdio et HTTP ;server.pyrésout l’objet MCP à la demande, si bien qu’un import n’écrit rien sur stdout, qui transporte le protocole stdio.mcp_core/tools/: les fonctions des outils, leurs schémas, l’aide à l’élicitation (mrtr.py), les notifications de progression des lots et l’export.mcp_core/core/: catalogue, validation, chaîne de rendu, cache de rendu, matricialisation SVG, thèmes et configuration.mcp_core/plugins/,examples/plugins/: le chargeur d’extensions et les quatre extensions fournies (D3, diagramme de pile, archify, visualiseur de LLM).mcp_core/apps/: la visionneuse MCP App (ui://uml-mcp/diagram-viewer) et le nettoyage des SVG.mcp_core/admin/,mcp_core/auth/,mcp_core/observability/: console d’administration, authentification unique et métriques.tools/kroki/: le client Kroki, l’encodage des URL, les liens d’éditeur et les aides propres à chaque langage.deploy/helm/,Dockerfile,docker-compose*.yml,vercel.json: déploiement.tests/: 127 entrées, tests unitaires et d’intégration avec des bancs MCP et HTTP.
8. Limites
- Les types rendus par Kroki dépendent d’une instance Kroki joignable, et comme la source voyage dans l’URL, les très gros diagrammes donnent des liens très longs.
- Le cache de rendu est propre à chaque processus et en mémoire : il n’est pas partagé entre instances sans serveur.
- Quand ils sont activés, les replis envoient la source du diagramme à des services tiers (serveur PlantUML, mermaid.ink) ; réglez
MCP_DIAGRAM_FALLBACK=falsesi la source est privée. - La prise en charge des MCP Apps varie selon les clients ; les autres ne reçoivent que l’image et les liens.
9. Sources
- Dépôt GitHub
- Documentation
- Paquet PyPI
mcp_core/tools/diagram_tools.pymcp_core/core/diagram_service.pymcp_core/core/diagram_rendering.pymcp_core/core/render_cache.pytools/kroki/kroki.py- Article associé
10. Pipeline CI/CD
11 workflows GitHub Actions, 26 tâches. Chaque boîte est une tâche ; les boîtes à double bord publient ou déploient, et les flèches suivent les dépendances needs.
Mermaid Déroulement du pipeline
flowchart LR
subgraph wf0["Build Package"]
direction LR
wf0_build[["build<br/>ubuntu-latest"]]
end
subgraph wf1["UML-MCP CD Pipeline"]
direction LR
wf1_prepare["prepare<br/>ubuntu-latest"]
wf1_build["build<br/>réutilise build.yml"]
wf1_deploy["deploy<br/>réutilise deploy.yml"]
end
subgraph wf2["UML-MCP CI Pipeline"]
direction LR
wf2_lint["lint<br/>ubuntu-latest"]
wf2_test[["test<br/>ubuntu-latest"]]
wf2_public_kroki["public-kroki<br/>ubuntu-latest"]
wf2_helm[["helm<br/>ubuntu-latest"]]
wf2_frontend["frontend<br/>ubuntu-latest"]
wf2_build["build<br/>réutilise build.yml"]
end
subgraph wf3["Deploy (Vercel conformance + Smithery publi…"]
direction LR
wf3_test_and_publish[["test-and-publish<br/>ubuntu-latest"]]
end
subgraph wf4["Deploy docs"]
direction LR
wf4_build[["build<br/>ubuntu-latest"]]
wf4_deploy[["deploy<br/>ubuntu-latest"]]
end
subgraph wf5["MCP 2026 Conformance"]
direction LR
wf5_protocol_conformance[["protocol-conformance<br/>ubuntu-latest"]]
end
t0(["lancement manuel · appelé par un workflow"])
t1(["push · publication · lancement manuel"])
t2(["lancement manuel · push · demande de fusion"])
t3(["appelé par un workflow · lancement manuel"])
t4(["push · lancement manuel"])
t5(["lancement manuel · demande de fusion"])
d0[("GitHub Pages")]
t0 --> wf0_build
t1 --> wf1_prepare
wf1_prepare --> wf1_build
wf1_build --> wf1_deploy
t2 --> wf2_lint
t2 --> wf2_test
t2 --> wf2_public_kroki
t2 --> wf2_helm
t2 --> wf2_frontend
t2 --> wf2_build
t3 --> wf3_test_and_publish
t4 --> wf4_build
wf4_build --> wf4_deploy
wf4_deploy -.-> d0
t5 --> wf5_protocol_conformance
| Workflow | Déclencheurs | Tâches | Publie vers |
|---|---|---|---|
Build Package.github/workflows/build.yml | lancement manuel, appelé par un workflow |
| — |
UML-MCP CD Pipeline.github/workflows/cd.yml | push, publication, lancement manuel |
| — |
UML-MCP CI Pipeline.github/workflows/ci.yml | lancement manuel, push, demande de fusion |
| — |
Deploy (Vercel conformance + Smithery publish).github/workflows/deploy.yml | appelé par un workflow, lancement manuel |
| — |
Deploy docs.github/workflows/docs.yml | push, lancement manuel |
| GitHub Pages |
MCP 2026 Conformance.github/workflows/mcp-2026-conformance.yml | lancement manuel, demande de fusion |
| — |
MCP Rig.github/workflows/mcp-rig.yml | lancement manuel, push, demande de fusion |
| — |
Build MCPB Bundle.github/workflows/mcpb.yml | lancement manuel, appelé par un workflow |
| — |
3 autres workflows ne sont pas affichés.
Généré à partir du code au commit ebaeac6.
11. Schéma de déploiement
Mermaid Schéma de déploiement
flowchart LR
repo[("Dépôt GitHub")]
ci[["GitHub Actions<br/>11 workflows"]]
image["Image Docker<br/>FROM python:3.15-slim"]
pub_GitHub_Pages[("GitHub Pages")]
pub_PyPI[("PyPI")]
host_Vercel("Vercel<br/>vercel.json")
host_Kubernetes_manifests("Kubernetes<br/>deploy/helm/uml-mcp/")
host_MkDocs_site("Site de documentation (MkDocs)<br/>mkdocs.yml")
subgraph compose["Docker Compose"]
svc_uml_mcp["uml-mcp"]
svc_kroki["kroki"]
svc_mermaid["mermaid"]
svc_blockdiag["blockdiag"]
svc_bpmn["bpmn"]
svc_excalidraw["excalidraw"]
svc_plantuml_server["plantuml-server"]
svc_mermaid_ink["mermaid-ink"]
end
repo -->|"push ou demande de fusion"| ci
ci -->|"docker build"| image
ci -->|"publie"| pub_GitHub_Pages
ci -->|"publie"| pub_PyPI
ci -.->|"configuré"| host_Vercel
ci -.->|"configuré"| host_Kubernetes_manifests
ci -.->|"configuré"| host_MkDocs_site
image -->|"docker compose up"| compose
12. Dépendances externes
82 paquets déclarés (43 à l’exécution, 39 pour le développement) dans pyproject.toml, frontend/package.json, examples/plugins/uml-mcp-plugin-d3/pyproject.toml.
Tableau des paquets 80 / 82
| Paquet | Version | Usage | Rôle | Registre |
|---|---|---|---|---|
fastapi | >=0.141.1,<0.200.0 | exécution | Cadriciel web | pypi.org |
uvicorn | >=0.54,<0.55 | exécution | Serveur d’application | pypi.org |
pydantic | >=2.14.0,<3 | exécution | Validation des données | pypi.org |
pydantic-core | >=2.50.0,<3 | exécution | Validation des données | pypi.org |
rich | ==15.0.0 | exécution | Ligne de commande | pypi.org |
typer | ==0.27.3 | exécution | Ligne de commande | pypi.org |
tqdm | >=4.66.0,<5 | exécution | Ligne de commande | pypi.org |
python-multipart | ==0.0.32 | exécution | A streaming multipart parser for Python | pypi.org |
python-dotenv | ==1.2.4 | exécution | Configuration | pypi.org |
starlette | >=1.6.0,<2.0.0 | exécution | Cadriciel web | pypi.org |
jinja2 | >=3.1.2,<4 | exécution | Gabarits | pypi.org |
aiofiles | >=25,<26 | exécution | File support for asyncio. | pypi.org |
requests | >=2.34.2,<3 | exécution | Client HTTP | pypi.org |
click | ==8.5.0 | exécution | Ligne de commande | pypi.org |
charset-normalizer | ==3.5.2 | exécution | The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet. | pypi.org |
python-dateutil | >=3,<4 | exécution | Extensions to the standard Python datetime module | pypi.org |
graphviz | >=0.21,<0.22 | exécution | Simple Python interface for Graphviz | pypi.org |
pillow | >=13,<14 | exécution | Graphisme, image et 3D | pypi.org |
fastmcp-slim | ==4.1.3 | exécution | Model Context Protocol | pypi.org |
mcp | >=2.0.0,<3.0.0 | exécution | Model Context Protocol | pypi.org |
pyjwt | >=2.10.0,<3 | exécution | Authentification et sécurité | pypi.org |
cryptography | >=44.0.0,<51 | exécution | Authentification et sécurité | pypi.org |
pyyaml | >=6.0.2,<7 | exécution | Configuration | pypi.org |
resvg-py | >=0.5.0,<1 | exécution | — | pypi.org |
opentelemetry-sdk | >=1.30.0,<2 | développement | Journalisation et observabilité | pypi.org |
opentelemetry-exporter-otlp-proto-http | >=1.30.0,<2 | développement | Journalisation et observabilité | pypi.org |
tomli | >=2.4.1,<3 | développement | Configuration | pypi.org |
pre-commit | >=4.6.0 | développement | Analyse et formatage | pypi.org |
pytest | >=9.1.1,<10 | développement | Tests | pypi.org |
pytest-cov | >=7.1.0,<8 | développement | Tests | pypi.org |
ruff | >=0.15.15 | développement | Analyse et formatage | pypi.org |
ty | >=0.0.69 | développement | An extremely fast Python type checker, written in Rust. | pypi.org |
pytest-asyncio | >=1.4.0,<2 | développement | Tests | pypi.org |
mypy | >=2.0.0,<3 | développement | Analyse et formatage | pypi.org |
mkdocs | >=1.6.0 | développement | Project documentation with Markdown. | pypi.org |
mkdocs-material | >=9.7.6 | développement | Documentation that simply works | pypi.org |
pymdown-extensions | >=11.0 | développement | Extension pack for Python Markdown. | pypi.org |
mkdocs-git-revision-date-localized-plugin | >=1.5.3 | développement | Mkdocs plugin that enables displaying the localized date of the last git modification of a markdown file. | pypi.org |
mkdocs-minify-plugin | >=0.8.0 | développement | An MkDocs plugin to minify HTML, JS or CSS files prior to being written to disk | pypi.org |
mkdocs-glightbox | >=0.4.0 | développement | MkDocs plugin supports image lightbox with GLightbox. | pypi.org |
mkdocstrings | >=0.30.0 | développement | Automatic documentation from sources, for MkDocs. | pypi.org |
axe-playwright-python | >=0.1.4 | développement | Tests | pypi.org |
playwright | >=1.55.0,<2 | développement | Tests | pypi.org |
@radix-ui/react-dialog | ^1.1.23 | exécution | — | npmjs.com |
@radix-ui/react-dropdown-menu | ^2.1.24 | exécution | — | npmjs.com |
@radix-ui/react-label | ^2.1.15 | exécution | — | npmjs.com |
@radix-ui/react-select | ^2.3.7 | exécution | — | npmjs.com |
@radix-ui/react-separator | ^1.1.15 | exécution | — | npmjs.com |
@radix-ui/react-slot | ^1.3.3 | exécution | — | npmjs.com |
@radix-ui/react-switch | ^1.3.7 | exécution | — | npmjs.com |
@radix-ui/react-tabs | ^1.1.21 | exécution | — | npmjs.com |
@radix-ui/react-tooltip | ^1.2.16 | exécution | — | npmjs.com |
class-variance-authority | ^0.7.1 | exécution | Class Variance Authority 🧬 | npmjs.com |
clsx | ^2.1.1 | exécution | A tiny (239B) utility for constructing className strings conditionally. | npmjs.com |
lucide-react | ^1.48.0 | exécution | A Lucide icon library package for React applications. | npmjs.com |
react | ^19.3.0 | exécution | Interface utilisateur | npmjs.com |
react-dom | ^19.3.0 | exécution | Interface utilisateur | npmjs.com |
react-router-dom | ^7.18.4 | exécution | Interface utilisateur | npmjs.com |
recharts | ^3.10.1 | exécution | Graphiques | npmjs.com |
sonner | ^2.0.8 | exécution | An opinionated toast component for React. | npmjs.com |
tailwind-merge | ^3.7.0 | exécution | Interface utilisateur | npmjs.com |
@eslint/js | ^10.0.1 | développement | Analyse et formatage | npmjs.com |
@tailwindcss/vite | ^4.3.3 | développement | Interface utilisateur | npmjs.com |
@testing-library/jest-dom | ^7.0.1 | développement | Tests | npmjs.com |
@testing-library/react | ^16.3.3 | développement | Tests | npmjs.com |
@testing-library/user-event | ^14.6.7 | développement | Tests | npmjs.com |
@types/node | ^26.6.2 | développement | Typage | npmjs.com |
@types/react | ^19.3.0 | développement | Typage | npmjs.com |
@types/react-dom | ^19.3.0 | développement | Typage | npmjs.com |
@vitejs/plugin-react | ^6.1.1 | développement | The default Vite plugin for React projects | npmjs.com |
eslint | ^10.11.0 | développement | Analyse et formatage | npmjs.com |
eslint-plugin-react-hooks | ^7.1.1 | développement | Analyse et formatage | npmjs.com |
globals | ^17.12.0 | développement | Global identifiers from different JavaScript environments | npmjs.com |
jsdom | ^30.1.1 | développement | A JavaScript implementation of many web standards | npmjs.com |
tailwindcss | ^4.3.3 | développement | Interface utilisateur | npmjs.com |
tw-animate-css | ^1.4.0 | développement | TailwindCSS v4.0 compatible replacement for tailwindcss-animate. | npmjs.com |
typescript | ^6.0.3 | développement | Typage | npmjs.com |
typescript-7 | npm:typescript@^7.0.2 | développement | — | npmjs.com |
typescript-eslint | ^8.70.1 | développement | Analyse et formatage | npmjs.com |
vite | ^8.3.1 | développement | Outils de build | npmjs.com |
2 autres paquets figurent dans les manifestes.
13. Glossaire
Dépôt
Les fichiers source, la configuration et l’historique versionné d’un projet.
README
Le document d’entrée du dépôt, qui présente généralement son rôle et son installation.
Dépendance
Une bibliothèque, un outil ou un service nécessaire à la compilation ou à l’exécution d’un composant.
API
Une interface par laquelle des composants logiciels échangent des requêtes et des résultats. Une API n’utilise pas nécessairement HTTP.
HTTP
Un protocole de requête et réponse utilisé par les navigateurs et services web. Une requête comprend une méthode, un chemin, des en-têtes et parfois un corps.
Session
Un état conservé entre plusieurs requêtes, souvent pour suivre un utilisateur connecté. L’authentification et les permissions restent des vérifications distinctes.
Conteneur
Un environnement de processus isolé créé à partir d’une image. Les données persistantes nécessitent un stockage hors de son système de fichiers temporaire.
Docker Compose
Un format de configuration et un outil pour lancer des conteneurs, réseaux et volumes associés. L’ordre de démarrage ne garantit pas qu’un service est prêt.
Port publié
Un port de l’hôte associé au port d’un service dans un conteneur. Sa publication peut rendre le service accessible hors du réseau des conteneurs.
Interface en ligne de commande
Une interface textuelle où les commandes et arguments choisissent les opérations. Les codes de retour permettent aux scripts de détecter un succès ou un échec.
Intégration continue
Des vérifications automatiques lors des changements de source, comme la compilation, les tests et l’analyse statique. Elles ne couvrent que ce qu’elles vérifient.
MCP
Model Context Protocol : un protocole permettant à un client IA de découvrir et appeler des outils, et de lire les ressources d’un serveur.
Mermaid
Un langage de diagrammes textuel. Les nœuds et liens décrivent un modèle ; le diagramme n’exécute pas le projet.
GPU
Un processeur conçu pour les calculs parallèles, dont le rendu graphique et de nombreuses opérations numériques.
Maillage
Une surface représentée par des sommets et des éléments reliés, souvent des triangles. Sa géométrie est distincte de son matériau ou de sa texture.
Backend
Une implémentation derrière une interface commune. Selon le contexte, il peut s’agir d’un service côté serveur ou d’une implémentation graphique, d’entrée ou de stockage.
14. Références
- antoinebou12. (2026, 5 novembre). uml-mcp. [Software repository] github.com.
- antoinebou12. (2026, 5 novembre). uml-mcp: README. [Repository documentation] github.com.
- antoinebou12. (2026, 5 novembre). server.py. [Source file] github.com.
- antoinebou12. (2026, 5 novembre). mcp_core/core/server.py. [Source file] github.com.
- antoinebou12. (2026, 5 novembre). README.md. [Source file] github.com.
- Boucher, A. (2026, 2 septembre). uml-mcp — diagrammes UML depuis le chat via MCP. [Project article] antoineboucher.info.
- Boucher, A. (2026, 23 octobre). uml-mcp : D’un appel MCP à un diagramme. [Project article] antoineboucher.info.
- Boucher, A. (2026, 2 septembre). uml-mcp. [Project article] antoineboucher.info.
Les sources sans date de publication indiquent la date de leur dernière vérification, le 5 novembre 2026. Les liens des fichiers conservent la révision inspectée lorsqu’elle est disponible.