Servidor MCP

Diagrams MCP

io.github.mskry/diagrams-mcp-server
Herramientas para desarrolladores No disponible MCP 2025-11-25

Qué hace este MCP

Browses infrastructure diagram nodes and renders cloud architecture, flowchart, sequence, Mermaid, PlantUML, and related diagrams.

find_equivalent
Find cross-provider equivalents for a diagram node by infrastructure role. Given a node name (e.g. 'EC2', 'Lambda', 'ComputeEngine'), returns the infrastructure role category it belongs to and the equivalent nodes from other providers. If a node name is ambiguous, use list_categories to see all mapped roles and pick a provider-specific node name. Args: node: Node class name to look up (case-insensitive, e.g. 'EC2', 'lambda'). target_provider: Optional provider to filter equivalents to (e.g. 'gcp', 'azure', 'aws'). If omitted, all equivalents across all other providers are returned. Returns: A dict with keys: category (str): Infrastructure role category name. description (str): Human-readable description of the category. source (dict): The matched node with keys node, provider, service, import. equivalents (list[dict]): Equivalent nodes, each with keys node, provider, service, import.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['node'], 'properties': {'node': {'type': 'string'}, 'target_provider': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'additionalProperties': True}
list_categories
List all infrastructure role categories with their mapped nodes. Use this to browse all available equivalence mappings, or to disambiguate node names when find_equivalent reports ambiguity. Returns a list of category dicts, each with: category (str): Category identifier (e.g. 'virtual_machine'). description (str): Human-readable description. providers (list[str]): Providers covered by this category. nodes (dict): Mapping of provider → list of node names in that category.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'description': 'Generic wrapper for non-object return types.', 'x-fastmcp-wrap-result': True}
list_nodes
List available node classes for a provider.service combo. Args: provider: Provider name (e.g. 'aws', 'gcp', 'k8s'). service: Service category (e.g. 'compute', 'database', 'network'). Returns: List of nodes with keys: name, import, alias_of (optional).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['provider', 'service'], 'properties': {'service': {'type': 'string'}, 'provider': {'type': 'string'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'description': 'Generic wrapper for non-object return types.', 'x-fastmcp-wrap-result': True}
list_providers
List all available diagram providers (aws, gcp, azure, k8s, onprem, etc.). Use list_providers -> list_services -> list_nodes to browse available node types for a specific provider.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Generic wrapper for non-object return types.', 'x-fastmcp-wrap-result': True}
list_services
List service categories for a provider (e.g. 'aws' -> ['compute', 'database', ...]). Args: provider: Provider name from list_providers (e.g. 'aws', 'gcp', 'k8s').
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['provider'], 'properties': {'provider': {'type': 'string'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Generic wrapper for non-object return types.', 'x-fastmcp-wrap-result': True}
render_diagram
Render a mingrammer/diagrams Python snippet to PNG and return the image. The code must be a complete Python script using `from diagrams import ...` imports and a `with Diagram(...)` context manager block. Use search_nodes to verify node names and get correct import paths before writing code. Read the diagrams://reference/diagram, diagrams://reference/edge, and diagrams://reference/cluster resources for constructor options and usage examples. Args: code: Full Python code using the diagrams library. filename: Output filename without extension. format: Output format — ``"png"`` (default), ``"svg"``, or ``"pdf"``. download_link: If True, return a temporary download URL path (/images/{token}) that expires after 15 minutes; if False, return inline image bytes. Defaults to True (URL) — set ``DIAGRAMS_INLINE_DEFAULT=true`` on the server to flip the default. SVG/PDF and PNGs larger than the inline limit always use a download link.
Solo lectura
Esquema de entrada
{'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string'}, 'format': {'enum': ['png', 'svg', 'pdf'], 'type': 'string', 'default': 'png'}, 'filename': {'type': 'string', 'default': 'diagram'}, 'download_link': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
render_mermaid
Render a Mermaid diagram definition and return the image with metadata. The definition should be valid Mermaid syntax (e.g. flowchart, sequence, class, ER, state, or Gantt diagram). Returns a list of content blocks: the rendered image plus a JSON text block with metadata including a mermaid.live edit link for opening the diagram in a browser editor. Args: definition: Mermaid diagram definition text. filename: Output filename without extension. format: Output format — ``"png"`` (default), ``"svg"``, or ``"pdf"``. download_link: If True, return a temporary download URL path (/images/{token}) that expires after 15 minutes; if False, return inline image bytes. Defaults to True (URL) — set ``DIAGRAMS_INLINE_DEFAULT=true`` on the server to flip the default. SVG/PDF and PNGs larger than the inline limit always use a download link.
Solo lectura
Esquema de entrada
{'type': 'object', 'required': ['definition'], 'properties': {'format': {'enum': ['png', 'svg', 'pdf'], 'type': 'string', 'default': 'png'}, 'filename': {'type': 'string', 'default': 'diagram'}, 'definition': {'type': 'string'}, 'download_link': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
render_plantuml
Render a PlantUML diagram definition and return the image. The definition should be valid PlantUML syntax wrapped in @startuml/@enduml (sequence, class, component, activity, state, deployment, etc.). Args: definition: PlantUML diagram definition text. filename: Output filename without extension. format: Output format — ``"png"`` (default) or ``"svg"``. PDF is not supported (requires Batik/FOP). download_link: If True, return a temporary download URL path (/images/{token}) that expires after 15 minutes; if False, return inline image bytes. Defaults to True (URL) — set ``DIAGRAMS_INLINE_DEFAULT=true`` on the server to flip the default. SVG and PNGs larger than the inline limit always use a download link.
Solo lectura
Esquema de entrada
{'type': 'object', 'required': ['definition'], 'properties': {'format': {'enum': ['png', 'svg', 'pdf'], 'type': 'string', 'default': 'png'}, 'filename': {'type': 'string', 'default': 'diagram'}, 'definition': {'type': 'string'}, 'download_link': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
search_nodes
Search for diagram nodes by keyword across all providers and services. For targeted browsing when you know the provider, use list_providers -> list_services -> list_nodes instead. Args: query: Search term (case-insensitive substring match). Returns: List of matching nodes with keys: node, provider, service, import, alias_of (optional). Sorted by relevance: exact match first, then prefix, then substring.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'description': 'Generic wrapper for non-object return types.', 'x-fastmcp-wrap-result': True}
Añadido
list_categories
17 de September de 2026 a las 12:45
Añadido
find_equivalent
17 de September de 2026 a las 12:45
Añadido
render_plantuml
17 de September de 2026 a las 12:45
Añadido
render_mermaid
17 de September de 2026 a las 12:45
Añadido
search_nodes
17 de September de 2026 a las 12:45
Añadido
list_nodes
17 de September de 2026 a las 12:45
Añadido
list_services
17 de September de 2026 a las 12:45
Añadido
list_providers
17 de September de 2026 a las 12:45
Añadido
render_diagram
17 de September de 2026 a las 12:45