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.

Input Schema

TableJSON 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.
githubNoowner/repo — optional checkout for the worker. Omit for a no-repo run
promptYesTask prompt for the TeamShared Cloud Agent
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.
spawned_byNoParent Agent slug or label (dispatcher that spawned this worker)
parent_run_idNoParent agent run UUID when this is a nested child run; defaults to the run that invoked this tool
auto_create_prNoHint to open a PR when a coding worker finishes (default true)
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

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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."
      +}
  2. 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"
      +}
  3. 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"
      +}
  4. 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}."
  5. 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."
      +}
  6. 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"
  7. Added

TDQS

A4.4/5.0
Behavior5/5

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

No annotations are present, so the description carries the full burden and does so richly: single-active-run concurrency, busy status, capped profile prepending, playbook injection order, model substitution with model_substitution={requested, model, reason}, and agent_slug inheritance with agent.inherited reporting. This is well beyond what a bare tool name conveys.

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

Conciseness4/5

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

Front-loaded and appropriately sized for a 12-param tool, with the key disambiguation up front. Some sentences are awkwardly terse ('Unset slug or omitted work_id: no playbook inject.') and layers of parentheticals reduce scanability, but little is wasted.

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

Completeness5/5

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

An output schema exists, so return values need not be explained, and the description covers the concurrency model, injection behavior, substitution, and inheritance an agent needs to invoke this correctly. Nothing material is missing.

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 description coverage is 100%, so the baseline is 3, but the description adds genuinely non-redundant semantics: how model= is substituted when the router would refuse it, how agent_slug= inherits model/tools (explicit model wins, explicit tools can only narrow), and the ephemeral-vs-durable memory of nested runs.

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

Purpose5/5

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

Opens with a specific verb+resource ('Start a TeamShared Cloud Agent (router + FastMCP)') and immediately disambiguates with 'Not a Cursor VM.' An agent can distinguish this from agent_run_cancel/followup/status siblings without opening the schema.

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?

It gives situational constraints (one active run per work item; a busy run returns status=busy; playbook/profile injection rules) but never names an alternative tool or states when to prefer agent_run_followup or agent_run_status instead. Usage is implied rather than routed.

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.