@mcp-com-ai/plugin-arazzo
v1.3.0
Published
Arazzo workflow validation and MCP serving for HAPI.
Downloads
332
Maintainers
Readme
HAPI Workflows (Arazzo) plugin 
With the Enterprise A2A plugin installed, use
hapi serve --specs ./workflow.arazzo.yaml --dry-run --a2a --output json
to preview the read-only workflow Agent Card. The same command without
--a2a retains the MCP tool preview. yaml, markdown, and table are
also available. Arazzo serving does not currently expose Capability Graph
planning tools; only compiled workflow skills appear in this card.
@mcp-com-ai/plugin-arazzo lets HAPI expose an Arazzo workflow as MCP tools.
Each workflow can coordinate one or more API operations, while the APIs remain
the source of business logic.
Install and serve
Install this plugin alongside the HAPI command:
bun add -g @mcp-com-ai/hapi @mcp-com-ai/plugin-arazzoValidate, then serve a local or remote Arazzo document:
hapi arazzo validate --specs ./workflow.yaml
hapi serve --specs ./workflow.yaml --headless --port 3000Connect your MCP client to http://localhost:3000/mcp.
These commands are equivalent when this plugin is installed:
hapi serve --specs ./workflow.yaml --mcp
hapi arazzo serve --specs ./workflow.yaml --mcp
hapi workflows serve --specs ./workflow.yaml --mcpworkflows is an alias for arazzo. The short hapi serve --specs form
detects Arazzo automatically and uses the same command shape as OpenAPI. The
runtime supports sequential HTTP operations from OpenAPI sources; unsupported
sources are rejected before serving.
The CLI installs Core and shared utilities automatically. Keep this plugin and
@mcp-com-ai/hapi on the same release version.
Plan-only workflow transitions
A validated workflow can contribute one atomic transition to capability-graph
planning by declaring workflow-level x-hapi-planning with requires,
non-empty produces, optional removes, and a finite nonnegative cost.
Eligibility is deliberately narrow: every step must resolve to OpenAPI, and the
workflow cannot use nested workflows or dynamic success/failure control flow.
Unsupported workflows still compile for ordinary execution but produce a
planning diagnostic and no planning transition.
This metadata describes state change for simulation only. The capability planner never calls the Arazzo executor.
hapi arazzo validate also compares each planning-eligible workflow with the
x-hapi-planning of the source operations its steps call. It applies the
steps in order, removing facts before producing them, and prints a warning
when the workflow's metadata disagrees with that net effect:
| Code | Meaning |
| --- | --- |
| ARAZZO_PLANNING_REQUIRES_INCOMPLETE | A step needs a fact from outside that the workflow does not require. |
| ARAZZO_PLANNING_PRODUCES_INCOMPLETE | The steps leave a new fact that the workflow does not produce. Extra aggregate facts are allowed. |
| ARAZZO_PLANNING_REMOVES_CONTRADICTS_STEPS | The workflow removes a fact that a later step re-establishes. |
| ARAZZO_PLANNING_ANALYSIS_INCOMPLETE | A step's source operation has no valid x-hapi-planning, so no comparison is made. |
These are warnings. They do not change planning eligibility or the exit code,
unless you pass --strict, which exits 1 when any planning diagnostic is
reported:
hapi arazzo validate ./workflows.arazzo.yaml --strict