camunda-mcp
Provides tools for modeling BPMN 2.0 processes for Camunda 7, including creating diagrams, adding elements (tasks, gateways, events), defining flows, configuring Camunda extensions (e.g., implementation types, forms, listeners, IO mapping), and managing pools/lanes. Generates XML compatible with Camunda Modeler and bpmn-js.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@camunda-mcpCreate a new BPMN diagram with a start event and a user task."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
camunda-mcp
MCP server (Model Context Protocol) com ferramentas para modelar BPMN Camunda 7, em Node.js, independente do Camunda Modeler.
Construído sobre bpmn-moddle e
camunda-bpmn-moddle, os mesmos
módulos do projeto bpmn-js — então o XML gerado é 100% compatível com o
Camunda Modeler / bpmn-js. Layout/DI é regenerado pelo
bpmn-auto-layout.
Namespace de extensão usada: http://camunda.org/schema/1.0/bpmn (Camunda 7).
Instalação
git clone https://github.com/fssou/camunda-mcp.git
cd camunda-mcp
npm install
npm run buildRelated MCP server: n8n Workflow Builder MCP Server
Uso em clientes MCP
Claude Desktop / Cursor / Continue (stdio)
Adicione no mcpServers do seu cliente:
{
"mcpServers": {
"camunda7": {
"command": "node",
"args": ["/caminho/absoluto/para/camunda-mcp/dist/index.js"]
}
}
}Após salvar, o cliente lista todas as ferramentas (~40) prefixadas com camunda7.
Execução standalone (debug)
node dist/index.js
# imprime no stderr: "@fssou/camunda-mcp v0.1.0 ready on stdio"
# espera mensagens MCP JSON-RPC em stdinFerramentas disponíveis
Ciclo de vida do diagrama
Tool | Descrição |
| Cria um novo diagrama em memória. Retorna |
| Lista diagramas abertos. |
| Descarta um diagrama. |
| Importa um XML BPMN 2.0. |
| Importa um arquivo |
| Serializa para XML. |
| Grava |
| Regenera |
| Lista erros/warnings estruturais. |
Elementos BPMN
Tool | Descrição |
| StartEvent (`none |
| EndEvent (`none |
| IntermediateCatchEvent / IntermediateThrowEvent. |
| BoundaryEvent anexado a uma atividade (interrupting ou não). |
| Task / UserTask / ServiceTask / SendTask / ReceiveTask / ScriptTask / BusinessRuleTask / ManualTask. |
| Exclusive / Parallel / Inclusive / EventBased / Complex. |
| SubProcess / Transaction / AdHocSubProcess (event sub-process via |
| CallActivity ( |
| Anotação de texto. |
| Remove o elemento e os fluxos incidentes. |
| Lista elementos (filtros por tipo / parentId). |
| Inspeciona um elemento e suas extensões Camunda. |
| Mutações genéricas. |
Fluxos
Tool | Descrição |
| Cria um |
| Cria um |
| Cria uma |
| Marca um fluxo como default de um gateway/atividade. |
| Define um |
Pools e lanes
Tool | Descrição |
| Cria um Participant (pool) — promove o diagrama para |
| Cria uma Lane em um Participant. |
| Adiciona um flow node a uma lane ( |
Extensões Camunda 7
Tool | Descrição |
|
|
|
|
|
|
|
|
|
|
| Substitui |
| Anexa |
| Anexa |
| Configura |
|
|
| Cria/reusa |
| Cria/reusa |
|
|
Exemplo de fluxo
Após o cliente MCP chamar as ferramentas, o XML produzido tem o seguinte formato (Camunda 7 plenamente válido):
<bpmn:definitions xmlns:bpmn="..." xmlns:camunda="http://camunda.org/schema/1.0/bpmn">
<bpmn:process id="Approval_Process" isExecutable="true"
camunda:versionTag="1.0.0" camunda:historyTimeToLive="P30D">
<bpmn:startEvent id="Event_..." name="Pedido recebido" />
<bpmn:userTask id="Activity_..." name="Aprovar pedido"
camunda:candidateGroups="gerentes" camunda:dueDate="P1D"
camunda:asyncBefore="true" camunda:exclusive="true"
camunda:formKey="embedded:app:forms/approve.html" />
<bpmn:exclusiveGateway id="Gateway_..." name="Aprovado?" />
<bpmn:serviceTask id="Activity_..." name="Faturar"
camunda:delegateExpression="${invoiceService}">
<bpmn:extensionElements>
<camunda:inputOutput>
<camunda:inputParameter name="orderId">${execution.getVariable("orderId")}</camunda:inputParameter>
<camunda:outputParameter name="invoiceId">${result.id}</camunda:outputParameter>
</camunda:inputOutput>
<camunda:properties>
<camunda:property name="retries" value="5" />
</camunda:properties>
<camunda:executionListener event="end" expression="${endListener.notify(execution)}" />
</bpmn:extensionElements>
</bpmn:serviceTask>
<bpmn:endEvent id="Event_..." name="Pedido recusado">
<bpmn:errorEventDefinition errorRef="Error_PEDIDO_RECUSADO" />
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_..." name="Aprovado" sourceRef="Gateway_..." targetRef="Activity_...">
<bpmn:conditionExpression>${approved}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
</bpmn:process>
<bpmn:error id="Error_PEDIDO_RECUSADO" name="Pedido recusado" errorCode="PEDIDO_RECUSADO" />
</bpmn:definitions>Use auto_layout para regenerar bpmndi:BPMNDiagram quando o diagrama mudar.
Desenvolvimento
npm install
npm run build # compila TS → dist/
npm run typecheck # tsc --noEmit
npm run lint # eslint
npm test # vitest (smoke end-to-end)
npm run dev # roda src/index.ts via tsx (stdio)A árvore do projeto:
src/
├── index.ts # stdio entrypoint
├── server.ts # buildServer() — factory de McpServer
├── store.ts # DiagramStore + DiagramSession
├── bpmn/
│ ├── moddle.ts # cria BpmnModdle com camunda 7 descriptor
│ ├── builder.ts # BpmnBuilder — adiciona/remove elementos
│ ├── camunda.ts # helpers de extensões Camunda 7
│ ├── layout.ts # wrapper de bpmn-auto-layout
│ ├── validate.ts # validateDiagram()
│ ├── xml.ts # fromXML / toXML / indexById
│ └── types.ts # uniões discriminadas de tipos BPMN
└── tools/
├── registry.ts # schemas Zod por tool
└── handlers.ts # dispatch(toolName, params)
test/
└── smoke.test.ts # end-to-end: criação → exportação → auto-layout → round-tripLicença
MIT — veja LICENSE.
This server cannot be installed
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
- Alicense-qualityDmaintenanceMCP Server simplifies the implementation of the Model Context Protocol by providing a user-friendly API to create custom tools and manage server workflows efficiently.Last updated314MIT
- AlicenseCqualityDmaintenanceA Model Context Protocol (MCP) server for programmatically creating and managing n8n workflows.Last updated118MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables AI assistants to programmatically create, modify, and export BPMN 2.0 workflow diagrams. It supports managing various process elements and sequence flows while providing export capabilities to standard XML and SVG formats.Last updated711MIT
- Alicense-qualityDmaintenanceAn MCP server that enables AI assistants to programmatically create and manage flowcharts, ERDs, and swimlane diagrams. It provides tools for manipulating diagram structures, performing auto-layouts, and exporting to Mermaid or Markdown formats.Last updated20MIT
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
MCP server for Zooza — class scheduling, attendance, and booking for activity businesses.
MCP server for the Inistate platform: module discovery, entry management, and activity submission.
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/fssou/camunda-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server