devflows-mcp
cibseven-devflows
Ejecuta tus flujos de trabajo de desarrollo como procesos BPMN en un motor CIB seven local, y condúcelos desde agentes de codificación de IA como Claude Code a través de un servidor MCP.
La versión 0.1.0 incluye un flujo de trabajo: el ritual de release de un repositorio. Ejecuta los controles de calidad, pregunta a un humano, crea la etiqueta, publica. Este repositorio produjo su propio v0.1.0 ejecutando ese proceso sobre sí mismo.
Por qué
Hacer un release es un proceso con una decisión humana en medio. Normalmente ese proceso vive en la cabeza de alguien y en el scrollback de una terminal. Nada registra que los controles se ejecutaron, que una persona lo aprobó o qué se publicó.
Un motor de procesos es exactamente la herramienta adecuada para ese tipo de problemas. CIB seven conserva el estado, conserva el historial y sabe esperar a un humano. Tu máquina sigue haciendo el trabajo, y un agente de IA puede iniciar una ejecución y observarla, pero no puede saltarse la aprobación, porque la aprobación es un paso del proceso, no una promesa en un prompt.
Related MCP server: jt-mcp-server
Arquitectura
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"]El motor nunca ejecuta un comando de shell y nunca toca tu repositorio. Reparte trabajo; el worker de tu máquina lo consulta y lo hace. Ese es el patrón estándar de Camunda 7 external task, y es lo que hace seguro dejar que un proceso maneje una máquina de desarrollo.
El proceso de release
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))Los tres rectángulos con un nombre son external tasks. «Approve release» es una user task de BPMN, por lo que espera, sobrevive a un reinicio del motor y puede responderse en la interfaz web o mediante el approve_gate MCP tool.
dry_run=true ejecuta los controles de verdad y no cambia nada más: ni etiqueta, ni push, ni release.
Inicio rápido
docker compose -f engine/docker-compose.yml up -duv syncuv run pytest -m "not integration" && uv run ruff check .Despliega el proceso (una vez por motor):
curl -s -X POST http://localhost:8080/engine-rest/deployment/create -F "deployment-name=cibseven-devflows" -F "release.bpmn=@processes/release.bpmn"Inicia el worker y déjalo corriendo en su propia terminal:
uv run devflows-workerInicia un release en seco de este repositorio. Sustituye repo_path por la ruta absoluta de este repositorio. Usa barras normales incluso en Windows (C:/Users/tu/repos/cibseven-devflows): funcionan y te evitan luchar contra tu shell por el escapado de las contrabarras.
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"}}}'Después afrobaríntalo en http://localhost:8080/webapp/#/seven/auth/tasks con demo / demo: filtra por My Group Tasks, toma Approve release, marca approve y envía.
En la práctica inicias las ejecuciones a través del servidor MCP en lugar de con curl. Consulta docs/DEMO.md para ver el recorrido completo.
devflows.yaml
Cada repositorio describe su propio release en un devflows.yaml en su raíz:
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-notesClave | Significado |
| Lista ordenada de controles de calidad. Cada uno necesita un |
| Cómo se construye el nombre de la etiqueta. |
| El comando de shell que publica el release. |
Las claves de nivel superior desconocidas se ignoran, así que una versión más reciente de devflows puede agregar pasos sin romper un archivo antiguo.
Las herramientas MCP
devflows-mcp habla MCP sobre stdio y funciona desde cualquier cliente MCP.
Tool | Argumentos | Devuelve |
| — | Si el motor responde, su versión y los nombres de todos sus motores. |
|
| ID del despliegue y las claves de las definiciones de proceso desplegadas. |
| — | Definiciones de procesos desplegados con clave, versión e ID. |
|
| ID de instancia de proceso y un enlace hacia él en la interfaz web. |
|
| Estado, actividad actual, tareas abiertas, el informe de los controles y todas las variables. |
|
| Los controles que el repositorio ejecutaría. No toca el motor. |
|
| Confirmación de que la tarea de aprobación se completó. |
Cada herramienta devuelve un diccionario con una bandera ok, y una cadena error cuando ok es false. Ninguna herramienta lanza excepciones, porque el llamador es un modelo de lenguaje que debe explicar el fallo a una persona.
Usarlo desde Claude Code
El directorio plugin/ es un plugin de Claude Code alrededor del mismo servidor:
plugin/.mcp.jsoniniciadevflows-mcpconuv run.plugin/skills/release-with-devflows/SKILL.mdle dice al agente cuándo usar el motor y en qué orden llamar a las herramientas, incluye la regla de que debe detenerse y preguntar antes de aprobar.plugin/commands/release.mdproporciona el comando/devflows:release <version> [--real].
Para conectar el servidor a cualquier otro cliente de MCP directamente:
{
"mcpServers": {
"cibseven-devflows": {
"command": "uv",
"args": ["run", "devflows-mcp"]
}
}
}Configuración
Variable | Default | Proporcionada por |
|
| worker, MCP server |
|
| worker |
|
| worker |
|
| worker |
| se encuentra junto al paquete | MCP server |
Seguridad
Dos cosas sobre este proyecto son deliberadas, y ambas asumen que se ejecuta en tu propia máquina:
El motor no tiene autenticación. La API REST en
localhost:8080acepta cualquier cosa que pueda alcanzarla. No expongas ese puerto a una red que no controles.El worker ejecuta comandos de shell. Provienen del
devflows.yamldel repositorio del que le pides un release, se ejecutan como tú, en ese repositorio, y son los mismos comandos que escribirías tú. Apunta solo a repositorios de confianza.
No hay servicio en la nube, ni telemetría, ni ninguna cuenta más allá de las credenciales de GitHub que gh ya posee.
Estructura del repositorio
Directorio | Contiene |
| Docker Compose para un motor local CIB seven 2.2.0 |
|
|
|
|
|
|
|
|
| El plugin de Claude Code |
| Pruebas unitarias, más |
| El script de demo y los documentos de diseño y de traza |
Requisitos
Docker Desktop para el motor.
Python 3.12 y uv.
gityghautentificado, para los pasos de tag y push.Camunda Modeler 5. (opcional, si quieres editar el diagrama BPMN). Abre
processes/release.bpmncomo diagrama de Camunda 7.
Licencia
Apache License 2.0. Consulta LICENSE.
Maintenance
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
- AlicenseNot gradedqualityCmaintenanceEnables AI coding environments to enforce engineering governance through MCP tools and resources for init, check, route, and review workflows.262MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that equips AI agents with dev workflow tools including GitHub project management, conventional commits, visual regression testing, Jira/Confluence integration, and a persistent memory knowledge graph.25MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents and external systems to programmatically trigger and monitor Jenkins jobs, retrieve build status and logs via MCP standards.
- AlicenseNot gradedqualityAmaintenanceExposes 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.7MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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