Aller au contenu
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.

Serveur MCPAPIDocker
Python 3.12+FastMCPFastAPIKrokiPlantUMLMermaidD2MCP AppsVercelHelm
  • Mis à jour

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.

La visionneuse MCP App : quatre diagrammes issus d’un appel par lot, puis un nouveau rendu 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 :

Une réponse de uml-mcp dans une conversation : un diagramme de séquence Mermaid entre un client et un serveur, avec des liens vers le fichier rendu et vers l’éditeur Mermaid
Dans n’importe quel client : l’image en ligne, puis des liens vers le fichier rendu et un éditeur modifiable.

Petit diagramme de flux : vous décrivez, Cursor, uml-mcp MCP, diagramme UML
La version courte : vous décrivez le diagramme, l’assistant de l’éditeur appelle uml-mcp, et le diagramme revient dans la 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.

Diagramme de cas d’utilisation de uml-mcp : Rendre un diagramme; Valider une source; Rendre un lot de diagrammes; Retoucher dans le visualiseur; Héberger le serveur soi-mêmeuml-mcpRendre un diagrammeValider une sourceRendre un lot de diagrammesRetoucher dans le visualiseurHéberger le serveur soi-mêmeDéveloppeur«système»Client MCP (chat IA)«système»Kroki / PlantUML
Acteurs à gauche (personnes) et à droite (systèmes externes) ; chaque ovale est un cas d’utilisation appuyé par les fichiers cités ci-dessous.
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

  1. Ajouter le point d'accès hébergé https://uml-mcp.vercel.app/mcp à la configuration MCP, comme dans .cursor/mcp.json.
  2. Demander à l'assistant : « Dessine un diagramme de séquence d'un utilisateur qui se connecte via une passerelle d'API. »
  3. L'assistant appelle list_diagram_types, écrit la source Mermaid ou PlantUML et la vérifie avec validate_uml.
  4. 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.
  5. 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.

OutilRôle
generate_umlRend un diagramme ; renvoie url, playground, display_markdown et les octets en base64 quand ils sont récupérés
generate_uml_imageLa même chose, renvoyée comme ImageContent MCP pour l’affichage en ligne (PNG par défaut)
validate_umlVérifie la source avant le rendu, avec des erreurs qui disent comment corriger
list_diagram_typesLe catalogue en direct des types et de leurs formats de sortie
generate_uml_batchPlusieurs 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 :

  1. Type. mrtr.resolve_diagram_type met 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.
  2. Validation. GenerateUMLInput (Pydantic) vérifie les arguments ; la source est limitée par MCP_MAX_CODE_LENGTH, 500 000 caractères par défaut. Un type inconnu renvoie UNSUPPORTED_DIAGRAM_TYPE avec un renvoi vers uml://types.
  3. 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.
  4. 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_*).
  5. 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.
  6. 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.
  7. Réponse. Les étiquettes HTML des SVG (foreignObject) sont converties en texte SVG simple pour que le fichier s’affiche partout, display_markdown est construit pour la conversation, et chaque résultat porte attempts, fallback_used et render_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.

Vue d’ensemble de la console d’administration uml-mcp : appels, taux d’erreur, latence p95, appels refusés, temps de fonctionnement, graphique du trafic et liste de démarrage
La console d’administration locale (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.py ré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=false si 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

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
Workflows, déclencheurs, tâches et cibles
WorkflowDéclencheursTâchesPublie vers
Build Package
.github/workflows/build.yml
lancement manuel, appelé par un workflow
  • build ubuntu-latest
    Checkout code · Install uv · Install dependencies · Build package · Assert wheel layout · Upload build artifacts
—
UML-MCP CD Pipeline
.github/workflows/cd.yml
push, publication, lancement manuel
  • prepare ubuntu-latest
    Prepare
  • build ← prepare
  • deploy ← build
—
UML-MCP CI Pipeline
.github/workflows/ci.yml
lancement manuel, push, demande de fusion
  • lint ubuntu-latest
    Checkout code · Install uv · Install dependencies · Ruff check and format · Type check · Lint MCP definitions and config (uml-mcp lint)
  • test ubuntu-latest
    Checkout code · Install uv · Install dependencies · Install Helm (chart render tests) · Install Chromium (Playwright e2e tests) · Wait for Kroki and its companions
  • public-kroki ubuntu-latest
    Checkout code · Install uv · Install dependencies · Real journeys through kroki.io
  • helm ubuntu-latest
    Checkout code · Install Helm · Lint and render the chart (none / jwt / entra-proxy)
  • frontend ubuntu-latest
    Checkout code · Set up Node · Install · Lint, typecheck, unit tests · Build and check committed assets are current
  • build
    mêmes étapes que dans UML-MCP CD Pipeline
—
Deploy (Vercel conformance + Smithery publish)
.github/workflows/deploy.yml
appelé par un workflow, lancement manuel
  • test-and-publish ubuntu-latest
    Checkout repository · Set up Node.js · Wait for Vercel deployment · Smoke admin email + password login · Validate MCP server card · Smoke Mermaid PNG + tools/list contract
—
Deploy docs
.github/workflows/docs.yml
push, lancement manuel
  • build ubuntu-latest
    Checkout code · Install Cairo / image libs for Material social plugin · Install uv · Install dependencies · Build documentation · Upload GitHub Pages artifact
  • deploy ← build ubuntu-latest
    Deploy to GitHub Pages
GitHub Pages
MCP 2026 Conformance
.github/workflows/mcp-2026-conformance.yml
lancement manuel, demande de fusion
  • protocol-conformance ubuntu-latest
    Checkout code · Install uv · Install dependencies · Set up Node.js · Start UML-MCP in Vercel-compatible stateless mode · Run full MCP 2026-07-28 server conformance suite
—
MCP Rig
.github/workflows/mcp-rig.yml
lancement manuel, push, demande de fusion
  • mcp-rig ubuntu-latest
    Checkout code · Install uv · Install dependencies · Protocol checks and tool lint · Run MCP Rig suites · Upload JUnit report
—
Build MCPB Bundle
.github/workflows/mcpb.yml
lancement manuel, appelé par un workflow
  • mcpb ubuntu-latest
    Checkout code · Install uv · Set up Node · Install dependencies · Validate manifest · Build bundle
—

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
Dépendances externes
PaquetVersionUsageRôleRegistre
fastapi>=0.141.1,<0.200.0exécutionCadriciel webpypi.org
uvicorn>=0.54,<0.55exécutionServeur d’applicationpypi.org
pydantic>=2.14.0,<3exécutionValidation des donnéespypi.org
pydantic-core>=2.50.0,<3exécutionValidation des donnéespypi.org
rich==15.0.0exécutionLigne de commandepypi.org
typer==0.27.3exécutionLigne de commandepypi.org
tqdm>=4.66.0,<5exécutionLigne de commandepypi.org
python-multipart==0.0.32exécutionA streaming multipart parser for Pythonpypi.org
python-dotenv==1.2.4exécutionConfigurationpypi.org
starlette>=1.6.0,<2.0.0exécutionCadriciel webpypi.org
jinja2>=3.1.2,<4exécutionGabaritspypi.org
aiofiles>=25,<26exécutionFile support for asyncio.pypi.org
requests>=2.34.2,<3exécutionClient HTTPpypi.org
click==8.5.0exécutionLigne de commandepypi.org
charset-normalizer==3.5.2exécutionThe Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.pypi.org
python-dateutil>=3,<4exécutionExtensions to the standard Python datetime modulepypi.org
graphviz>=0.21,<0.22exécutionSimple Python interface for Graphvizpypi.org
pillow>=13,<14exécutionGraphisme, image et 3Dpypi.org
fastmcp-slim==4.1.3exécutionModel Context Protocolpypi.org
mcp>=2.0.0,<3.0.0exécutionModel Context Protocolpypi.org
pyjwt>=2.10.0,<3exécutionAuthentification et sécuritépypi.org
cryptography>=44.0.0,<51exécutionAuthentification et sécuritépypi.org
pyyaml>=6.0.2,<7exécutionConfigurationpypi.org
resvg-py>=0.5.0,<1exécution—pypi.org
opentelemetry-sdk>=1.30.0,<2développementJournalisation et observabilitépypi.org
opentelemetry-exporter-otlp-proto-http>=1.30.0,<2développementJournalisation et observabilitépypi.org
tomli>=2.4.1,<3développementConfigurationpypi.org
pre-commit>=4.6.0développementAnalyse et formatagepypi.org
pytest>=9.1.1,<10développementTestspypi.org
pytest-cov>=7.1.0,<8développementTestspypi.org
ruff>=0.15.15développementAnalyse et formatagepypi.org
ty>=0.0.69développementAn extremely fast Python type checker, written in Rust.pypi.org
pytest-asyncio>=1.4.0,<2développementTestspypi.org
mypy>=2.0.0,<3développementAnalyse et formatagepypi.org
mkdocs>=1.6.0développementProject documentation with Markdown.pypi.org
mkdocs-material>=9.7.6développementDocumentation that simply workspypi.org
pymdown-extensions>=11.0développementExtension pack for Python Markdown.pypi.org
mkdocs-git-revision-date-localized-plugin>=1.5.3développementMkdocs plugin that enables displaying the localized date of the last git modification of a markdown file.pypi.org
mkdocs-minify-plugin>=0.8.0développementAn MkDocs plugin to minify HTML, JS or CSS files prior to being written to diskpypi.org
mkdocs-glightbox>=0.4.0développementMkDocs plugin supports image lightbox with GLightbox.pypi.org
mkdocstrings>=0.30.0développementAutomatic documentation from sources, for MkDocs.pypi.org
axe-playwright-python>=0.1.4développementTestspypi.org
playwright>=1.55.0,<2développementTestspypi.org
@radix-ui/react-dialog^1.1.23exécution—npmjs.com
@radix-ui/react-dropdown-menu^2.1.24exécution—npmjs.com
@radix-ui/react-label^2.1.15exécution—npmjs.com
@radix-ui/react-select^2.3.7exécution—npmjs.com
@radix-ui/react-separator^1.1.15exécution—npmjs.com
@radix-ui/react-slot^1.3.3exécution—npmjs.com
@radix-ui/react-switch^1.3.7exécution—npmjs.com
@radix-ui/react-tabs^1.1.21exécution—npmjs.com
@radix-ui/react-tooltip^1.2.16exécution—npmjs.com
class-variance-authority^0.7.1exécutionClass Variance Authority 🧬npmjs.com
clsx^2.1.1exécutionA tiny (239B) utility for constructing className strings conditionally.npmjs.com
lucide-react^1.48.0exécutionA Lucide icon library package for React applications.npmjs.com
react^19.3.0exécutionInterface utilisateurnpmjs.com
react-dom^19.3.0exécutionInterface utilisateurnpmjs.com
react-router-dom^7.18.4exécutionInterface utilisateurnpmjs.com
recharts^3.10.1exécutionGraphiquesnpmjs.com
sonner^2.0.8exécutionAn opinionated toast component for React.npmjs.com
tailwind-merge^3.7.0exécutionInterface utilisateurnpmjs.com
@eslint/js^10.0.1développementAnalyse et formatagenpmjs.com
@tailwindcss/vite^4.3.3développementInterface utilisateurnpmjs.com
@testing-library/jest-dom^7.0.1développementTestsnpmjs.com
@testing-library/react^16.3.3développementTestsnpmjs.com
@testing-library/user-event^14.6.7développementTestsnpmjs.com
@types/node^26.6.2développementTypagenpmjs.com
@types/react^19.3.0développementTypagenpmjs.com
@types/react-dom^19.3.0développementTypagenpmjs.com
@vitejs/plugin-react^6.1.1développementThe default Vite plugin for React projectsnpmjs.com
eslint^10.11.0développementAnalyse et formatagenpmjs.com
eslint-plugin-react-hooks^7.1.1développementAnalyse et formatagenpmjs.com
globals^17.12.0développementGlobal identifiers from different JavaScript environmentsnpmjs.com
jsdom^30.1.1développementA JavaScript implementation of many web standardsnpmjs.com
tailwindcss^4.3.3développementInterface utilisateurnpmjs.com
tw-animate-css^1.4.0développementTailwindCSS v4.0 compatible replacement for tailwindcss-animate.npmjs.com
typescript^6.0.3développementTypagenpmjs.com
typescript-7npm:typescript@^7.0.2développement—npmjs.com
typescript-eslint^8.70.1développementAnalyse et formatagenpmjs.com
vite^8.3.1développementOutils de buildnpmjs.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

  1. antoinebou12. (2026, 5 novembre). uml-mcp. [Software repository] github.com.
  2. antoinebou12. (2026, 5 novembre). uml-mcp: README. [Repository documentation] github.com.
  3. antoinebou12. (2026, 5 novembre). server.py. [Source file] github.com.
  4. antoinebou12. (2026, 5 novembre). mcp_core/core/server.py. [Source file] github.com.
  5. antoinebou12. (2026, 5 novembre). README.md. [Source file] github.com.
  6. Boucher, A. (2026, 2 septembre). uml-mcp — diagrammes UML depuis le chat via MCP. [Project article] antoineboucher.info.
  7. Boucher, A. (2026, 23 octobre). uml-mcp : D’un appel MCP à un diagramme. [Project article] antoineboucher.info.
  8. 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.