Skip to main content
Glama

@endiagram/mcp

Servidor MCP para EN Diagram — análisis estructural determinista basado en teoría de grafos. Cada resultado está respaldado por un teorema matemático con nombre. Sin IA en el cálculo.

Instalación

Ejecutar directamente:

npx @endiagram/mcp

O instalar globalmente:

npm install -g @endiagram/mcp

Conectar

Claude Code

claude mcp add endiagram npx @endiagram/mcp

Claude Desktop

Añadir a tu claude_desktop_config.json:

{
  "mcpServers": {
    "endiagram": {
      "command": "npx",
      "args": ["@endiagram/mcp"]
    }
  }
}

Cursor

Añadir a .cursor/mcp.json en la raíz de tu proyecto:

{
  "mcpServers": {
    "endiagram": {
      "command": "npx",
      "args": ["@endiagram/mcp"]
    }
  }
}

HTTP (sin instalación)

Cualquier cliente MCP que soporte transporte HTTP:

https://api.endiagram.com/mcp

Smithery

smithery mcp add dushyant30suthar/endiagram

Variables de entorno

Variable

Predeterminado

Descripción

EN_API_URL

https://api.endiagram.com

Endpoint de API para el servicio EN Diagram

Herramientas

Seis preguntas sobre cualquier sistema, además de una herramienta de renderizado. Cada herramienta toma source (código EN o ruta de archivo .en/.txt). Los nombres de las herramientas son abreviaturas, no especificaciones — lee cada descripción antes de llamar; compose y equivalent están basadas en modos, no son analizadores generales.

Herramienta

Qué responde

Palancas

structure

¿Qué es este sistema? Forma, etapas, puentes, ciclos, ruta crítica, árbol dominador, cortes mínimos, subsistemas, actores, ubicaciones.

detect_findings=true marca riesgos (sumidero sin protección, ruta de corte único, ruta de corte múltiple); node=X devuelve centralidad por nodo (intermediación, cercanía, vector propio).

invariant

¿Qué es siempre cierto? Leyes de conservación, T-invariantes (ciclos sostenibles), conjuntos agotables, deficiencia, reversibilidad.

rules (una por línea) verifica afirmaciones personalizadas. Cuatro formas soportadas: no bridge that is also hub · every path from X to Y passes through at least one of [A,B,C] (precedencia) · no node with centrality above N · removing any single node disconnects at most N others.

live

¿Puede bloquearse? ¿Pueden desbordarse las entidades? Sifones, trampas, ciclos no acotados, vivacidad estructural y acotamiento.

reachable

¿Puede X alcanzar a Y? Ruta, distancia, cruces de límites. from/to aceptan nombres de entidades o acciones.

defense_nodes=a,b,c verifica si las guardas cubren cada ruta.

equivalent

¿Son dos sistemas iguales, o qué cambia si cambio este?

Modo comparación (source_a+source_b): distancia de edición + cospectralidad espectral. Modo evolución (source+patch): EN plano añade; - name elimina; mismo nombre reemplaza.

compose

¿Cómo se combinan las partes (fusión) o cómo se mantiene una parte sola (extracción)?

Fusión: source_a+source_b+links (a.entity=b.entity por línea). Extracción: source+subsystem (los nombres provienen de structure.subsystems).

render

Diagrama SVG o PNG. Solo llamar cuando el usuario pida visualizar.

Temas: Editorial, Primer, Carbon (cada uno ± isDark) o derivado de semilla desde color=#RRGGBB. Máscara de bits structure_layers (1=subsistemas, 2=pipelines, 4=ciclos, 8=bifurcaciones, 16=uniones, 32=hubs, 64=bloqueo, 128=desbordamiento).

Sintaxis EN

Una sentencia por línea:

actor do: action needs: input1, input2 yields: output1, output2

Los nombres compartidos entre yields y needs crean conexiones automáticamente:

customer do: place order needs: menu yields: order
kitchen do: prepare food needs: order yields: meal
waiter do: deliver needs: meal yields: served customer

Modelado

Mismo nombre = misma cosa. Pon todas las entradas requeridas en una lista needs: (AND). Da a dos acciones el mismo nombre de yield para ofrecer alternativas (OR). Secuencia = una acción consumiendo el yield de otra. Re-yield de recursos con estado para mantenerlos persistentes; los datos de un solo uso permanecen consumidos. Modela a la granularidad atómica real — divide solo cuando las piezas puedan ser accedidas independientemente.

Aprende más en endiagram.com.

Telemetría

@endiagram/mcp genera un ID de instalación aleatorio en la primera ejecución, almacenado en ~/.endiagram/install-id (modo 0600). Se envía con cada solicitud como el encabezado HTTP X-Endiagram-Install-Id para que podamos correlacionar solicitudes de la misma instalación para depurar problemas que la señal por IP por sí sola no puede rastrear (redes móviles, VPNs, CGNAT, todos colapsan o cambian IPs).

No se envía código fuente, ni rutas de archivo, ni variables de entorno, ni PII. El ID de instalación es un UUIDv4 opaco aleatorio generado localmente.

Un aviso de primera ejecución se imprime en stderr (nunca en stdout — stdout es el canal JSON-RPC de MCP) con la divulgación y las instrucciones de exclusión voluntaria. El aviso se dispara una vez por instalación y nunca más.

Exclusión voluntaria (Opt-out)

Cualquiera de estos tres métodos deshabilita el ID de instalación:

  1. Establece ENDIAGRAM_TELEMETRY=off como variable de entorno (también acepta 0, false, no).

  2. Crea un archivo en ~/.endiagram/telemetry que contenga la palabra off.

  3. Elimina ~/.endiagram/install-id. (Se generará uno nuevo en la siguiente ejecución a menos que también se establezca la opción 1 o 2).

Cuando cualquiera de estos está activo, el encabezado X-Endiagram-Install-Id no se envía en absoluto — el servidor recurre a su HMAC cid por IP para la correlación, lo cual funciona bien para el rastreo a corto plazo por sesión.

Política de privacidad completa: endiagram.com/privacy

Licencia

MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dushyant30suthar/endiagram-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server