endiagram/mcp

endiagram/mcp

от dushyant30suthar
MCP сервер для детерминированного структурного анализа систем на основе теории графов. Помогает инженерам проверять структуру, инварианты и живость систем. Каждый результат подтверждён математическ...

@endiagram/mcp

MCP server for EN Diagram — deterministic structural analysis powered by graph theory. Every result is backed by a named mathematical theorem. No AI inside the computation.

Installation

Run directly:

npx @endiagram/mcp

Or install globally:

npm install -g @endiagram/mcp

Connect

Claude Code

claude mcp add endiagram npx @endiagram/mcp

Claude Desktop

Add to your claude_desktop_config.json:

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

Cursor

Add to .cursor/mcp.json in your project root:

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

HTTP (zero install)

Any MCP client that supports HTTP transport:

https://api.endiagram.com/mcp

Smithery

smithery mcp add dushyant30suthar/endiagram

Environment Variables

Variable Default Description
EN_API_URL https://api.endiagram.com API endpoint for the EN Diagram service

Tools

compose

Как части объединяются или как часть может быть самостоятельной? Режим слияния (source_a + source_b + links): укажите, какие сущности в A совпадают с сущностями в B; объединенный граф связывается через строковое равенство общих имен. Режим извлечения (source + subsystem): вытащите именованную подсистему как самостоятельную EN с граничными входами/выходами, акторами и местоположениями. Допустимые имена подсистем берутся из поля `subsystems` структуры, сначала вызовите structure для источника, чтобы их найти. Смотрите инструкции сервера для синтаксиса языка EN.

Как части объединяются или как часть может быть самостоятельной? Режим слияния (source_a + source_b + links): укажите, какие сущности в A совпадают с сущностями в B; объединенный граф связывается через строковое равенство общих имен. Режим извлечения (source + subsystem): вытащите именованную подсистему как самостоятельную EN с граничными входами/выходами, акторами и местоположениями. Допустимые имена подсистем берутся из поля `subsystems` структуры, сначала вызовите structure для источника, чтобы их найти. Смотрите инструкции сервера для синтаксиса языка EN.

Параметры

  • source_astring

    EN source code or path to .en/.txt file for the first system

  • source_bstring

    EN source code or path to .en/.txt file for the second system

  • linksstring

    Entity identifications, one per line. Format: `a.<entity name>=b.<entity name>` (A's entity is the same as B's entity). `#` starts a comment. Example: `a.user session=b.authenticated session`.

  • sourcestring

    EN source code for extract mode

  • subsystemstring

    Subsystem name to extract. Valid names come from structure's `subsystems` field — call structure on the source first to discover them.

equivalent

Две системы одинаковы или что изменится, если поменять эту? Режим сравнения (source_a + source_b): структурные различия, расстояние редактирования, спектральная эквивалентность. isCospectral=true означает идентичную структуру графа с точностью до перестановки меток — топологически одинаково, несмотря на разные имена, акторы или расположения. Режим эволюции (source + patch): сухой прогон изменения, показывает diff плюс новые/потерянные узлы-мосты. У патча три типа директив — обычное EN-утверждение добавляет действие; строка, начинающаяся с `-` (и не содержащая `do:`), удаляет именованное действие; утверждение, чьё имя действия совпадает с существующим, заменяет исходное. Подробнее о синтаксисе языка EN — в инструкции сервера.

Две системы одинаковы или что изменится, если поменять эту? Режим сравнения (source_a + source_b): структурные различия, расстояние редактирования, спектральная эквивалентность. isCospectral=true означает идентичную структуру графа с точностью до перестановки меток — топологически одинаково, несмотря на разные имена, акторы или расположения. Режим эволюции (source + patch): сухой прогон изменения, показывает diff плюс новые/потерянные узлы-мосты. У патча три типа директив — обычное EN-утверждение добавляет действие; строка, начинающаяся с `-` (и не содержащая `do:`), удаляет именованное действие; утверждение, чьё имя действия совпадает с существующим, заменяет исходное. Подробнее о синтаксисе языка EN — в инструкции сервера.

Параметры

  • source_astring

    EN source code or path to .en/.txt file for the first system

  • source_bstring

    EN source code or path to .en/.txt file for the second system

  • sourcestring

    EN source code for evolve mode

  • patchstring

    EN patch for evolve mode. Three directive types: plain EN statement (`actor do: X needs: Y yields: Z at: W`) adds action X; a line starting with `-` (and not containing `do:`) removes the named action; a new statement with an existing action name replaces the original. Multiple directives allowed, one per line.

invariant

Всегда верно: автоматические выводы и проверки по запросу. Автоматические выходные данные: conservationLaws (суммы взвешенных сущностей постоянны при выполнении), sustainableCycles (T-инварианты - последовательности действий, возвращающие в исходное состояние), depletableSets (группы сущностей, одновременное истощение которых необратимо), behavioral.deficiency (0 означает, что структура полностью определяет динамику), behavioral.isReversible, behavioral.hasUniqueEquilibrium. По запросу через `rules`: закодируйте доменно-специфичные утверждения и проверьте их на графе - так проверяете то, что топология сама не видит (предшествование, покрытие, границы центральности, устойчивость). Смотрите параметр rules для поддерживаемых форм предложений.

Всегда верно: автоматические выводы и проверки по запросу. Автоматические выходные данные: conservationLaws (суммы взвешенных сущностей постоянны при выполнении), sustainableCycles (T-инварианты - последовательности действий, возвращающие в исходное состояние), depletableSets (группы сущностей, одновременное истощение которых необратимо), behavioral.deficiency (0 означает, что структура полностью определяет динамику), behavioral.isReversible, behavioral.hasUniqueEquilibrium. По запросу через `rules`: закодируйте доменно-специфичные утверждения и проверьте их на графе - так проверяете то, что топология сама не видит (предшествование, покрытие, границы центральности, устойчивость). Смотрите параметр rules для поддерживаемых форм предложений.

Параметры

  • sourcestringобязательный

    EN source code, or path to .en/.txt file

  • rulesstring

    Custom structural rules, one per line. Four supported sentence shapes (regex-matched): (1) `no bridge that is also hub` — flags nodes that are both a bridge and a hub. (2) `every path from X to Y passes through at least one of [A, B, C]` — encodes precedence/coverage; use to check `A must happen before Y produces Z` by rewriting as `every path from Z's input to Z passes through [A]`. (3) `no node with centrality above 0.5` — flags over-central nodes (replace 0.5 with any threshold). (4) `removing any single node disconnects at most N others` — connectivity robustness check. Unrecognized rules return satisfied:false with an explanation listing these shapes.

live

Может ли возникнуть deadlock? Может ли произойти переполнение сущностей? isStructurallyLive означает, что каждый сифон содержит ловушку — структурный deadlock невозможен. uncoveredSiphons — это группы сущностей, которые могут необратимо опустошаться, при этом затрагиваются акторы и локации. isStructurallyBounded означает, что ни одна сущность не может накапливаться без ограничений. unboundedCycles — это последовательности действий, которые могут вызвать переполнение. Смотрите инструкции сервера по синтаксису EN языка.

Может ли возникнуть deadlock? Может ли произойти переполнение сущностей? isStructurallyLive означает, что каждый сифон содержит ловушку — структурный deadlock невозможен. uncoveredSiphons — это группы сущностей, которые могут необратимо опустошаться, при этом затрагиваются акторы и локации. isStructurallyBounded означает, что ни одна сущность не может накапливаться без ограничений. unboundedCycles — это последовательности действий, которые могут вызвать переполнение. Смотрите инструкции сервера по синтаксису EN языка.

Параметры

  • sourcestringобязательный

    EN source code, or path to .en/.txt file

reachable

Может ли X достичь Y? Сначала проверяет по направленному потоку данных; если не находит, переключается на ненаправленный. `from` и `to` принимают имена сущностей или действий (разрешаются относительно программы). Path показывает каждый шаг с актором и локацией. locationCrossings подсчитывает пересечения границ. defense_nodes проверяет, покрывают ли охранники все пути; coverage.fullCoverage=false означает, что существуют незащищённые маршруты. Смотрите инструкции сервера для синтаксиса на английском.

Может ли X достичь Y? Сначала проверяет по направленному потоку данных; если не находит, переключается на ненаправленный. `from` и `to` принимают имена сущностей или действий (разрешаются относительно программы). Path показывает каждый шаг с актором и локацией. locationCrossings подсчитывает пересечения границ. defense_nodes проверяет, покрывают ли охранники все пути; coverage.fullCoverage=false означает, что существуют незащищённые маршруты. Смотрите инструкции сервера для синтаксиса на английском.

Параметры

  • sourcestringобязательный

    EN source code

  • fromstringобязательный

    Starting node name

  • tostringобязательный

    Target node name

  • defense_nodesstring

    Comma-separated guard nodes to check coverage

render

Диаграмма в формате SVG или PNG. Вызывать только когда пользователь явно просит визуализировать. Готовое изображение передаётся пользователю, а не внедряется в контекст модели. Синтаксис для английского языка смотрите в инструкции сервера.

Диаграмма в формате SVG или PNG. Вызывать только когда пользователь явно просит визуализировать. Готовое изображение передаётся пользователю, а не внедряется в контекст модели. Синтаксис для английского языка смотрите в инструкции сервера.

Параметры

  • sourcestringобязательный

    EN source code, or path to .en/.txt file

  • themestring

    Color theme. Curated presets (each with light + dark variants; pair with `isDark`): `Editorial` (stone paper + rust focal, adapted from cathrynlavery/diagram-design), `Primer` (GitHub design system — blue accent, data-vis roles), `Carbon` (IBM Carbon — sharp 0px corners, corporate blue). Or seed-derived palettes generated on the fly from `color`. Pass 'dark'/'light' for the default variant. Overridden by `color` if provided.

  • isDarkstring

    true or false. Selects the dark or light variant of a named preset. If omitted, defaults to dark unless theme=light.

  • typestring

    Output format: png (default) or svg. PNG is rasterized server-side via Batik.

  • qualitystring

    Output quality: small, mid, or max

  • viewstring

    Group by: actors (partition by actor) or locations (partition by location). Default auto-detects topology.

  • structure_layersstring

    Bitmask for structure overlays. Bits: 1=subsystems, 2=pipelines, 4=cycles, 8=forks, 16=joins, 32=hubs, 64=deadlock, 128=overflow. Default 255 (all on). Pass 0 to hide all.

  • colorstring

    Seed color hex (#RRGGBB) to generate a custom theme. Overrides theme parameter. One color generates the entire palette.

  • directionstring

    Layout direction: LR (left-to-right) or TB (top-to-bottom). Default auto-detects from condensation DAG aspect ratio.

  • outputstring

    File path to save the rendered image

structure

Что это за система? Возвращает форму (Pipeline, Fork-Join, DAG, Star, Cycle, Tree, Complete и т.д.), этапы с ролями, узлы-мосты, циклы, параллелизм, критический путь, дерево доминаторов, минимальные разрезы, подсистемы, интерфейсные узлы, акторы (кто что делает, энтропия нагрузки), локации (где выполняется работа, пересечения границ). Рычаги: node=X возвращает центральность для конкретного узла (betweenness, closeness, eigenvector). detect_findings=true помечает именованные структурные риски: unguarded-sink (стоки, достижимые только через pipeline-действия, без JOIN/HUB-шлюзов), single-cut-path (пары источник-сток только с одним вершинно-непересекающимся путём), multi-cut-path (пути с избыточной защитой, min-cut > 1). Смотрите инструкции сервера для синтаксиса языка EN.

Что это за система? Возвращает форму (Pipeline, Fork-Join, DAG, Star, Cycle, Tree, Complete и т.д.), этапы с ролями, узлы-мосты, циклы, параллелизм, критический путь, дерево доминаторов, минимальные разрезы, подсистемы, интерфейсные узлы, акторы (кто что делает, энтропия нагрузки), локации (где выполняется работа, пересечения границ). Рычаги: node=X возвращает центральность для конкретного узла (betweenness, closeness, eigenvector). detect_findings=true помечает именованные структурные риски: unguarded-sink (стоки, достижимые только через pipeline-действия, без JOIN/HUB-шлюзов), single-cut-path (пары источник-сток только с одним вершинно-непересекающимся путём), multi-cut-path (пути с избыточной защитой, min-cut > 1). Смотрите инструкции сервера для синтаксиса языка EN.

Параметры

  • sourcestringобязательный

    EN source code, or path to .en/.txt file

  • nodestring

    Node name. When provided, returns per-node centrality (betweenness, closeness, eigenvector) for this specific node instead of the overview.

  • detect_findingsstring

    Set to 'true' to flag named structural findings. Possible values: unguarded-sink, single-cut-path, multi-cut-path.

Другие проверенные MCP-сервера

inspektor-gadget/ig-mcp-server

inspektor-gadget/ig-mcp-server

официальный

MCP сервер, связывающий eBPF-обсервабельность ядра с AI-агентами. Собирает телеметрию DNS, TCP, процессов и syscalls для отладки Kubernetes. LLM проводит data-driven root cause analysis на живых да...

Go26
posthog/mcp

posthog/mcp

официальный

MCP сервер для интеграции с PostHog — платформой продуктовой аналитики. Позволяет запрашивать данные о событиях, сессиях и пользователях через ИИ-ассистентов (Claude, Cursor, VS Code). Полезен продакт-менеджерам и разработчикам для быстрого анализа.

TypeScript151
webdriverio/mcp

webdriverio/mcp

официальный

Управляйте браузерами и мобильными приложениями через WebDriverIO с MCP-сервером. Автоматизируйте Chrome, Firefox, Edge, Safari, iOS и Android: навигация, клики, скриншоты. Оптимален для тестирования.

TypeScript33
datalayer/jupyter-mcp-server

datalayer/jupyter-mcp-server

официальный

Подключает AI к Jupyter Notebooks в реальном времени: создание, выполнение и редактирование ячеек, переключение между ноутбуками, вывод графиков. Оптимальное решение для автоматизации работы с данн...

Python1216
flux159/mcp-server-kubernetes

flux159/mcp-server-kubernetes

MCP сервер для подключения к Kubernetes и управления кластером через kubectl и Helm. Выполняет операции с ресурсами, масштабирование, деплой, диагностику и port-forwarding. Полезен разработчикам и ...

TypeScript1460
webscraping-ai/webscraping-ai-mcp-server

webscraping-ai/webscraping-ai-mcp-server

официальный

MCP сервер для веб-скрапинга через WebScraping.AI — извлекает текст, HTML и структурированные данные, задаёт вопросы по содержимому страниц. Поддерживает JavaScript-рендеринг, CSS-селекторы, выбор прокси и эмуляцию устройств. Идеален для интеграции с LLM при сборе информации с сайтов.

JavaScript44
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин