The build server
POST /mcp/build — the 12 tools an agent uses to author, validate, run and diagnose workflows.
POST https://<your-workspace-url>/mcp/build
Authorization: Bearer grt_…The tools
Discovery and reading:
| Tool | Does | Needs |
|---|---|---|
gorunner_search_pieces | Find pieces by capability; returns the compact index. If nothing matches a service, the honest answer is the generic HTTP piece. | — |
gorunner_get_piece_schema | One action/trigger's real fields, types and requirements — read before writing config. | — |
gorunner_list_workflows | Workspace workflows (full definitions; big workspaces should prefer targeted gets). | workflow:read |
gorunner_get_workflow | One workflow with its full draft tree. Read before you edit — updates replace the whole definition. | workflow:read |
gorunner_list_connections | Credential ids/names/pieces — values are never returned. Reference one via a step's connectionId; never invent an id. | connection:read |
Writing — always draft-first:
| Tool | Does | Needs |
|---|---|---|
gorunner_validate_workflow | Judge a definition without writing — the publish gate's own diagnostics, with legal alternatives. Call before every write. | workflow:read |
gorunner_create_workflow | Create a NEW workflow (always a draft). Never edits. | workflow:write |
gorunner_update_workflow | Replace an existing draft's definition (read → modify → write; carries the revision guard). Never creates. | workflow:write |
gorunner_publish_workflow | Make the draft what production runs — the explicit, deliberate step. | workflow:publish |
Running and diagnosing:
| Tool | Does | Needs |
|---|---|---|
gorunner_run_workflow | Start a run. environment is required — test runs the draft, production the published version. Waits for the result by default; accepts idempotencyKey. | workflow:run |
gorunner_get_run | One run: status, timings, every step's input and output — where diagnosis starts. Narrow big runs with the step argument. | run:read |
gorunner_list_runs | Recent runs, newest first, production-only by default (environment=all includes tests). | run:read |
Scopes are enforced by the underlying routes — the token decides everything.
The workflow the tools teach
The server's own instructions to connecting agents:
gorunner_search_piecesto find pieces →gorunner_get_piece_schemato read real fields.gorunner_validate_workflowbefore any write; fix what it names.- Create/update the draft → run in
test→ read the run → only then publish.
An agent that follows the loop ships working flows; one that skips validation gets refusals that name exactly what to fix — which, for a model, is the same thing one tool call later.