MCP (almost, basically) end to end

This commit is contained in:
lda
2026-05-19 03:23:30 +07:00 Verified
parent 6a1610c510
commit dddc7bb5eb
4 changed files with 289 additions and 0 deletions
+3
View File
@@ -38,6 +38,9 @@ This repository has three main packages plus examples and tests.
- `examples/wrapper_status_route.py` and `examples/wrapper_normalization.py`
show two wrapper styles: routing on provider status fields, and converting
provider status fields into workflow outcomes.
- `examples/mcp_workflow_surface.py` shows the fixture-style MCP workflow path:
discover a backend tool, create a draft artifact, save a deployment, and run
it while wiring the generated `ok` and `error` outcomes.
## Tests
+18
View File
@@ -114,6 +114,24 @@ Calls a workflow capability.
Use this for normal node calls, including generated workflow wrappers around
MCP tools and local `wf.std` capabilities.
Generated MCP tool wrappers are intentionally naive. They normally expose both
`ok` and `error` outcomes, because MCP tool calls can report transport/provider
errors separately from useful output. Drafts should wire both outcomes:
```json
{
"routes": {
"call_tool": {
"ok": "__end__",
"error": "tool_error"
}
}
}
```
Use a wrapper node or `wf.std.runtime_error` for the `error` path. Do not leave
the generated `error` outcome dangling.
### `foreach`
Runs a child body over items.