Sasha MCP reference

checkExecution

Check a skill execution

Poll the status of a skill run started by one of the skill_ tools. Returns status (running/completed/failed/timeout), a result summary when finished, the knowledge-base path of the deliverable when the skill saved one (pass it to readDoc), and timing. Wait a minute or two between polls. Skill runs typically take 1–10 minutes.

Arguments

ArgumentTypeRequiredDescription
executionIdstringrequiredThe executionId returned when the skill was started

Scopes

skills:run

Annotations

  • Read only: yes
  • Destructive: no

When to use

A skill_<name> tool starts a skill and returns an executionId at once. The skill runs in the background, usually for 1 to 10 minutes. Use checkExecution with that executionId to learn when it ends and what it produced.

The tool needs the skills:run scope. Only admin and staff can hold skills:run, so a member's connection never has this tool or the skill family.

  • Wait a minute or two between polls.
  • status is running, completed, failed or timeout.
  • resultStatus and summary come from the skill when it ends. They are null while it runs.
  • outputPath is the knowledge-base path of the document that the skill saved, in the form <project>/<path>. Pass it to readDoc. It is null when the skill saved no document in the knowledge base.
  • error holds the failure message when the run failed or timed out.
  • durationMs and completedAt are null while the skill runs.

The tool finds a run by its id only. It does not check which connection started the run.

Example

{ "executionId": "3f2b9c1e-7a4d-4e8b-9c61-2d5f0a8b7e14" }

While the skill runs:

{
  "executionId": "3f2b9c1e-7a4d-4e8b-9c61-2d5f0a8b7e14",
  "skill": "proposal-draft",
  "status": "running",
  "resultStatus": null,
  "summary": null,
  "outputPath": null,
  "error": null,
  "startedAt": "2026-10-02T09:14:05.112Z",
  "completedAt": null,
  "durationMs": null
}

After it ends:

{
  "executionId": "3f2b9c1e-7a4d-4e8b-9c61-2d5f0a8b7e14",
  "skill": "proposal-draft",
  "status": "completed",
  "resultStatus": "completed",
  "summary": "Drafted a proposal for the regional health client from the proposal template and the pricing policy.",
  "outputPath": "northwind-advisory/proposals/regional-health-proposal.md",
  "error": null,
  "startedAt": "2026-10-02T09:14:05.112Z",
  "completedAt": "2026-10-02T09:19:41.870Z",
  "durationMs": 336758
}

Refusals and what to do

  • Error in checkExecution: Execution not found: <executionId>: no skill run has that id. Check that you passed the executionId exactly as the skill_<name> tool returned it. Ids of other kinds of run are not found either.
  • If the connection does not hold skills:run, the tool is not in your tool list, and a call to it returns MCP error -32602: Tool checkExecution not found. Read the permissions section of getDocs. A scope is never added to an existing connection: the person must reconnect, or mint a new token, with skills:run. Only admin and staff can hold it.
  • A status of failed or timeout is not a refusal. Read error, then decide whether to start the skill again.

Related

  • The skill family starts the run and returns the executionId.
  • readDoc reads the document at outputPath.
  • searchKnowledge finds output that a skill wrote somewhere else in the knowledge base.
  • getDocs has a skills section.
made with bernard

Cookie settings