Skip to main content
Glama
0langa

devflows-mcp

by 0langa

cibseven-devflows

Запускайте свои рабочие процессы разработчика как BPMN-процессы на локальном движке CIB seven и управляйте ими из ИИ-агентов кодирования, таких как Claude Code, через MCP-сервер.

Версия 0.1.0 включает один рабочий процесс: ритуал релиза репозитория. Запустите проверки качества, спросите человека, создайте тег, опубликуйте. Этот репозиторий выпустил собственный v0.1.0, запустив этот процесс на самом себе.

Зачем

Выпуск релиза — это процесс с человеческим решением в середине. Обычно этот процесс живёт в чьей-то голове и в прокрутке терминала. Ничто не фиксирует, что проверки выполнялись, что человек одобрил, или что было опубликовано.

Процессный движок — именно тот инструмент для такой задачи. CIB seven хранит состояние, хранит историю и умеет ждать человека. Ваша машина по-прежнему выполняет работу, а ИИ-агент может запустить процесс и наблюдать за ним, но не может пропустить одобрение, потому что одобрение — это шаг в процессе, а не обещание в промпте.

Related MCP server: jt-mcp-server

Архитектура

flowchart LR
    agent["Claude Code<br/>(any MCP client)"] -- stdio --> mcpserver["devflows-mcp"]
    mcpserver -- REST --> engine["CIB seven engine<br/>Docker, H2, localhost:8080"]
    human["You, in the web UI"] -- approve --> engine
    engine -- fetchAndLock --> worker["devflows-worker"]
    worker -- shell --> repo["your repository<br/>pytest, ruff, git, gh"]

Движок никогда не выполняет shell-команды и не касается вашего репозитория. Он раздаёт работу; воркер на вашей машине опрашивает его и выполняет её. Это стандартный паттерн внешних задач Camunda 7, и именно он делает безопасным позволить процессу управлять машиной разработчика.

Процесс релиза

flowchart LR
    start((start)) --> gates["Run gates<br/><i>devflows.gates</i>"]
    gates --> q1{Gates passed?}
    q1 -- no --> failed((Gates failed))
    q1 -- yes --> approve["Approve release<br/><i>user task</i>"]
    approve --> q2{Approved?}
    q2 -- stop --> rejected((Release rejected))
    q2 -- ship --> tag["Tag<br/><i>devflows.tag</i>"]
    tag --> publish["Publish<br/><i>devflows.publish</i>"]
    publish --> released((Released))

Три прямоугольника с именем темы — это внешние задачи. «Approve release» — это пользовательская задача BPMN, поэтому она ждёт, переживает перезапуск движка, и на неё можно ответить либо в веб-интерфейсе, либо через MCP-инструмент approve_gate.

dry_run=true запускает проверки по-настоящему и больше ничего не меняет: ни тега, ни пуша, ни релиза.

Быстрый старт

docker compose -f engine/docker-compose.yml up -d
uv sync
uv run pytest -m "not integration" && uv run ruff check .

Разверните процесс (один раз на движок):

curl -s -X POST http://localhost:8080/engine-rest/deployment/create -F "deployment-name=cibseven-devflows" -F "release.bpmn=@processes/release.bpmn"

Запустите воркер и оставьте его работать в отдельном терминале:

uv run devflows-worker

Запустите пробный релиз этого репозитория. Замените repo_path на абсолютный путь к этому репозиторию. Используйте прямые слэши даже в Windows (C:/Users/you/repos/cibseven-devflows): они работают и избавляют вас от борьбы с вашей оболочкой из-за экранирования обратных слэшей.

curl -s -X POST http://localhost:8080/engine-rest/process-definition/key/devflows-release/start -H "Content-Type: application/json" -d '{"variables":{"repo_path":{"value":"ABSOLUTE/PATH/TO/cibseven-devflows","type":"String"},"version":{"value":"0.2.0","type":"String"},"dry_run":{"value":true,"type":"Boolean"}}}'

Затем одобрите его на http://localhost:8080/webapp/#/seven/auth/tasks под demo / demo: отфильтруйте My Group Tasks, возьмите в работу Approve release, отметьте approve, отправьте.

На практике вы запускаете процессы через MCP-сервер, а не через curl. Полное руководство см. в docs/DEMO.md.

devflows.yaml

Каждый репозиторий описывает свой собственный релиз в файле devflows.yaml в его корне:

gates:
  - name: tests
    run: uv run pytest -q
  - name: lint
    run: uv run ruff check .

tag:
  format: "v{version}"

publish:
  run: gh release create v{version} --generate-notes

Key

Meaning

gates

Упорядоченный список проверок качества. Каждая требует name и shell-команду в run. Первый ненулевой код выхода завершает релиз.

tag.format

Как формируется имя тега. {version} — единственный заполнитель. Необязательно; по умолчанию v{version}.

publish.run

Shell-команда, которая публикует релиз. {version} — единственный заполнитель.

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

MCP-инструменты

devflows-mcp общается по MCP через stdio и работает с любым MCP-клиентом.

Tool

Arguments

Returns

engine_status

Отвечает ли движок, его версия, имена его движков

deploy_process

bpmn_path (optional)

Идентификатор развёртывания и ключи развёрнутых определений процессов

list_processes

Развёрнутые определения процессов с ключом, версией и идентификатором

start_release

repo_path, version, dry_run (default true)

Идентификатор экземпляра процесса и ссылка на него в веб-интерфейсе

get_run

process_instance_id

Состояние, текущая активность, открытые задачи, отчёт о проверках, все переменные

list_gates

repo_path

Проверки, которые запустит этот репозиторий. Не обращается к движку

approve_gate

task_id, approve, comment

Подтверждение, что задача одобрения была завершена

Каждый инструмент возвращает словарь с флагом ok и строкой error, когда ok равно false. Ни один инструмент не вызывает исключений, потому что вызывающая сторона — языковая модель, которая должна объяснить сбой человеку.

Использование из Claude Code

plugin/ — это плагин Claude Code вокруг того же сервера:

  • plugin/.mcp.json запускает devflows-mcp с помощью uv run.

  • plugin/skills/release-with-devflows/SKILL.md сообщает агенту, когда использовать движок и в каком порядке вызывать инструменты, включая правило, что он должен остановиться и спросить перед одобрением.

  • plugin/commands/release.md предоставляет /devflows:release <version> [--real].

Чтобы подключить сервер к любому другому MCP-клиенту напрямую:

{
  "mcpServers": {
    "cibseven-devflows": {
      "command": "uv",
      "args": ["run", "devflows-mcp"]
    }
  }
}

Конфигурация

Variable

Default

Used by

DEVFLOWS_ENGINE_URL

http://localhost:8080/engine-rest

воркер, MCP-сервер

DEVFLOWS_WORKER_ID

devflows-worker-<hostname>

воркер

DEVFLOWS_LOCK_MS

300000

воркер

DEVFLOWS_POLL_MS

10000

воркер

DEVFLOWS_BPMN_PATH

находится рядом с пакетом

MCP-сервер

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

Две вещи в этом проекте сделаны намеренно, и обе предполагают, что он работает на вашей собственной машине:

  • У движка нет аутентификации. REST API на localhost:8080 принимает всё, что может до него добраться. Не открывайте этот порт для сети, которую вы не контролируете.

  • Воркер выполняет shell-команды. Они берутся из devflows.yaml репозитория, который вы попросили выпустить, они выполняются от вашего имени, в этом репозитории, и это те же команды, которые вы бы ввели. Направляйте его только на репозитории, которым вы доверяете.

Нет облачного сервиса, нет телеметрии и нет учётной записи, кроме учётных данных GitHub, которые уже есть у gh.

Структура репозитория

Directory

What is in it

engine/

Docker Compose для локального движка CIB seven 2.2.0

processes/

release.bpmn, ритуал релиза

core/

devflows_core: REST-клиент движка, разбор конфигурации, исполнитель shell-шагов

workers/

devflows_worker: воркер внешних задач

mcp/

devflows_mcp: stdio MCP-сервер

plugin/

Плагин Claude Code

tests/

Модульные тесты, а также tests/integration/, которым нужен живой движок

docs/

Демонстрационный скрипт, а также документы по дизайну и планам

Требования

  • Docker Desktop, для движка

  • Python 3.12 и uv

  • git и аутентифицированный gh для шагов создания тега и публикации

  • Camunda Modeler 5.x, если вы хотите редактировать диаграмму BPMN (необязательно). Откройте processes/release.bpmn как диаграмму Camunda 7.

Лицензия

Apache License 2.0. См. LICENSE.

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents and external systems to programmatically trigger and monitor Jenkins jobs, retrieve build status and logs via MCP standards.
  • A
    license
    Not graded
    quality
    A
    maintenance
    Exposes a governed, provenance-grounded autonomous delivery pipeline as an MCP server, enabling AI coding assistants like Claude Code or Codex to initiate requirements-to-PR workflows with human approval gates and full audit.
    7
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.

View all MCP Connectors

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/0langa/cibseven-devflows'

If you have feedback or need assistance with the MCP directory API, please join our Discord server