Skip to main content
Glama

Update a project

update_project

Update a project: name, goal, owner, stage, health, dates, client stakeholder, or archive/reactivate it. Archiving hides it from list_projects but leaves its tasks intact. API reference: https://tango.applayer.io/docs/api/tools/update_project

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
goalNo
nameNo
stageNoWhere the project is in its life. Sets status too.
clientNoClient to scope the project lookup to.
healthNoA judgement call, not a computed value. Pair it with health_note.
statusNo
projectNoName or @handle of the project. Fuzzy-resolved.
deadlineNo
owner_idNoUser id of the person accountable for the project.
client_idNo
project_idNo
start_dateNoYYYY-MM-DD
health_noteNo
stakeholder_nameNo
stakeholder_roleNo
stakeholder_emailNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • addedInput schema / properties / health
      Added value: +{
      +  "description": "A judgement call, not a computed value. Pair it with health_note.",
      +  "enum": [
      +    "on_track",
      +    "at_risk",
      +    "off_track"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / health_note
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedInput schema / properties / owner_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "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"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "User id of the person accountable for the project."
      +}
    • addedInput schema / properties / stage
      Added value: +{
      +  "description": "Where the project is in its life. Sets status too.",
      +  "enum": [
      +    "planning",
      +    "active",
      +    "on_hold",
      +    "complete",
      +    "archived"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / stakeholder_email
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedInput schema / properties / stakeholder_name
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedInput schema / properties / stakeholder_role
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedInput schema / properties / start_date
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "YYYY-MM-DD"
      +}
  2. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations only give readOnlyHint=false and destructiveHint=false, so the description carries the real behavioral burden and delivers a genuinely non-obvious fact: archiving hides the project from list_projects but leaves its tasks intact. It does not cover reversibility details beyond 'reactivate' or the effect of omitting fields.

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?

Two front-loaded sentences plus a doc link; the field enumeration comes first and the archive side-effect follows. Efficient overall, though the API URL adds length without much selection value.

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

Completeness3/5

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

For a 16-parameter mutation tool with no output schema, the description covers the safety profile and the notable archive behavior but omits what happens on partial updates, whether a project identifier is required, and how conflicting fields (stage setting status) resolve. Adequate but with clear gaps.

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 only 38% across 16 parameters, so the description must compensate. It does map most updatable fields (name, goal, owner, stage, health, dates, stakeholder, archive status), but leaves key distinctions unexplained — e.g., project vs project_id lookup, client vs client_id, and how health pairs with health_note (that detail lives in the schema, not the description).

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 description states a specific verb (update) and resource (project) and enumerates the mutable fields, so an agent can tell it apart from read tools like get_project_context or list_projects. It does not, however, distinguish itself from narrower siblings such as set_project_health or update_project_context, which also mutate project state.

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 is only implied: the field list suggests 'call this when you need to change any of these project attributes.' There is no explicit when-to-use vs set_project_health/update_project_context, no prerequisites, and no statement about whether at least one field must be supplied.

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