mcp-mermaid-validator
Servidor MCP: Validador de sirena
Un servidor de Protocolo de Contexto de Modelo que valida y renderiza diagramas de sirena . Este servidor permite a los LLM validar y renderizar diagramas de sirena.
Uso
Inicio rápido
Puede configurar su cliente MCP para utilizar Mermaid Validator agregándolo a su archivo de servidores mcp:
{
"mcpServers": {
"mermaid-validator": {
"command": "npx",
"args": [
"-y",
"@rtuin/mcp-mermaid-validator@latest"
]
}
}
}Related MCP server: Mermaid MCP Server
Arquitectura
Arquitectura de alto nivel
Este proyecto está estructurado como una sencilla aplicación TypeScript Node.js que:
Aplicación principal : un servicio Node.js que valida los diagramas de Mermaid y devuelve la salida PNG renderizada
Integración con MCP : utiliza el SDK del protocolo de contexto de modelo para exponer la funcionalidad a clientes compatibles con MCP
Integración de Mermaid CLI : aprovecha la herramienta Mermaid CLI para realizar la validación y representación de diagramas
Estructura del código
mcp-mermaid-validator/
├── dist/ # Compiled JavaScript output
│ └── main.js # Compiled main application
├── src/ # TypeScript source code
│ └── main.ts # Main application entry point
├── node_modules/ # Dependencies
├── package.json # Project dependencies and scripts
├── package-lock.json # Dependency lock file
├── tsconfig.json # TypeScript configuration
├── eslint.config.js # ESLint configuration
├── .prettierrc # Prettier configuration
└── README.md # Project documentationFuncionalidad del componente
Servidor MCP (Componente principal)
La funcionalidad principal se implementa en src/main.ts . Este componente:
Crea una instancia de servidor MCP
Registra una herramienta
validateMermaidque acepta la sintaxis del diagrama MermaidUtiliza la CLI de Mermaid para validar y renderizar diagramas
Devuelve los resultados de la validación y el PNG renderizado (si es válido)
Maneja casos de error con mensajes de error apropiados
Flujo de datos
Entrada : Sintaxis del diagrama de sirena como cadena
Procesando :
El diagrama se pasa a la CLI de Mermaid a través de la entrada estándar.
La CLI valida la sintaxis y genera un PNG si es válido
La salida y los errores se capturan desde stdout/stderr
Producción :
Éxito: Confirmación de texto + PNG renderizado como imagen codificada en base64
Error: Mensaje de error con detalles sobre el error de validación
Dependencias
Bibliotecas externas
@modelcontextprotocol/sdk : SDK para implementar el Protocolo de Contexto de Modelo
@mermaid-js/mermaid-cli : herramienta CLI para validar y renderizar diagramas de Mermaid
zod : Biblioteca de validación de esquemas para TypeScript
Dependencias de desarrollo
typescript : compilador de TypeScript
eslint : utilidad de pelusa
Más bonito : Formato de código
Especificación API
Herramienta validateMermaid
Propósito : Valida un diagrama de sirena y devuelve el PNG renderizado si es válido
Parámetros :
diagram(cadena): La sintaxis del diagrama de sirena para validar
Valor de retorno :
Éxito:
{ content: [ { type: "text", text: "Mermaid diagram is valid" }, { type: "image", data: string, // Base64-encoded PNG mimeType: "image/png" } ] }Falla:
{ content: [ { type: "text", text: "Mermaid diagram is invalid" }, { type: "text", text: string // Error message }, { type: "text", text: string // Detailed error output (if available) } ] }
Decisiones técnicas
Integración MCP : el proyecto utiliza el Protocolo de Contexto de Modelo para estandarizar la interfaz de las herramientas de IA, lo que permite una integración perfecta con clientes compatibles.
Formato de salida PNG : la implementación utiliza PNG como formato de salida predeterminado para garantizar una mejor compatibilidad con la mayoría de los clientes MCP, particularmente Cursor, que no admite SVG.
Enfoque de proceso secundario : la implementación utiliza procesos secundarios de Node.js para interactuar con la CLI de Mermaid, que proporciona:
Aislamiento entre la aplicación principal y el proceso de renderizado
Capacidad de capturar información detallada de errores
Manejo adecuado del pipeline de renderizado
Estrategia de manejo de errores : La implementación utiliza una estructura try-catch anidada para:
Distinguir entre errores de validación (sintaxis de diagrama no válida) y errores del sistema
Proporcionar información detallada sobre errores para ayudar a los usuarios a corregir sus diagramas
Asegúrese de que el servicio permanezca estable incluso al procesar entradas no válidas
Estructura de proyecto simple : el proyecto utiliza una estructura de proyecto TypeScript sencilla para:
Fácil mantenimiento y comprensión.
Gestión directa de dependencias
Proceso de construcción simplificado
Construcción y ejecución
La aplicación se puede crear y ejecutar utilizando scripts npm:
# Install dependencies
npm install
# Build the application
npm run build
# Run locally (for development)
npx @modelcontextprotocol/inspector node dist/main.js
# Format code
npm run format
# Lint code
npm run lint
# Watch for changes (development)
npm run watchLa aplicación se ejecuta como un servidor MCP que se comunica a través de entrada/salida estándar, lo que la hace adecuada para la integración con clientes compatibles con MCP.
Liberar
Para lanzar una nueva versión, siga estos pasos en orden:
npm run buildnpm run bumpnpm run changelognpm publish --access public
Available Tools
1 toolvalidateMermaidC
Validates a Mermaid diagram and returns the rendered image (PNG or SVG) if valid
| Name | Required | Description | Default |
|---|---|---|---|
| diagram | Yes | ||
| format | No | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description fails to disclose what happens on invalid input (e.g., error messages), side effects, or rate limits. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff. Efficient for its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema; description mentions 'rendered image' but not format details (binary vs base64) or validation success/failure behavior. Lacks completeness for a validation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%; tool description does not explain parameters beyond schema fields. 'diagram' and 'format' remain underdocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb-resource: 'Validates a Mermaid diagram' and specifies output ('rendered image'). Lacks sibling differentiation but no siblings exist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use or when not to, no alternatives mentioned. Implied usage only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.7.0- Changed
validateMermaid1 field changed- added
Input schema / properties / formatAdded value: +{ + "default": "png", + "enum": [ + "svg", + "png" + ], + "type": "string" +}
1 tool update
v1.0.0- First observed
validateMermaid
TDQS
Scored across 1 tool
With only one tool, there is no possibility for confusion. The tool's purpose is clear and distinct.
A single tool cannot be inconsistent. The name 'validateMermaid' follows a clear verb_noun pattern.
A single validation tool perfectly matches the server's focused purpose. Adding more tools would be unnecessary.
The tool fully covers the domain: it validates Mermaid diagrams and returns the rendered image. No obvious gaps exist.
Maintenance
Related MCP Connectors
Render, verify, describe, and safely edit Mermaid diagrams through MCP.
A Model Context Protocol server for Wix AI tools
Model Context Protocol server for Studex tools, notifications, and profile integrations
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseBqualityCmaintenanceA Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.1158 npm235MIT
- AlicenseNot gradedqualityNot gradedmaintenanceA server that implements the Model Context Protocol (MCP), providing an interface for LLM applications to generate mermaid.js visualizations and diagrams.MIT
- FlicenseNot gradedqualityDmaintenanceA powerful Model Context Protocol server that automatically generates Mermaid diagrams from code and provides SVG beautification features.1-
- AlicenseAqualityBmaintenanceA Model Context Protocol server that converts Mermaid diagram code into various image formats (PNG, JPG, SVG, PDF) with theme customization options for AI clients.39MIT