Skip to main content
Glama

agent_run_start

Start a TeamShared Cloud Agent (router + FastMCP). Not a Cursor VM.

The worker mints a short-lived org tsk_ and runs the tool loop against in-process FastMCP. github= is an optional checkout. One active run per work item — a busy run returns status=busy. When the compact bootstrap profile is non-empty it is prepended (capped). When work_id has playbook_slug, that named playbook is prepended after the profile, its skills listed by name for the run to load with memory_skill_get. Unset slug or omitted work_id: no playbook inject. run.model is the model that will run: a model= the router would refuse is substituted (see model_substitution). agent_slug= binds the run to an agent record (#733); the result's agent.inherited says which settings came from it. When that record has a spend cap and the period's spend is at or over it, the start is refused (agent_budget_exceeded) and nothing is queued. From inside a run, tools cannot exceed that run's allowlist (tools_not_permitted when nothing overlaps), and the new run is nested under that run. A chain of nested starts stops at a fixed depth (nesting_depth_exceeded). With no calling run, parent_run_id must name a run in this org (parent_run_not_found, or bad_id).

Input Schema

NameRequiredDescriptionDefault
repoNoOptional workspace slug stored on the run
agentNoOverride agent attribution label
modelNoRouter model id (prefixed, e.g. openrouter/...); omit to use TEAMSHARED_AGENT_RUN_MODEL. An id the router would refuse (no routable prefix) is replaced by that default and the result carries model_substitution={requested, model, reason}.
toolsNoTool name/prefix patterns this run may bind (e.g. ['work_*','memory_recall']). Narrows the box allowlist; never widens it. Omit for the deployment default. From inside a run, the list cannot exceed that run's tools.
githubNoowner/repo checkout. Omit on a work item tagged code to use the org's only connected repo (github_repo_list); omit otherwise for a no-repo run. A slug the App does not serve is refused once an installation exists. A failed installation read refuses a named slug (github_binding_unavailable)
promptYesTask prompt for the TeamShared Cloud Agent
runtimeNoEvery value starts a TeamShared Cloud Agent on the in-box worker. Omit it, or pass cloud or teamshared. cursor, cursor_cloud, and cursor-cloud are refused with runtime_disabled while TEAMSHARED_CURSOR_CLOUD_RUNTIME_ENABLED is off; with the flag on those names still run on the same TeamShared worker.
work_idNoWork item UUID; reuses that item's TeamShared agent
agent_slugNoAgent record to run as (agent-<label> or <label>; see agent_list). The run inherits the record's model and tools: an explicit model= wins, an explicit tools= can only narrow the agent's. Unknown, paused or archived agents are refused. A record that has spent its budget_usd cap for the current period is refused with agent_budget_exceeded; a run already going is left to finish.
spawned_byNoParent Agent slug or label (dispatcher that spawned this worker)
parent_run_idNoParent agent run UUID when this is a nested child run. From inside a run, that run is the parent. With no calling run, the id must be a run in this org
auto_create_prNoHint to open a PR when a coding worker finishes. Defaults to true when the run checks out a repo, and stays unset when it does not
durable_memoryNoNested runs are ephemeral: no capture session or run memory of their own, the parent's work thread is the record. Set true for a specialist that must keep its own memory.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / auto_create_pr / description
      Previous value: -"Hint to open a PR when a coding worker finishes (default true)"New value: +"Hint to open a PR when a coding worker finishes. Defaults to true when the run checks out a repo, and stays unset when it does not"
    • changedInput schema / properties / github / description
      Previous value: -"owner/repo — optional checkout for the worker. Omit for a no-repo run"New value: +"owner/repo checkout. Omit on a work item tagged code to use the org's only connected repo (github_repo_list); omit otherwise for a no-repo run. A slug the App does not serve is refused once an installation exists. A failed installation read refuses a named slug (github_binding_unavailable)"
  2. Changed2 schema fields changed
    • changedInput schema / properties / parent_run_id / description
      Previous value: -"Parent agent run UUID when this is a nested child run; defaults to the run that invoked this tool"New value: +"Parent agent run UUID when this is a nested child run. From inside a run, that run is the parent. With no calling run, the id must be a run in this org"
    • changedInput schema / properties / tools / description
      Previous value: -"Tool name/prefix patterns this run may bind (e.g. ['work_*','memory_recall']). Narrows the box allowlist; never widens it. Omit for the deployment default."New value: +"Tool name/prefix patterns this run may bind (e.g. ['work_*','memory_recall']). Narrows the box allowlist; never widens it. Omit for the deployment default. From inside a run, the list cannot exceed that run's tools."
  3. Changed1 schema field changed
    • addedInput schema / properties / runtime
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Every value starts a TeamShared Cloud Agent on the in-box worker. Omit it, or pass cloud or teamshared. cursor, cursor_cloud, and cursor-cloud are refused with runtime_disabled while TEAMSHARED_CURSOR_CLOUD_RUNTIME_ENABLED is off; with the flag on those names still run on the same TeamShared worker."
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / agent_slug / description
      Previous value: -"Agent record to run as (agent-<label> or <label>; see agent_list). The run inherits the record's model and tools: an explicit model= wins, an explicit tools= can only narrow the agent's. Unknown, paused or archived agents are refused."New value: +"Agent record to run as (agent-<label> or <label>; see agent_list). The run inherits the record's model and tools: an explicit model= wins, an explicit tools= can only narrow the agent's. Unknown, paused or archived agents are refused. A record that has spent its budget_usd cap for the current period is refused with agent_budget_exceeded; a run already going is left to finish."
  5. Changed1 schema field changed
    • addedInput schema / properties / agent_slug
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Agent record to run as (agent-<label> or <label>; see agent_list). The run inherits the record's model and tools: an explicit model= wins, an explicit tools= can only narrow the agent's. Unknown, paused or archived agents are refused."
      +}
  6. Changed1 schema field changed
    • addedInput schema / properties / durable_memory
      Added value: +{
      +  "default": false,
      +  "description": "Nested runs are ephemeral: no capture session or run memory of their own, the parent's work thread is the record. Set true for a specialist that must keep its own memory.",
      +  "type": "boolean"
      +}
  7. Changed1 schema field changed
    • addedInput schema / properties / parent_run_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Parent agent run UUID when this is a nested child run; defaults to the run that invoked this tool"
      +}
  8. Changed1 schema field changed
    • changedInput schema / properties / model / description
      Previous value: -"Router model id; omit to use TEAMSHARED_AGENT_RUN_MODEL"New value: +"Router model id (prefixed, e.g. openrouter/...); omit to use TEAMSHARED_AGENT_RUN_MODEL. An id the router would refuse (no routable prefix) is replaced by that default and the result carries model_substitution={requested, model, reason}."
  9. Changed1 schema field changed
    • addedInput schema / properties / tools
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Tool name/prefix patterns this run may bind (e.g. ['work_*','memory_recall']). Narrows the box allowlist; never widens it. Omit for the deployment default."
      +}
  10. Changed5 schema fields changed
    • changedInput schema / properties / auto_create_pr / description
      Previous value: -"Open a PR when the coding worker finishes (default true for workers)"New value: +"Hint to open a PR when a coding worker finishes (default true)"
    • changedInput schema / properties / github / description
      Previous value: -"owner/repo — spawns a repo worker. Omit for the no-repo dispatcher"New value: +"owner/repo — optional checkout for the worker. Omit for a no-repo run"
    • changedInput schema / properties / model / description
      Previous value: -"Cursor model id; omit to use the org default"New value: +"Router model id; omit to use TEAMSHARED_AGENT_RUN_MODEL"
    • changedInput schema / properties / prompt / description
      Previous value: -"Task prompt for the Cursor cloud agent"New value: +"Task prompt for the TeamShared Cloud Agent"
    • changedInput schema / properties / work_id / description
      Previous value: -"Work item UUID; reuses that item's Cursor agent"New value: +"Work item UUID; reuses that item's TeamShared agent"
  11. Added

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly: it discloses one-active-run-per-work-item concurrency, budget refusal semantics (agent_budget_exceeded, nothing queued), allowlist narrowing that can never widen, nesting depth limits, model substitution, auto PR defaults, and durable_memory's ephemeral-by-default behavior. These are exactly the mutation side effects an agent needs before calling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence carries information and the purpose is front-loaded, but the body is a dense, unbulleted blob with mid-sentence line breaks that make it hard to scan. The volume is defensible for a 13-parameter tool, yet the lack of structure costs it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter mutation tool with no annotations, the description covers concurrency, permissions, failure modes, and injection behavior well, and an output schema exists so return values need not be explained. The remaining gap is sibling disambiguation against agent_run_child and agent_run_followup, which matters because nesting is a described behavior of this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuinely new semantics: explicit model= beats the agent record's model, explicit tools= can only narrow the agent's, github defaults depend on the work item's code tag, and durable_memory changes nested-run lifecycle. It goes past restating the schema, though playbook_slug is referenced in prose despite not being a parameter of this tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific verb and resource ("Start a TeamShared Cloud Agent (router + FastMCP)") and rules out a plausible misreading with "Not a Cursor VM." It does not, however, differentiate itself from close siblings like agent_run_child or agent_run_followup, so an agent still has to infer which run-starting tool applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage conditions are implied rather than stated as routing rules: busy runs return status=busy, budget-capped agents are refused, nested starts are capped at a fixed depth. There is no explicit "use this instead of agent_run_child/agent_run_followup when..." guidance, so the when-to-use decision against siblings remains inferential.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.