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.

Параметры
  • linksstring

    Отождествления сущностей, по одному в строке. Формат: a.<имя сущности>=b.<имя сущности> (сущность A совпадает с сущностью B). # начинает комментарий. Пример: a.user session=b.authenticated session.

  • sourcestring

    Исходный код EN для режима извлечения

  • source_astring

    EN исходный код или путь к файлу .en/.txt для первой системы

  • source_bstring

    Не совсем понял запрос. Что вы имеете в виду под «второй системой»? Если речь о каком-то проекте, репозитории или файле, уточните, пожалуйста, название или контекст. Также уточните, что именно нужно: найти исходный код на английском или дать путь к файлу .en/.txt?

  • subsystemstring

    Имя подсистемы для извлечения. Допустимые имена берутся из поля subsystems в structure: сначала вызовите structure на источнике, чтобы их узнать.

equivalent

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

Параметры
  • patchstring

    EN-патч для режима evolve. Три типа директив: обычный EN-оператор (actor do: X needs: Y yields: Z at: W) добавляет действие X; строка, начинающаяся с - (и не содержащая do:), удаляет указанное действие; новый оператор с существующим именем действия заменяет исходный. Допускается несколько директив, по одной на строку.

  • sourcestring

    Исходный код EN для режима evolve

  • source_astring

    EN исходный код или путь к файлу .en/.txt для первой системы

  • source_bstring

    Не совсем понял запрос. Что вы имеете в виду под «второй системой»? Если речь о каком-то проекте, репозитории или файле, уточните, пожалуйста, название или контекст. Также уточните, что именно нужно: найти исходный код на английском или дать путь к файлу .en/.txt?

invariant

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

Параметры
  • rulesstring

    Пользовательские структурные правила, по одному на строку. Поддерживаются четыре формы предложений (распознаются регулярным выражением): (1) no bridge that is also hub: отмечает узлы, которые одновременно и мост, и хаб. (2) every path from X to Y passes through at least one of [A, B, C]: задаёт порядок и покрытие; используется для проверки условия A must happen before Y produces Z, для этого выражение переписывается как every path from Z's input to Z passes through [A]. (3) no node with centrality above 0.5: отмечает чрезмерно центральные узлы (замените 0.5 на любой порог). (4) removing any single node disconnects at most N others: проверка устойчивости связности. Нераспознанные правила возвращают satisfied:false с пояснением, в котором перечислены эти формы.

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

    Исходный код на английском, или путь к файлу .en/.txt

live

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

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

    Исходный код на английском, или путь к файлу .en/.txt

reachable

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

Параметры
  • defense_nodesstring

    Guard-узлы через запятую для проверки покрытия

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

    Имя начального узла

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

    Исходный код EN.

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

    Имя целевого узла

render

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

Параметры
  • colorstring

    Шестнадцатеричный код базового цвета (#RRGGBB) для создания пользовательской темы. Переопределяет параметр темы. Один цвет генерирует всю палитру.

  • directionstring

    Направление раскладки: LR (слева направо) или TB (сверху вниз). По умолчанию автоматически определяется по соотношению сторон конденсационного DAG.

  • isDarkstring

    true или false. Выбирает тёмный или светлый вариант именованного пресета. Если не указано, по умолчанию используется тёмный, если только не задано theme=light.

  • outputstring

    Путь к файлу для сохранения отрендеренного изображения.

  • qualitystring

    Качество вывода: маленькое, среднее или максимальное

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

    Исходный код на английском, или путь к файлу .en/.txt

  • structure_layersstring

    Битовая маска структурных оверлеев. Биты: 1=подсистемы, 2=конвейеры, 4=циклы, 8=развилки, 16=слияния, 32=хабы, 64=взаимоблокировка, 128=переполнение. По умолчанию 255 (все включены). Передайте 0, чтобы скрыть все.

  • themestring

    Цветовая тема. Подобранные пресеты (у каждого есть светлый и тёмный варианты; используются в паре с isDark): Editorial (каменная бумага + ржавый акцент, адаптирован из cathrynlavery/diagram-design), Primer (дизайн-система GitHub, синий акцент, роли для визуализации данных), Carbon (IBM Carbon, острые углы 0px, корпортивный синий). Или палитры, генерируемые на лету из color. Передайте 'dark'/'light' для варианта по умолчанию. Переопределяется color, если он указан.

  • typestring

    Формат вывода: png (по умолчанию) или svg. PNG растеризуется на стороне сервера через Batik.

  • viewstring

    Группировать по: акторам (разбиение по актору) или локациям (разбиение по локации). По умолчанию топология определяется автоматически. Wait, let me double-check the spelling carefully. I keep making typos. Let me write it out slowly: Г - р - у - п - п - и - р - о - в - а - т - ь по: а - к - т - о - р - а - м (р - а - з - б - и - е - н - и - е п - о а - к - т - о - р - у) и - л - и л - о - к - а - ц - и - я - м (р - а - з - б - и - е - н - и - е п - о л - о - к - а - ц - и - и) . П - о у - м - о - л - ч - а - н - и - ю т - о - п - о - л - о - г - и - я о - п - р - е - д - е - л - я - е - т - с - я а - в - т - о - м - а - т - и - ч - е - с - к - и. Yes, that's correct. Actually, "локация" - let me double check the dative singular: "локация" -> stem "локациj-" (because -ция is pronounced -цыjа). In dative singular, it's "локации". So "по локации" is correct. But wait, "локациям" - dative plural is "локациям" (with "я" after ц? In Russian, after ц, the letter "и" or "ы" depends on stress. For nouns ending in -ция, like "акция", the dative plural is "акциям" (not "акцыям"). So "локациям" is correct. Yes. So the translation is: "Группировать по: акторам (разбиение по актору) или локациям (разбиение по локации). По умолчанию топология определяется автоматически." Wait, I wrote "актору" in one place and "актору" in another. Let me check: "по актору" - dative singular of "актор" (masculine) is "актору". Yes. "по локации" - dative singular of "локация" (feminine) is "локации". Yes. OK, I'm confident. Let me output with the correctГруппировать по: акторам (разбиение по актору) или локациям (разбиение по локации). По умолчанию топология определяется автоматически. Wait, I just realized I wrote "Группировать" but it should be "Группировать" - no, I'm overthinking. Группировать is correct. Let me spell the first letter: capital Г, then руппировать? No: Г-р-у-п-п-и-р-о-в-а-т-ь. Yes, "Группировать". And "локациям" - I wrote "локациям" but with я after ц. Let me check: "локация" - in the plural dative, the ending is "-ям" after a consonant + и? Actually, for feminine nouns ending in -ция, the dative plural is -циям, e.g., "акция" -> "акциям". So "локациям" is correct. Yes. OKГруппировать по: акторам (разбиение по ак тору) или локациям (разбиение по локации). По умолчанию топология определяется автоматически. Hmm, I notice I keep making typos. Let me just right it carefully in one go: "Группировать по: акторам (разбиение по актору) или локациям (разбиение по локации). По умолчанию топология определяется автоматически." Let me verify each word one more time: 1. Группировать - yes. 2. по - yes. 3. акторам - yes. 4. разбиение - yes. 5. актору - yes. 6. локациям - yes. 7. разбиение - yes. 8. локации - yes. 9. По умолчанию - yes. 10. топология - yes. 11. определяется - yes. 12. автоматически - yes. OK, I'm confident. The output is: "Группировать по: акторам (разбиение по актору) или локациям (разбиение по локации). По умолчанию топология определяется автоматически." Let me write it out without any self-dГруппировать по: акторам (разбиение по актору) или локациям (разбиение по локации). По умолчанию топология определяется автоматически.

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.

Параметры
  • detect_findingsstring

    Задайте значение 'true', чтобы отмечать именованные структурные находки. Возможные значения: unguarded-sink, single-cut-path, multi-cut-path.

  • nodestring

    Имя узла. При указании возвращает центральность для этого конкретного узла (betweenness, closeness, eigenvector) вместо обзорной информации.

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

    Исходный код на английском, или путь к файлу .en/.txt

0.3.16основная
0.3.15
0.3.14
0.3.13
0.3.12
0.3.11
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.38
0.2.37
0.2.36
0.2.35
0.2.34
0.2.33
0.2.32
0.2.31
0.2.30
0.2.29
0.2.28
0.2.27
0.2.26
0.2.25
0.2.24
0.2.23
0.2.22
0.2.21
0.2.20
0.2.19
0.2.18
0.2.17
0.2.16
0.2.15
0.2.14
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.17
0.1.16
0.1.15
0.1.14
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0

Выберите клиент, чтобы установить endiagram/mcp:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "endiagram-mcp-0yowri4xbg": {
      "args": [
        "@endiagram/mcp"
      ],
      "command": "npx"
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "endiagram-mcp-0yowri4xbg": {
      "args": [
        "@endiagram/mcp"
      ],
      "command": "npx"
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "endiagram-mcp-0yowri4xbg": {
      "type": "stdio",
      "args": [
        "@endiagram/mcp"
      ],
      "command": "npx"
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"endiagram-mcp-0yowri4xbg\",\"type\":\"stdio\",\"args\":[\"@endiagram/mcp\"],\"command\":\"npx\"}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "endiagram-mcp-0yowri4xbg": {
      "args": [
        "@endiagram/mcp"
      ],
      "command": "npx"
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add endiagram-mcp-0yowri4xbg -- npx @endiagram/mcp

Либо через JSON-конфиг:

claude mcp add-json endiagram-mcp-0yowri4xbg "{\"args\":[\"@endiagram/mcp\"],\"command\":\"npx\"}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add endiagram-mcp-0yowri4xbg -- npx @endiagram/mcp

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.endiagram-mcp-0yowri4xbg]
command = "npx"
args = ["@endiagram/mcp"]
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите endiagram/mcp, а в поле команды запуска — строку ниже:
npx @endiagram/mcp

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "endiagram-mcp-0yowri4xbg": {
      "args": [
        "@endiagram/mcp"
      ],
      "command": "npx"
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "endiagram-mcp-0yowri4xbg": {
      "args": [
        "@endiagram/mcp"
      ],
      "command": "npx",
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например endiagram-mcp-0yowri4xbg.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: endiagram-mcp-0yowri4xbg
    command: npx
    args:
      - "@endiagram/mcp"
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "endiagram-mcp-0yowri4xbg": {
      "args": [
        "@endiagram/mcp"
      ],
      "command": "npx"
    }
  }
}

Похожие MCP-сервера

depwire/depwire

depwire/depwire

от depwire

Depwire – MCP сервер для AI-ассистентов, строящий детерминированный граф зависимостей кода на 16 языках. Позволяет симулировать удаление символов, проверять безопасность и оценивать архитектурное здоровье. Все 23 инструмента работают локально, без отправки кода.

TypeScript⭐ 64
Disentinel/grafema

Disentinel/grafema

от disentinel

Grafema - MCP сервер, который строит единый граф из вашего кода, инфраструктуры и знаний, позволяя запрашивать структуру системы с помощью 30+ MCP инструментов. Полезен разработчикам и AI-агентам д...

Rust⭐ 35
hoklims/stacksfinder-mcp

hoklims/stacksfinder-mcp

от hoklims

MCP-сервер с детерминированными рекомендациями по стеку. Анализирует 80+ технологий по 6 метрикам, сравнивает и предлагает оптимальный стек под проект. Бесплатные инструменты и Pro-доступ с аудитом...

TypeScript⭐ 9
abrinsmead/mindpilot-mcp

abrinsmead/mindpilot-mcp

от abrinsmead

MCP сервер Mindpilot рисует диаграммы архитектуры и кода по запросу твоего агента. Удобен для быстрого анализа легаси и сложных потоков — данные не уходят в облако, можно экспортировать в векторный формат.

TypeScript⭐ 90
rdanieli/tentra-mcp

rdanieli/tentra-mcp

от rdanieli

MCP-сервер для AI-агентов: создает постоянный граф кода и архитектурные диаграммы. Работает в Cursor, Claude Code, Codex и Windsurf. Сокращает токены на 99.4% (символьные запросы вместо полного перечтения). Включает 36 инструментов для архитектуры, анализа кода, графического поиска и контрактов. ...

TypeScript⭐ 6
Archerkattri/mathlas

Archerkattri/mathlas

от archerkattri

MCP сервер для математических вычислений - даёт ИИ надёжный поиск теорем, проверку численных и формальных утверждений, идентификацию констант и последовательностей. Без API ключа, возвращает проверяемые данные. Полезен разработчикам, строящим агентные пайплайны.

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

Лука Никитин