MCP · skill · CLI

Gantt-диаграммы от вашего ИИ-агента

Менеджер просит ассистента: «сделай Gantt по релизу 2.0». Агент собирает задачи из Jira, GitLab и вики, вызывает create_gantt и возвращает две ссылки: для редактирования и для просмотра.

Шифрование на стороне агента

Ключ создаётся в MCP-процессе и живёт только в ссылке. Сервер видит шифротекст.

План за один вызов

Эпики, зависимости, вехи, задачи без дат. Если что-то не так, ошибка придёт с key задачи.

Повторная синхронизация

update_gantt с теми же key обновляет план и не плодит дубли.

Hermes Agent

Добавьте сервер в ~/.hermes/config.yaml и выполните /reload-mcp. Нужен Node.js 18+. Инструменты появятся как mcp_ganttbang_create_gantt и т.д.

config.yaml
# ~/.hermes/config.yaml
mcp_servers:
  ganttbang:
    command: "npx"
    args: ["-y", "--package=https://gantt.codelab.vc/downloads/ganttbang-mcp.tgz", "ganttbang-mcp"]
    env:
      GANTTBANG_URL: "https://gantt.codelab.vc"
    tools:
      include: [create_gantt, get_gantt, update_gantt]

Потом поставьте skill. В нём описано, как переводить задачи из Jira, GitLab и вики в план и кому какую ссылку отдавать:

skill
mkdir -p ~/.hermes/skills/ganttbang
curl -fsSL https://gantt.codelab.vc/skills/ganttbang/SKILL.md -o ~/.hermes/skills/ganttbang/SKILL.md
Hermes в контейнере без Node: запуск через Docker

Соберите образ из репозитория: docker build -f packages/mcp/Dockerfile -t ganttbang-mcp .

config.yaml
mcp_servers:
  ganttbang:
    command: "docker"
    args: ["run", "-i", "--rm", "-e", "GANTTBANG_URL", "ganttbang-mcp"]
    env:
      GANTTBANG_URL: "https://gantt.codelab.vc"

Корпоративная сеть: HTTPS_PROXY/NO_PROXY поддерживаются, свой корневой сертификат можно передать через NODE_EXTRA_CA_CERTS (добавьте в env).

Claude Code, Claude Desktop, Cursor

Claude Code
claude mcp add ganttbang --env GANTTBANG_URL=https://gantt.codelab.vc -- npx -y --package=https://gantt.codelab.vc/downloads/ganttbang-mcp.tgz ganttbang-mcp
Claude Desktop (claude_desktop_config.json) · Cursor (.cursor/mcp.json)
{
  "mcpServers": {
    "ganttbang": {
      "command": "npx",
      "args": ["-y", "--package=https://gantt.codelab.vc/downloads/ganttbang-mcp.tgz", "ganttbang-mcp"],
      "env": { "GANTTBANG_URL": "https://gantt.codelab.vc" }
    }
  }
}

Skill для Claude: скачайте SKILL.md в ~/.claude/skills/ganttbang/.

Инструменты

ИнструментЧто делает
create_ganttНовая диаграмма из плана → ссылки на редактирование и просмотр
get_ganttРасшифровать по ссылке: сводка (просрочено, в работе, без дат) или JSON
update_ganttОбновить по key: merge меняет отдельные задачи, replace пересобирает план целиком
формат плана
{
  "title": "Платежи: релиз 2.0",
  "tasks": [
    { "key": "PAY-1",  "name": "Эпик: оплата картой" },
    { "key": "PAY-12", "parent": "PAY-1", "name": "API платежей",
      "start": "2026-10-01", "end": "2026-10-20", "status": "in_progress",
      "url": "https://jira.example.com/browse/PAY-12", "owner": "Core" },
    { "key": "PAY-13", "parent": "PAY-1", "name": "UI оплаты",
      "start": "2026-10-15", "end": "2026-11-05", "after": ["PAY-12"] },
    { "key": "v2.0", "type": "milestone", "name": "Релиз 2.0",
      "start": "2026-11-20", "after": ["PAY-13"] }
  ]
}

Тот же пакет работает и как CLI, если у агента есть терминал, а MCP нет.

CLI
npx -y --package=https://gantt.codelab.vc/downloads/ganttbang-mcp.tgz ganttbang-mcp create plan.json
npx -y --package=https://gantt.codelab.vc/downloads/ganttbang-mcp.tgz ganttbang-mcp get "<ссылка>" --json
npx -y --package=https://gantt.codelab.vc/downloads/ganttbang-mcp.tgz ganttbang-mcp update "<edit-ссылка>" plan.json

Безопасность

  • Ключ AES-256-GCM создаётся в процессе ganttbang-mcp на машине агента. На сервер уходит только шифротекст и хэши токенов доступа.
  • Ключ передаётся только в ссылке, в части после «#». Браузеры не отправляют её на сервер, она не попадает в логи и заголовок Referer.
  • Ссылка редактирования даёт полный доступ. В skill прописано, что её агент отдаёт только заказчику, а публикует только ссылку просмотра.
  • В окне «Поделиться» можно перевыпустить ссылки (будет новый ключ, старые ссылки перестанут работать) или удалить диаграмму.
  • Ссылки остаются в памяти и истории агента, так что агенту приходится доверять. Впрочем, исходные данные из Jira он и так видел.
  • Если нужен полный контроль, разверните GanttBang внутри своей сети (docker compose up) и укажите его в GANTTBANG_URL.

Конфиденциальность и условия