Skip to main content
Glama

@endiagram/mcp

MCP-сервер для EN Diagram — детерминированного структурного анализа на основе теории графов. Каждый результат подкреплен именованной математической теоремой. Никакого ИИ в вычислениях.

Установка

Запуск напрямую:

npx @endiagram/mcp

Или глобальная установка:

npm install -g @endiagram/mcp

Подключение

Claude Code

claude mcp add endiagram npx @endiagram/mcp

Claude Desktop

Добавьте в ваш claude_desktop_config.json:

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

Cursor

Добавьте в .cursor/mcp.json в корне вашего проекта:

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

HTTP (без установки)

Любой MCP-клиент, поддерживающий транспорт HTTP:

https://api.endiagram.com/mcp

Smithery

smithery mcp add dushyant30suthar/endiagram

Переменные окружения

Переменная

По умолчанию

Описание

EN_API_URL

https://api.endiagram.com

API-эндпоинт для сервиса EN Diagram

Инструменты

Шесть вопросов о любой системе плюс инструмент визуализации. Каждый инструмент принимает source (код EN или путь к файлу .en/.txt). Названия инструментов — это сокращения, а не спецификации; перед вызовом прочитайте описание каждого; compose и equivalent основаны на режимах, а не являются общими анализаторами.

Инструмент

На что отвечает

Рычаги

structure

Что это за система? Форма, этапы, мосты, циклы, критический путь, дерево доминаторов, минимальные разрезы, подсистемы, акторы, локации.

detect_findings=true помечает риски (unguarded-sink, single-cut-path, multi-cut-path); node=X возвращает центральность для узла (betweenness, closeness, eigenvector).

invariant

Что верно всегда? Законы сохранения, T-инварианты (устойчивые циклы), истощаемые множества, дефицитность, обратимость.

rules (по одной на строку) проверяет пользовательские утверждения. Поддерживаются четыре формы: no bridge that is also hub · every path from X to Y passes through at least one of [A,B,C] (приоритет) · no node with centrality above N · removing any single node disconnects at most N others.

live

Возможна ли блокировка (deadlock)? Могут ли сущности переполниться? Сифоны, ловушки, неограниченные циклы, структурная живость и ограниченность.

reachable

Может ли X достичь Y? Путь, расстояние, пересечение границ. from/to принимают имена сущностей или действий.

defense_nodes=a,b,c проверяет, покрывают ли защитные узлы каждый путь.

equivalent

Являются ли две системы одинаковыми или что изменится, если я изменю эту?

Режим сравнения (source_a+source_b): расстояние редактирования + спектральная коспектральность. Режим эволюции (source+patch): обычные добавления EN; - name удаляет; замена по тому же имени.

compose

Как части объединяются (merge) или как часть существует отдельно (extract)?

Merge: source_a+source_b+links (a.entity=b.entity по одной на строку). Extract: source+subsystem (имена берутся из structure.subsystems).

render

Диаграмма в формате SVG или PNG. Вызывайте только тогда, когда пользователь просит визуализировать.

Темы: Editorial, Primer, Carbon (каждая ± isDark) или на основе seed из color=#RRGGBB. structure_layers битовая маска (1=subsystems, 2=pipelines, 4=cycles, 8=forks, 16=joins, 32=hubs, 64=deadlock, 128=overflow).

Синтаксис EN

Одна инструкция на строку:

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

Общие имена между yields и needs создают соединения автоматически:

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

Моделирование

Одинаковое имя = одинаковая сущность. Помещайте все необходимые входные данные в один список needs: (И). Дайте двум действиям одинаковое имя yield, чтобы предложить альтернативы (ИЛИ). Последовательность = одно действие потребляет результат другого. Повторно выдавайте (re-yield) сохраняемые ресурсы, чтобы они оставались доступными; одноразовые данные считаются потребленными. Моделируйте на реальном атомарном уровне — разделяйте только тогда, когда к частям можно получить доступ независимо.

Узнайте больше на endiagram.com.

Телеметрия

@endiagram/mcp генерирует случайный ID установки при первом запуске, который сохраняется в ~/.endiagram/install-id (режим 0600). Он отправляется с каждым запросом в виде HTTP-заголовка X-Endiagram-Install-Id, чтобы мы могли сопоставлять запросы от одной и той же установки для отладки проблем, которые невозможно отследить только по IP (мобильные сети, VPN, CGNAT — все они скрывают или меняют IP).

Никакой исходный код, пути к файлам, переменные окружения и персональные данные не отправляются. ID установки — это случайный непрозрачный UUIDv4, сгенерированный локально.

Уведомление о первом запуске выводится в stderr (никогда в stdout — stdout является каналом MCP JSON-RPC) с раскрытием информации и инструкциями по отказу. Уведомление срабатывает один раз при установке и больше никогда.

Отказ от участия

Любой из этих трех методов отключает ID установки:

  1. Установите ENDIAGRAM_TELEMETRY=off в качестве переменной окружения (также принимает 0, false, no).

  2. Создайте файл ~/.endiagram/telemetry, содержащий слово off.

  3. Удалите ~/.endiagram/install-id. (Новый будет сгенерирован при следующем запуске, если не установлены опции 1 или 2).

Когда любой из этих методов активен, заголовок X-Endiagram-Install-Id вообще не отправляется — сервер переключается на свой HMAC cid на основе IP для корреляции, что хорошо работает для краткосрочного отслеживания в рамках сессии.

Полная политика конфиденциальности: endiagram.com/privacy

Лицензия

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