Skip to main content
Glama

team_assignment_add_photo

Attaches a job photo to an assignment — only the assignee, and only while the job is 'accepted', 'in_progress', or 'completed'. photo_key must be one minted by POST /api/desk/assignments/upload for this tenant; re-attaching the same key is a no-op, and the row holds at most 20 photos. NEXT: team_assignment_complete once proof is attached.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "id": "<id>",
      "photo_key": "<photo_key>"
    },
    "name": "team_assignment_add_photo"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesThe team_assignment id (team_assignment_list shows them).
titleNo
due_atNo
statusNo
priorityNo
photo_keyYesThe R2 key minted by POST /api/desk/assignments/upload for this tenant — attaching an unminted key or another tenant's key fails validation.
started_atNo
accepted_atNo
artifact_idNo
assigned_toNo
declined_atNo
descriptionNo
photos_jsonNo
completed_atNo
reassigned_atNo
reassigned_byNo
attachment_keyNo
decline_reasonNo
attachment_nameNo
attachment_typeNo
previous_statusNo
completion_notesNo
previous_assigneeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations (which only declare non-readOnly, non-destructive): it discloses the authorization rule, the allowed state machine window, the requirement that photo_key be minted per-tenant (another tenant's key fails), the dedupe no-op, and the 20-photo row cap. That is exactly the kind of constraint an agent cannot infer from hints or schema.

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

Conciseness5/5

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

Three compact sentences, front-loaded with the action and the gating conditions, then the key constraint, then the next step. No filler and the ordering matches how the agent needs the information.

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?

No output schema exists, so the description should hint at the result, and the no-op and 20-photo cap partially cover that, but it never says what the call returns or what happens when the cap is hit. For a mutation with a large shared schema, the remaining gap is modest but real.

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

Parameters2/5

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

Schema description coverage is only 9%, so the description carries the burden — and it explains photo_key richly (minting endpoint, tenant binding, no-op on repeat) but says nothing about why the other ~21 properties (title, due_at, status, photos_json, etc.) exist on a photo-attach call or whether they are ignored. An agent has no guidance on those fields beyond additionalProperties=false.

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 and resource ('attaches a job photo to an assignment') and immediately bounds scope by actor and job status. An agent can distinguish it from team_assignment_complete or team_assignment_update without reading any schema.

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 preconditions (only the assignee, only in accepted/in_progress/completed) and an explicit next-step routing: 'NEXT: team_assignment_complete once proof is attached.' The when-to-use and what-comes-next are both stated rather than implied.

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