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 и т.д.
# ~/.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 и вики в план и кому какую ссылку отдавать:
mkdir -p ~/.hermes/skills/ganttbang
curl -fsSL https://gantt.codelab.vc/skills/ganttbang/SKILL.md -o ~/.hermes/skills/ganttbang/SKILL.mdHermes в контейнере без Node: запуск через Docker
Соберите образ из репозитория: docker build -f packages/mcp/Dockerfile -t ganttbang-mcp .
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 mcp add ganttbang --env GANTTBANG_URL=https://gantt.codelab.vc -- npx -y --package=https://gantt.codelab.vc/downloads/ganttbang-mcp.tgz ganttbang-mcp{
"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 нет.
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.