Skip to main content
Glama

Create a task

create_task

Creates a task on the shared board. client is REQUIRED (except on subtasks, which inherit it from their parent): if the human has not said which client this is for, ask them rather than guessing. Call list_client_team first to see which humans and agents work on that client, then set assignee to yourself (@<your-handle>) or the best-suited teammate — do not leave tasks unassigned. Always set goal and definition_of_done. Task tenant is derived from the client (client is authoritative). Cross-agency assignments require allow_cross_agency: true and are audit-logged.

ONE TASK PER DELIVERABLE. A task is one deliverable, one worker, one verifiable outcome. If the ask contains more than one deliverable, it is more than one task — pass them together in subtasks so the parent and its children are created in one call. Tango runs a scope check on every creation: if the result comes back with needs_decomposition: true, the task is not workable until child tasks exist (created with parent_id or subtasks) or request_decomposition is called. Do not begin work on a task flagged for decomposition. Do not split below the point where one worker can finish and one reviewer can check; smaller is not better, and every extra task costs a claim, a handoff and a receipt. API reference: https://tango.applayer.io/docs/api/tools/create_task

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
goalNoWhat outcome are we after?
roleNoRole tag, e.g. 'coder', 'reviewer'.
typeNoDefault 'task'.
titleYes
clientNoREQUIRED unless parent_id is set. Name or @handle of the client/workspace. Fuzzy-resolved.
inputsNoThe governed inputs this work starts from. Each artifact input is pinned to its current content fingerprint, so the task records exactly which version was handed over and flags it later if the source moves on.
projectNoREQUIRED unless parent_id is set. Name or @handle of the project this task belongs to (e.g. "Website", "Google Ads"). Call list_projects first and ask the human — never invent a project.
sourcesNoURLs or references the assignee should read first.
assigneeNoName, @handle, or email of the assignee. Fuzzy-resolved.
deadlineNoISO 8601 deadline.
subtasksNoBreak the ask down in one call: the parent plus its children, each created with a parent link, inheriting client, project and organization. Use this whenever the ask has more than one deliverable.
authorityNoWhat the worker may do unattended. Everything is off unless granted; anything not granted must be escalated to the approver. Omit to inherit the organization's default for this role.
client_idNoScope the task to a Tango client (shared workspace).
parent_idNo
depends_onNoIds of tasks that must reach done or approved before this one is workable. Must be in the same organization; cycles are rejected.
project_idNoProject id, if already known.
approver_idNo
assignee_idNoHuman user id to assign to.
constraintsNoLimits: budget, style, do-not-touch, deadlines context.
descriptionNo
acting_worker_idNoOptional. The worker raising this task, recorded as the creator so whoever picks it up knows who to go back to for clarity. Defaults to the worker bound to this connection. Verified against caller ownership.
estimate_minutesNoRough effort in minutes. Anything over 240 is treated as more than one task.
allow_cross_agencyNoExplicit opt-in to assign across agencies. Audited.
assignee_worker_idNoWorker id to assign to.
definition_of_doneNoConcrete acceptance criteria.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / authority
      Added value: +{
      +  "description": "What the worker may do unattended. Everything is off unless granted; anything not granted must be escalated to the approver. Omit to inherit the organization's default for this role.",
      +  "properties": {
      +    "contact_client": {
      +      "description": "May contact the client directly.",
      +      "type": "boolean"
      +    },
      +    "deploy": {
      +      "description": "May deploy to production.",
      +      "type": "boolean"
      +    },
      +    "merge": {
      +      "description": "May merge code to a protected branch.",
      +      "type": "boolean"
      +    },
      +    "note": {
      +      "description": "A boundary in plain words.",
      +      "maxLength": 500,
      +      "type": "string"
      +    },
      +    "publish": {
      +      "description": "May publish externally without asking.",
      +      "type": "boolean"
      +    },
      +    "send": {
      +      "description": "May send to a recipient outside the organization.",
      +      "type": "boolean"
      +    },
      +    "spend": {
      +      "description": "May spend money.",
      +      "type": "boolean"
      +    },
      +    "spend_cap_usd": {
      +      "description": "Ceiling on spend, in USD.",
      +      "exclusiveMinimum": 0,
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / inputs
      Added value: +{
      +  "description": "The governed inputs this work starts from. Each artifact input is pinned to its current content fingerprint, so the task records exactly which version was handed over and flags it later if the source moves on.",
      +  "items": {
      +    "properties": {
      +      "artifact_id": {
      +        "description": "An existing Tango artifact this work starts from.",
      +        "format": "uuid",
      +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +        "type": "string"
      +      },
      +      "external_url": {
      +        "description": "A link, when the input lives outside Tango.",
      +        "format": "uri",
      +        "type": "string"
      +      },
      +      "label": {
      +        "description": "What this input is, e.g. 'Approved brief' or 'Brand guidelines'.",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "note": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "label"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / acting_worker_id
      Added value: +{
      +  "description": "Optional. The worker raising this task, recorded as the creator so whoever picks it up knows who to go back to for clarity. Defaults to the worker bound to this connection. Verified against caller ownership.",
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +  "type": "string"
      +}
  3. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations (which only say not read-only and not destructive). Discloses the scope-check behavior ('needs_decomposition: true' response), tenant derivation from client, audit-logging of cross-agency assignments, the escalation rule for ungranted authority, and the cost of over-splitting. No annotation contradiction.

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?

Well front-loaded with the creation act and the client requirement, then the decomposition rule. Some density in the decomposition/scope-check paragraph, but every sentence earns its place. Slightly long, but appropriate for the tool's complexity.

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?

Covers the critical behaviors for a creation tool with 25 params, nested objects, and no output schema: required fields, inheritance rules, scope check, cost of splitting, cross-agency auditing. The authority/scopes and dependency mechanics are only sketched, leaving some inference, but the description is substantively complete for a tool of this complexity.

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

Parameters3/5

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

Schema coverage is 84%, so structured fields already document most parameters. The description adds semantic policy on client (REQUIRED except subtasks), assignee (do not leave unassigned), goal and definition_of_done (always set), and allow_cross_agency. It does not explain authority, inputs, sources, depends_on, etc., beyond what the schema provides. Baseline 3 befits a high-coverage schema.

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?

States a specific verb+resource ('Creates a task on the shared board') and immediately differentiates scope: one task = one deliverable, siblings like update_task/delete_task not confused. The one-task-per-deliverable rule distinguishes its behavior from bulk_update_tasks and request_decomposition.

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

Usage Guidelines5/5

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

Explicit when-to-use guidance: 'ONE TASK PER DELIVERABLE... If the ask contains more than one deliverable, it is more than one task — pass them together in subtasks.' Also names the alternative (request_decomposition) and when it's needed. Rules on client, project, assignee, goal, and definition_of_done are all specified.

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.

Resources