Skip to content
Go To Dashboard

Sapiom MCP tools

This is the complete reference for the 20 public tools in @sapiom/[email protected]. Input names, required fields, types, constraints, and descriptions are generated from the package’s runtime tools/list response. Behavior notes are reviewed against the same immutable source.

Authentication labels express Sapiom’s supported product contract: authenticate before every project action, including scaffold, check, Local Run, and local preview configuration. Capability calls are not MCP project tools; real ctx.sapiom.* capability use belongs inside a Sapiom-managed production agent run.

The released inventory still contains three web-app preview tools. They remain listed here so clients can identify every public tool, but their direct hosted sequence is not a supported workflow while it bypasses that agent-run capability boundary. Follow the warning on those entries rather than invoking the sequence.

MCP transports each result as text content. Most tools serialize successful data as formatted JSON. Account and feedback tools can return plain-language text. The released server does not advertise JSON output schemas, so each Returns section names the stable fields or behavior verified in the implementation without inventing a closed response shape. Operational failures set isError: true and normally return:

{
"error": {
"code": "<stable-error-class>",
"message": "<what failed>",
"hint": "<next action, when available>"
}
}

An agent execution whose outcome is "failed", or a web-app preview whose status is "failed", can still be a successfully delivered MCP result. Inspect the returned domain status as well as the MCP error flag.

AreaTaskExact tool
AccountSign insapiom_authenticate
AccountCheck connection statesapiom_status
AccountSign outsapiom_logout
Agent projectsCreate a startersapiom_dev_agents_scaffold
Agent projectsValidate a projectsapiom_dev_agents_check
Agent projectsTest locallysapiom_dev_agents_run_local
Agent projectsLink hosted identitysapiom_dev_agents_link
Agent projectsClone existing sourcesapiom_dev_agents_clone
Agent projectsDeploy a buildsapiom_dev_agents_deploy
Agent projectsStart a production runsapiom_dev_agents_run
Agent projectsInspect builds and runssapiom_dev_agents_inspect
Schedules and signalsResume a paused runsapiom_dev_agents_signal
Schedules and signalsCreate a triggersapiom_dev_agents_schedule
Schedules and signalsInspect triggerssapiom_dev_agents_schedule_inspect
Schedules and signalsCancel a triggersapiom_dev_agents_schedule_cancel
Schedules and signalsPreview a cadencesapiom_dev_agents_cron_preview
Web-app previewsConfigure a previewsapiom_dev_sandbox_configure
Web-app previewsValidate preview configurationsapiom_dev_sandbox_check
Web-app previewsPublish a temporary previewsapiom_dev_sandbox_preview
FeedbackSend product feedbacksapiom_send_feedback

Open browser sign-in and cache a Sapiom credential for the selected environment.

ContractBehavior
TaskSign in
AuthenticationNo existing Sapiom session required.
Runs inBrowser sign-in plus a local credential write.
Side effectsMay open a browser. Stores the credential in the environment entry in ~/.sapiom/credentials.json.
{}

This tool takes no arguments.

Exact released input schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {}
}
  • A plain-language confirmation naming the organization. An already-authenticated response also includes the cached tenant ID.
  • Browser sign-in times out or is denied.
  • The callback cannot exchange or store the credential.

Guide: Connect and authenticate

Implementation: packages/mcp/src/tools/authenticate.ts

Report whether the process’s selected Sapiom environment has a cached account credential and which organization it belongs to.

ContractBehavior
TaskCheck connection state
AuthenticationNo existing Sapiom session required.
Runs inRead-only local credential lookup.
Side effectsNone.
{}

This tool takes no arguments.

Exact released input schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {}
}
  • Plain-language authentication status; an authenticated result includes organization and tenant identity. The current result does not echo the environment name.
  • Missing or malformed credential content is reported as not authenticated. An unknown custom environment prevents MCP startup before this tool can run.

Guide: Connect and authenticate

Implementation: packages/mcp/src/tools/status.ts

Remove the cached Sapiom credential for the selected environment.

ContractBehavior
TaskSign out
AuthenticationNo existing Sapiom session required.
Runs inLocal credential update.
Side effectsRemoves only the selected environment’s cached credential; it does not delete projects or hosted agents.
{}

This tool takes no arguments.

Exact released input schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {}
}
  • A plain-language sign-out confirmation, including when no credential was present.
  • The local credentials file cannot be updated.

Implementation: packages/mcp/src/tools/status.ts

Create a new TypeScript agent project from a bundled starter.

ContractBehavior
TaskCreate a starter
AuthenticationA signed-in Sapiom MCP connection is required by the supported product contract.
Runs inLocal files, npm lookup/install, and local Git initialization.
Side effectsWrites the project, sapiom.json, local stubs, and authoring instructions; attempts dependency installation and an initial Git commit on a best-effort basis.
{
"dir": "./hello-sapiom",
"template": "default"
}
FieldTypeRequiredDescriptionConstraints
dirstringYesTarget directory for the new project (created if absent; must otherwise be empty, except for Agent Studio’s private .sapiom directory).minLength 1
templatestringNoTemplate name. ‘default’ (a minimal two-step starter) or ‘coding-pause’ (the launch + pauseUntilSignal + resume pattern for a non-blocking coding-agent run). Defaults to ‘default’.
Exact released input schema
{
"type": "object",
"properties": {
"dir": {
"type": "string",
"minLength": 1,
"description": "Target directory for the new project (created if absent; must otherwise be empty, except for Agent Studio's private .sapiom directory)."
},
"template": {
"type": "string",
"description": "Template name. 'default' (a minimal two-step starter) or 'coding-pause' (the launch + pauseUntilSignal + resume pattern for a non-blocking coding-agent run). Defaults to 'default'."
}
},
"required": [
"dir"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • targetDir, template, projectName, gitInitialized, and dependenciesInstalled.
  • The destination contains an entry other than Agent Studio’s reserved .sapiom directory.
  • The template name is unknown.
  • Dependency installation can fail softly: the scaffold still succeeds with dependenciesInstalled: false.

Guide: Build your first agent

Implementation: packages/mcp/src/tools/agents.ts

Typecheck, bundle, import, derive, and graph-validate one agent definition.

ContractBehavior
TaskValidate a project
AuthenticationA signed-in Sapiom MCP connection is required by the supported product contract.
Runs inLocal process.
Side effectsImports author code, so top-level filesystem, process, environment, and network effects remain real.
{
"dir": "./hello-sapiom"
}
FieldTypeRequiredDescriptionConstraints
dirstringNoProject directory (defaults to the current working directory).
Exact released input schema
{
"type": "object",
"properties": {
"dir": {
"type": "string",
"description": "Project directory (defaults to the current working directory)."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • Agent name, step count, derived manifest, and graph warnings.
  • Dependencies or TypeScript imports cannot be resolved.
  • The module exports zero or multiple agent definitions.
  • The definition, schemas, manifest, or graph is invalid.

Guide: Build and check

Implementation: packages/mcp/src/tools/agents.ts

Execute real step code locally while replacing ctx.sapiom.* calls with stubs.

ContractBehavior
TaskTest locally
AuthenticationA signed-in Sapiom MCP connection is required by the supported product contract.
Runs inLocal child process.
Side effectsCreates no Sapiom capability request or capability spend. Author code outside ctx.sapiom.* is real and can read, write, launch processes, use the network, or incur third-party charges.
{
"dir": "./hello-sapiom",
"input": {
"name": "Ada"
}
}
FieldTypeRequiredDescriptionConstraints
dirstringNoProject directory (defaults to the current working directory).
inputany JSON valueNoThe agent’s entry-step input (any JSON value).
stubsany JSON valueNoStub file object: { version, steps: { <step>: { <method.path>: <response> } } }. Each response is returned verbatim; an array is the actual response only for a list-returning method, not a sequence of responses.
maxAttemptsPerStepintegerNoRetry cap per step (default 3).
Exact released input schema
{
"type": "object",
"properties": {
"dir": {
"type": "string",
"description": "Project directory (defaults to the current working directory)."
},
"input": {
"description": "The agent's entry-step input (any JSON value)."
},
"stubs": {
"description": "Stub file object: { version, steps: { <step>: { <method.path>: <response> } } }. Each response is returned verbatim; an array is the actual response only for a list-returning method, not a sequence of responses."
},
"maxAttemptsPerStep": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Retry cap per step (default 3)."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • outcome, terminal output or error, ordered step attempts, unusedStubs, and stubWarnings.
  • Project check/import fails before execution.
  • Entry input fails its schema.
  • A step fails or exhausts attempts.
  • A malformed explicit or file-based stub is rejected.

Guide: Test locally

Implementation: packages/mcp/src/tools/agents.ts

Resolve an organization-owned agent by name and optionally create it, then cache its identity in sapiom.json.

ContractBehavior
TaskLink hosted identity
AuthenticationRequired.
Runs inSapiom service plus a local configuration write.
Side effectsWith create: true, may create a hosted agent definition. A successful call writes definitionId and name locally.
{
"dir": "./hello-sapiom",
"create": true
}
FieldTypeRequiredDescriptionConstraints
dirstringNoProject directory (defaults to the current working directory).
namestringNoAgent name (matches defineAgent({ name })). Defaults to the agent’s name read from index.ts.
createbooleanNoCreate the agent if it does not exist.
Exact released input schema
{
"type": "object",
"properties": {
"dir": {
"type": "string",
"description": "Project directory (defaults to the current working directory)."
},
"name": {
"type": "string",
"description": "Agent name (matches defineAgent({ name })). Defaults to the agent's name read from index.ts."
},
"create": {
"type": "boolean",
"description": "Create the agent if it does not exist."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • The resolved definitionId and agent name.
  • No name can be read or supplied.
  • The named agent does not exist when creation is not requested.
  • Authentication, authorization, network, or local config writes fail.

Guide: Deploy

Implementation: packages/mcp/src/tools/agents.ts

Materialize a gallery template, existing fork, or deployed agent source into a local project.

ContractBehavior
TaskClone existing source
AuthenticationRequired.
Runs inSapiom repository service, Git, and local files.
Side effectsA template clone creates an organization-owned fork. All modes clone source and write provenance to sapiom.json; a definition clone is already linked.
{
"dir": "./hello-agent",
"templateId": "hello-agent"
}
FieldTypeRequiredDescriptionConstraints
dirstringYesTarget directory to clone into (created if absent; must otherwise be empty, except for Agent Studio’s private .sapiom directory).minLength 1
templateIdstringNoRegistry template id to fork then clone (e.g. ‘web-research-digest’). Mutually exclusive with forkId and definitionId.
forkIdstringNoExisting fork id to clone (skips the fork step). Mutually exclusive with templateId and definitionId.
definitionIdstring or numberNoDeployed agent’s definition id to pull local (e.g. from the dashboard URL or a prior link/deploy). Clones the engine’s current build-repo source directly, skipping the fork step, and pre-links the checkout (sapiom.json is written with this id, so sapiom_dev_agents_link is not needed before deploy). Accepts a number or string — the engine id is a bigint. Mutually exclusive with templateId and forkId.
Exact released input schema
{
"type": "object",
"properties": {
"dir": {
"type": "string",
"minLength": 1,
"description": "Target directory to clone into (created if absent; must otherwise be empty, except for Agent Studio's private .sapiom directory)."
},
"templateId": {
"type": "string",
"description": "Registry template id to fork then clone (e.g. 'web-research-digest'). Mutually exclusive with forkId and definitionId."
},
"forkId": {
"type": "string",
"description": "Existing fork id to clone (skips the fork step). Mutually exclusive with templateId and definitionId."
},
"definitionId": {
"type": [
"string",
"number"
],
"description": "Deployed agent's definition id to pull local (e.g. from the dashboard URL or a prior link/deploy). Clones the engine's current build-repo source directly, skipping the fork step, and pre-links the checkout (sapiom.json is written with this id, so sapiom_dev_agents_link is not needed before deploy). Accepts a number or string — the engine id is a bigint. Mutually exclusive with templateId and forkId."
}
},
"required": [
"dir"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • Clone destination and provenance, plus definitionId when cloning a deployed agent; the tool also returns a next-step hint.
  • Not exactly one of templateId, forkId, or definitionId is supplied.
  • The destination is not scaffoldable.
  • Forking, credential minting, Git clone, or config writing fails.

Guide: Create from a template

Implementation: packages/mcp/src/tools/agents.ts

Package the current working tree, start a metered cloud build, and wait for its terminal build state.

ContractBehavior
TaskDeploy a build
AuthenticationRequired.
Runs inLocal bundle and Git synthesis, then Sapiom build infrastructure.
Side effectsUploads reachable local source, including uncommitted edits, and creates an immutable build. It does not start an agent execution.
{
"dir": "./hello-sapiom"
}
FieldTypeRequiredDescriptionConstraints
dirstringNoProject directory (defaults to the current working directory).
branchstringNoBranch to push to (default ‘main’).
Exact released input schema
{
"type": "object",
"properties": {
"dir": {
"type": "string",
"description": "Project directory (defaults to the current working directory)."
},
"branch": {
"type": "string",
"description": "Branch to push to (default 'main')."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • Build identity and terminal build status, including buildRunId.
  • The project is unlinked or its config is invalid.
  • The directory is not a Git repository with a commit.
  • Bundling, upload, build, authentication, or authorization fails.
  • The local wait can time out even while the remote build continues.

Guide: Deploy

Implementation: packages/mcp/src/tools/agents.ts

Start a real execution of the linked agent’s runnable build.

ContractBehavior
TaskStart a production run
AuthenticationRequired.
Runs inSapiom-managed agent runtime.
Side effectsCreates a production execution and can create metered capability usage inside that run.
{
"dir": "./hello-sapiom",
"input": {
"name": "Ada"
}
}
FieldTypeRequiredDescriptionConstraints
dirstringNoProject directory (defaults to the current working directory).
inputany JSON valueNoThe agent’s entry-step input (any JSON value).
Exact released input schema
{
"type": "object",
"properties": {
"dir": {
"type": "string",
"description": "Project directory (defaults to the current working directory)."
},
"input": {
"description": "The agent's entry-step input (any JSON value)."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • executionId, start metadata, and a dashboard webappUrl; this is a start receipt, not terminal output.
  • The project is unlinked.
  • No runnable build is available.
  • Input fails the agent’s entry schema.
  • Authentication, authorization, quota, or service availability blocks the start.

Guide: Run in production

Implementation: packages/mcp/src/tools/agents.ts

List recent executions, inspect one execution, or inspect a build; optionally wait for a run to settle.

ContractBehavior
TaskInspect builds and runs
AuthenticationRequired.
Runs inRead-only Sapiom service calls.
Side effectsNo hosted state change. wait: true performs bounded polling for up to 55 seconds.
{
"executionId": "<execution-id>",
"wait": true
}
FieldTypeRequiredDescriptionConstraints
dirstringNoProject directory (for build inspection, which needs the linked id).
executionIdstringNoExecution to inspect.
buildRunIdstringNoBuild to inspect (requires a linked project).
stepstring or numberNoExpand one step’s heavy fields: its stepName or stepOrder (from the compact step list). Pair with include to choose which fields.
attemptintegerNoRestrict expansion to a single attempt of the selected step (a retried step has several). Omit to expand every attempt of that step.
includearrayNoHeavy step fields to expand for the selected step: ‘input’ | ‘output’ | ‘logs’ | ‘events’ | ‘sharedState’ | ‘error’. Ignored without step. Each is capped to the char budget.
waitbooleanNoWhen inspecting an executionId, block until it reaches a terminal state (or settles on a pause needing a signal) instead of returning the current snapshot. Lets the tool own the polling so you don’t have to.
maxWaitSecondsnumberNoMax seconds to wait when wait:true (default 45, capped at 55). On timeout it returns the latest snapshot with waiting:true — call again to keep waiting.
Exact released input schema
{
"type": "object",
"properties": {
"dir": {
"type": "string",
"description": "Project directory (for build inspection, which needs the linked id)."
},
"executionId": {
"type": "string",
"description": "Execution to inspect."
},
"buildRunId": {
"type": "string",
"description": "Build to inspect (requires a linked project)."
},
"step": {
"type": [
"string",
"number"
],
"description": "Expand one step's heavy fields: its stepName or stepOrder (from the compact step list). Pair with `include` to choose which fields."
},
"attempt": {
"type": "integer",
"description": "Restrict expansion to a single attempt of the selected `step` (a retried step has several). Omit to expand every attempt of that step."
},
"include": {
"type": "array",
"items": {
"type": "string",
"enum": [
"input",
"output",
"logs",
"events",
"sharedState",
"error"
]
},
"description": "Heavy step fields to expand for the selected `step`: 'input' | 'output' | 'logs' | 'events' | 'sharedState' | 'error'. Ignored without `step`. Each is capped to the char budget."
},
"wait": {
"type": "boolean",
"description": "When inspecting an executionId, block until it reaches a terminal state (or settles on a pause needing a signal) instead of returning the current snapshot. Lets the tool own the polling so you don't have to."
},
"maxWaitSeconds": {
"type": "number",
"description": "Max seconds to wait when wait:true (default 45, capped at 55). On timeout it returns the latest snapshot with waiting:true — call again to keep waiting."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • Recent executions when no identity is supplied.
  • A compact execution plus webappUrl by default; select step and include to retrieve bounded heavy fields.
  • Build state when buildRunId is supplied with a linked project.
  • Build inspection is requested without a linked project configuration.
  • The execution, build, or linked definition cannot be found or accessed.
  • A selected step, attempt, or included field is invalid.

Guide: Inspect

Implementation: packages/mcp/src/tools/agents.ts

Deliver a named signal to the matching correlation ID in one paused execution.

ContractBehavior
TaskResume a paused run
AuthenticationRequired.
Runs inSapiom-managed agent runtime.
Side effectsCan resume one or more matching waits in a production execution. Reusing a signal identity can produce no match or duplicate-delivery evidence.
{
"executionId": "<execution-id>",
"name": "approval",
"correlationId": "request-123",
"payload": {
"approved": true
}
}
FieldTypeRequiredDescriptionConstraints
executionIdstringYesThe paused execution.
namestringYesSignal name to deliver.
correlationIdstringYesSignal correlation id.
payloadany JSON valueNoSignal payload (any JSON value).
Exact released input schema
{
"type": "object",
"properties": {
"executionId": {
"type": "string",
"description": "The paused execution."
},
"name": {
"type": "string",
"description": "Signal name to deliver."
},
"correlationId": {
"type": "string",
"description": "Signal correlation id."
},
"payload": {
"description": "Signal payload (any JSON value)."
}
},
"required": [
"executionId",
"name",
"correlationId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • Signal delivery result, including the number of matching waits. A zero match count is a delivered no-op, not necessarily an MCP failure.
  • The execution is not accessible.
  • Payload shape is invalid for the waiting step.

Guide: Use signals

Implementation: packages/mcp/src/tools/agents.ts

Create a recurring cron trigger or a one-off delayed run for a deployed agent.

ContractBehavior
TaskCreate a trigger
AuthenticationRequired.
Runs inSapiom scheduler.
Side effectsCreates a schedule that can start future production executions.
{
"definition": "hello-sapiom",
"kind": "schedule_cron",
"cron": "0 9 * * 1-5",
"timezone": "America/New_York",
"input": {}
}
FieldTypeRequiredDescriptionConstraints
definitionstringYesThe agent’s tenant-unique slug (the handle it was deployed under).
kindstringYes’schedule_cron’ = recurring; ‘schedule_once’ = a single delayed run.one of "schedule_cron", "schedule_once"
cronstringNoCron expression — required for ‘schedule_cron’. E.g. ‘0 9 * * 1-5’ = 9am on weekdays.
timezonestringNoIANA timezone the cron runs in (e.g. ‘America/New_York’). Defaults to UTC.
atstringNoISO 8601 fire time — required for ‘schedule_once’. E.g. ‘2026-07-01T17:00:00Z’.
inputany JSON valueNoExecution input passed to each run (any JSON value).
startAtstringNoCron only: ISO time before which no occurrence fires.
endAtstringNoCron only: ISO time after which the schedule completes.
policyany JSON valueNoCron only: { catchupPolicy?: ‘skip’|‘all’, overlapPolicy?: ‘allow’, jitterMs?: number }.
Exact released input schema
{
"type": "object",
"properties": {
"definition": {
"type": "string",
"description": "The agent's tenant-unique slug (the handle it was deployed under)."
},
"kind": {
"type": "string",
"enum": [
"schedule_cron",
"schedule_once"
],
"description": "'schedule_cron' = recurring; 'schedule_once' = a single delayed run."
},
"cron": {
"type": "string",
"description": "Cron expression — required for 'schedule_cron'. E.g. '0 9 * * 1-5' = 9am on weekdays."
},
"timezone": {
"type": "string",
"description": "IANA timezone the cron runs in (e.g. 'America/New_York'). Defaults to UTC."
},
"at": {
"type": "string",
"description": "ISO 8601 fire time — required for 'schedule_once'. E.g. '2026-07-01T17:00:00Z'."
},
"input": {
"description": "Execution input passed to each run (any JSON value)."
},
"startAt": {
"type": "string",
"description": "Cron only: ISO time before which no occurrence fires."
},
"endAt": {
"type": "string",
"description": "Cron only: ISO time after which the schedule completes."
},
"policy": {
"description": "Cron only: { catchupPolicy?: 'skip'|'all', overlapPolicy?: 'allow', jitterMs?: number }."
}
},
"required": [
"definition",
"kind"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • The schedule configuration, status, next fire time, and a health hint when available.
  • The agent slug does not identify an accessible deployed agent.
  • Required fields do not match kind.
  • Cron, timezone, time bounds, or policy is invalid.

Guide: Schedule

Implementation: packages/mcp/src/tools/agents.ts

List one agent’s schedules or inspect one schedule and its recent fires.

ContractBehavior
TaskInspect triggers
AuthenticationRequired.
Runs inRead-only Sapiom scheduler calls.
Side effectsNone.
{
"definition": "hello-sapiom",
"status": "active"
}
FieldTypeRequiredDescriptionConstraints
scheduleIdstringNoInspect one schedule (detail + recent fires + a health hint).
definitionstringNoList schedules for this agent slug (used when scheduleId is omitted).
statusstringNoFilter the list by status.one of "active", "paused", "completed", "disabled"
Exact released input schema
{
"type": "object",
"properties": {
"scheduleId": {
"type": "string",
"description": "Inspect one schedule (detail + recent fires + a health hint)."
},
"definition": {
"type": "string",
"description": "List schedules for this agent slug (used when scheduleId is omitted)."
},
"status": {
"type": "string",
"enum": [
"active",
"paused",
"completed",
"disabled"
],
"description": "Filter the list by status."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • A schedule with recent fires and a health hint when scheduleId is supplied, or a filtered schedule list when definition is supplied.
  • Neither scheduleId nor definition is supplied.
  • The schedule or agent is missing or inaccessible.
  • The status filter is invalid.

Guide: Schedule

Implementation: packages/mcp/src/tools/agents.ts

Disable all future fires for one schedule.

ContractBehavior
TaskCancel a trigger
AuthenticationRequired.
Runs inSapiom scheduler.
Side effectsIrreversibly disables future occurrences. It does not cancel an execution that already started.
{
"scheduleId": "<schedule-id>"
}
FieldTypeRequiredDescriptionConstraints
scheduleIdstringYesThe schedule to cancel.
Exact released input schema
{
"type": "object",
"properties": {
"scheduleId": {
"type": "string",
"description": "The schedule to cancel."
}
},
"required": [
"scheduleId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • The cancelled schedule’s resulting state.
  • The schedule is missing or inaccessible, or authentication, authorization, or service availability blocks cancellation.

Guide: Schedule

Implementation: packages/mcp/src/tools/agents.ts

Validate a cron expression and calculate upcoming UTC occurrences without creating a schedule.

ContractBehavior
TaskPreview a cadence
AuthenticationRequired.
Runs inRead-only Sapiom scheduler calculation.
Side effectsNone; no schedule is created.
{
"cron": "0 9 * * 1-5",
"timezone": "America/New_York",
"count": 5
}
FieldTypeRequiredDescriptionConstraints
cronstringYesCron expression to validate, e.g. ‘0 9 * * 1-5’.
timezonestringNoIANA timezone (default UTC).
countnumberNoHow many upcoming occurrences to return (default 5).
Exact released input schema
{
"type": "object",
"properties": {
"cron": {
"type": "string",
"description": "Cron expression to validate, e.g. '0 9 * * 1-5'."
},
"timezone": {
"type": "string",
"description": "IANA timezone (default UTC)."
},
"count": {
"type": "number",
"description": "How many upcoming occurrences to return (default 5)."
}
},
"required": [
"cron"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • Validated cron and timezone information plus the requested upcoming occurrences.
  • Cron syntax, timezone, or occurrence count is invalid.

Guide: Schedule

Implementation: packages/mcp/src/tools/agents.ts

Identify or inspect the released local configuration step for web-app previews. The direct preview sequence is not a supported public workflow while its hosted execution bypasses the agent-run capability boundary.

ContractBehavior
TaskConfigure a preview
AuthenticationA signed-in Sapiom MCP connection is required by the supported product contract.
Runs inLocal configuration write.
Side effectsWrites resources.&lt;name&gt; in sapiom.json; it does not deploy anything. Do not treat this as approval to continue into direct hosted preview execution.
{
"dir": "./web-app",
"name": "web",
"source": {
"kind": "upload",
"path": "."
},
"start": "npm run start",
"port": 3000
}
FieldTypeRequiredDescriptionConstraints
dirstringNoProject directory (defaults to the current working directory).
namestringYesResource name — the sapiom.json resources key and the sandbox name (e.g. web).
sourceobjectYesSee exact schema below.
buildstringNo
startstringYesminLength 1
portintegerYesminimum 1; maximum 65535
tierstringNoone of "xs", "s", "m", "l", "xl"
ttlstringNo
envobjectNo
Exact released input schema
{
"type": "object",
"properties": {
"dir": {
"type": "string",
"description": "Project directory (defaults to the current working directory)."
},
"name": {
"type": "string",
"description": "Resource name — the sapiom.json `resources` key and the sandbox name (e.g. `web`)."
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "upload"
},
"path": {
"type": "string"
}
},
"required": [
"kind"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "git"
},
"slug": {
"type": "string",
"minLength": 1
},
"path": {
"type": "string"
}
},
"required": [
"kind",
"slug"
],
"additionalProperties": false
}
]
},
"build": {
"type": "string"
},
"start": {
"type": "string",
"minLength": 1
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"tier": {
"type": "string",
"enum": [
"xs",
"s",
"m",
"l",
"xl"
]
},
"ttl": {
"type": "string"
},
"env": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"name",
"source",
"start",
"port"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • The validated stored preview configuration.
  • sapiom.json is missing or invalid.
  • The source, commands, port, tier, TTL, or environment map fails validation.

Implementation: packages/mcp/src/tools/sandbox.ts

Identify or inspect the released validation step for web-app previews. The direct preview sequence is not a supported public workflow while its hosted execution bypasses the agent-run capability boundary.

ContractBehavior
TaskValidate preview configuration
AuthenticationA signed-in Sapiom MCP connection is required by the supported product contract.
Runs inLocal configuration read and validation.
Side effectsNone.
{
"dir": "./web-app"
}
FieldTypeRequiredDescriptionConstraints
dirstringNoProject directory (defaults to the current working directory).
Exact released input schema
{
"type": "object",
"properties": {
"dir": {
"type": "string",
"description": "Project directory (defaults to the current working directory)."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • ok, normalized sandboxes, and actionable issues.
  • The project configuration cannot be read or parsed.

Implementation: packages/mcp/src/tools/sandbox.ts

The released package can upload, build, start, and expose a configured web app, but this direct hosted action is not a supported public workflow because it bypasses the agent-run capability boundary.

ContractBehavior
TaskPublish a temporary preview
AuthenticationRequired.
Runs inSapiom preview infrastructure.
Side effectsMay provision preview infrastructure, upload local code, run build/start commands, and expose a public URL. Do not invoke it until the product aligns preview execution with the approved agent-run-only capability boundary.
{
"dir": "./web-app",
"name": "web"
}
FieldTypeRequiredDescriptionConstraints
dirstringNoProject directory (defaults to the current working directory).
namestringNoWhich sandbox to deploy, when the project defines more than one.
Exact released input schema
{
"type": "object",
"properties": {
"dir": {
"type": "string",
"description": "Project directory (defaults to the current working directory)."
},
"name": {
"type": "string",
"description": "Which sandbox to deploy, when the project defines more than one."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • name, url, status, and logs. A failed status with logs is a successful tool response, not necessarily an MCP error.
  • Configuration is missing or ambiguous.
  • Authentication, provisioning, upload, build, or start fails.
  • Build/start failure can be represented by status: "failed"; inspect the returned logs.

Implementation: packages/mcp/src/tools/sandbox.ts

Send user-approved, plain-language product feedback to the Sapiom team.

ContractBehavior
TaskSend product feedback
AuthenticationRequired.
Runs inSapiom feedback service.
Side effectsCreates a feedback record. message and context are also included in MCP tool-call analytics; confirm the wording and never include code, files, logs, environment variables, keys, tokens, or other secrets.
{
"message": "The deploy error should identify the failing build stage.",
"context": "Deploying an agent after Local Run passed."
}
FieldTypeRequiredDescriptionConstraints
messagestringYesThe user’s feedback in their own words: what’s wrong, what they expected, or what they want. Plain language only — no code, logs, stack traces, or secrets.minLength 1
contextstringNoOptional one- or two-sentence plain-language summary of what the user was doing when the feedback came up (e.g. “deploying an agent after run_local passed”). Never include file contents, code snippets, logs, stack traces, environment variables, API keys, or tokens.
Exact released input schema
{
"type": "object",
"properties": {
"message": {
"type": "string",
"minLength": 1,
"description": "The user's feedback in their own words: what's wrong, what they expected, or what they want. Plain language only — no code, logs, stack traces, or secrets."
},
"context": {
"type": "string",
"description": "Optional one- or two-sentence plain-language summary of what the user was doing when the feedback came up (e.g. \"deploying an agent after run_local passed\"). Never include file contents, code snippets, logs, stack traces, environment variables, API keys, or tokens."
}
},
"required": [
"message"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
  • A plain-language receipt, with a reference ID when the service returns one.
  • The message is empty.
  • Authentication, authorization, network, or service submission fails.

Implementation: packages/mcp/src/tools/feedback.ts