MCP server
Boardwalk exposes a Model Context Protocol server, a peer to the REST API over the same auth and the same org scoping. Point any MCP-aware agent at it and the agent can deploy, manage, and trigger your workflows directly, no shell required. (If you just want your coding agent to drive the CLI, the coding-agent plugins are the simpler path.)
Connect
The server is a streamable-HTTP MCP endpoint at https://api.boardwalk.sh/mcp/v1, authenticated with a bearer API key. Configure it in your client the same way you add any remote MCP server:
{
"mcpServers": {
"boardwalk": {
"url": "https://api.boardwalk.sh/mcp/v1",
"headers": { "Authorization": "Bearer bwk_your_key_here" }
}
}
}The Claude Code plugin (installed by npx @boardwalk-labs/setup, see For coding agents) connects this server for you; set BOARDWALK_API_KEY in your environment to authenticate it.
It shares the REST chain's guardrails: the same per-identity rate limit, and the same org-wide two-factor policy if your org requires it.
Choosing the org
An API key already belongs to one org, so it needs nothing more. A Clerk session token can belong to several, so name the one you mean with an X-Boardwalk-Org header:
"headers": {
"Authorization": "Bearer <session-token>",
"X-Boardwalk-Org": "acme"
}Tools
The server registers these tools, grouped by what they touch. Where a tool mirrors one REST endpoint the row names it; grouped rows link to the resource's section of the endpoint reference:
| Tool | What it does | REST equivalent |
|---|---|---|
list_workflows / get_workflow | List the org's workflows, or fetch one with its bundled files. | Workflows |
create_workflow / update_workflow | Deploy a workflow package from its files: the sources (the entry exports a run function) plus the workflow.jsonc descriptor, with README and skills riding along (update bumps the version). | Workflows |
delete_workflow | Soft-delete a workflow. | DELETE /workflows/:id |
disable_workflow / enable_workflow | Pause every trigger reversibly, then resume. | POST /workflows/:id/disable · /enable |
get_workflow_workspace / reset_workflow_workspace | Inspect a workflow's persistent workspaces (per environment), or clear one; the workflow, its triggers, and its history stay. | |
trigger_now | Fire a one-off run, with optional args as the trigger input and optional environment (name) to pick which environment it runs in. | POST /orgs/:slug/workflows/:id/runs |
create_schedule / list_schedules / delete_schedule | Schedule a run later (at) or on a recurrence (cron / rate), optionally against an environment; list and cancel schedules. | Schedules |
list_runs / get_run | List recent runs (filter by status) or read one run's status, error, and owning workflow. | Runs |
get_run_output / get_run_input | Read a run's event log (agent text, tool calls, logs, output), or the input it was triggered with. | Runs |
cancel_run | Cancel a run that's still in progress. | POST /runs/:id/cancel |
list_pending_inputs / respond_to_input | The inbox of open human-input gates, and the answer that resumes a suspended run. | |
list_event_subscriptions / list_event_deliveries | Run-lifecycle event subscriptions, and recent delivery attempts for one (status, attempts, last response). | |
list_artifacts / get_artifact_download_url | List a run's artifacts and mint a signed download URL. | Artifacts |
list_secret_names / list_inference_providers | List secret names and configured providers (never values or keys). | Secrets, Inference |
list_models / get_model | The managed model catalog: every id an agent() call can name, with live rates; or one model in detail. | |
list_runner_pools / list_runners / … | Manage self-hosted runners: create and delete pools, mint a registration token, drain, revoke, or deregister a runner. | |
list_environments / list_variables | List named environments and their non-secret variables (values included; injected into a run's process.env). A run/schedule targets an environment by name. | Environments |
create_environment / delete_environment / create_variable / delete_variable | Manage environments and non-secret variables. (Secrets stay write-only via the web UI.) | Environments |
list_tools / get_balance / get_usage | The built-in tools available to agent(); the org's credit balance; and run, token, and compute usage over a window. | Billing & usage |
list_audit / revoke_api_key | Read the audit log; revoke a key (the one mutating credential op allowed). | Org, API keys |
Each tool takes the same arguments as its REST cousin: create_schedule wants exactly one of cron / rate / at; get_artifact_download_url takes an optional ttlSeconds. The MCP client surfaces each tool's full input schema.
What it won't do
Credential-creating operations (writing a secret, minting an API key, wiring an inference provider) are intentionally not available over MCP or any API key; they are present as explicitly-blocked stubs that point you at the dashboard. That is the platform-wide rule that a credential can never mint another credential; see Orgs, roles & audit.