Skip to main content
Glama

twprojects-list_project_updates

Read-only

List project updates: the Markdown text on a project's dashboard and the health it reports, newest first. Filter by project, health, or date; fetch history with active_only=false.

Instructions

List project updates: the Markdown text on a project's dashboard and the health it reports. Nothing else returns either — a project row carries no health, and the activity log holds a preview of the text, not the text. Newest first. Only each project's current update is returned unless active_only is false, so an unfiltered call is not the whole history. Rows carry text (Markdown, in full, emoji codes already converted to characters), health (0 not set, 1 bad, 2 ok, 3 good), healthLabel (the name this installation gives that rating — read it, never build one from health) and color (hex, empty when the health is not set). The author and the project are bare IDs, sideloaded under included when verbose is true. Keep a response small with fields and page_size; verbose=false drops the text and returns the ratings.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination of results (1-based).
fieldsNoThe attributes to return for each project update, from the listed names.
verboseNoIf false, returns id + name only — useful when scanning many results.
order_byNoThe field to sort the project updates by. Omit to keep the ordering the API applies by default.
page_sizeNoNumber of results per page for pagination (1-500).
count_onlyNoIf true, return only {"count": N}: the exact number of matching project updates, no rows — use for "how many". Ignores page, page_size, verbose, fields.
order_modeNoThe direction to sort the results in.
active_onlyNoIf true (the default), return only each project's current update. Set it to false to read the update history, which returns every past update in full.
project_idsNoOnly return the updates of these projects. Naming any project makes the endpoint ignore every other project filter, including project_healths and include_archived.
show_deletedNoIf true, return deleted updates alongside the live ones; excluded by default.
created_afterNoOnly include updates posted at or after this moment; the boundary itself matches. Accepts an RFC 3339 timestamp (2026-08-03T14:30:00Z) or a plain YYYY-MM-DD date (2026-08-03), which covers that whole day in UTC.
updated_afterNoOnly include updates last edited strictly after this moment; the boundary itself does not match. Accepts an RFC 3339 timestamp (2026-08-03T14:30:00Z) or a plain YYYY-MM-DD date (2026-08-03), which covers that whole day in UTC.
project_healthsNoOnly return the updates reporting these health ratings, matching any of the values given. "not_set" matches an update that rates nothing. Ignored when project_ids is set.
include_archivedNoIf true, return the updates of archived projects alongside those of the active ones; excluded by default. Ignored when project_ids is set.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
metaNo
countNoExact number of matches across every page. Returned instead of the rows when count_only.
includedNo
projectUpdatesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.41.0
    • changedInput schema / properties / fields / items / enum
      Previous value: -[
      -  "id",
      -  "text",
      -  "health",
      -  "healthLabel",
      -  "color",
      -  "projectId",
      -  "project",
      -  "createdBy",
      -  "createdAt",
      -  "updatedAt",
      -  "isActive",
      -  "deleted",
      -  "deletedAt",
      -  "deletedBy",
      -  "likeFromUserIDs",
      -  "likeFromUsers",
      -  "reactions"
      -]New value: +[
      +  "id",
      +  "text",
      +  "health",
      +  "healthLabel",
      +  "color",
      +  "project",
      +  "createdBy",
      +  "createdAt",
      +  "updatedAt",
      +  "isActive",
      +  "deleted",
      +  "deletedAt",
      +  "deletedBy",
      +  "likeFromUsers",
      +  "reactions"
      +]
    • removedOutput schema / properties / projectUpdates / items / properties / likeFromUserIDs
      Removed value: -{
      -  "items": {
      -    "type": "integer"
      -  },
      -  "type": [
      -    "null",
      -    "array"
      -  ]
      -}
    • removedOutput schema / properties / projectUpdates / items / properties / projectId
      Removed value: -{
      -  "type": "integer"
      -}
  2. Changed34 schema fields changedv1.39.3
    • removedInput schema / properties / active_only / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / active_only / type
      Added value: +"boolean"
    • removedInput schema / properties / count_only / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / count_only / type
      Added value: +"boolean"
    • changedInput schema / properties / created_after / anyOf
      Previous value: -[
      -  {
      -    "format": "date-time",
      -    "type": "string"
      -  },
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "format": "date-time",
      +    "type": "string"
      +  },
      +  {
      +    "format": "date",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / fields / anyOf
      Removed value: -[
      -  {
      -    "items": {
      -      "enum": [
      -        "id",
      -        "text",
      -        "health",
      -        "healthLabel",
      -        "color",
      -        "projectId",
      -        "project",
      -        "createdBy",
      -        "createdAt",
      -        "updatedAt",
      -        "isActive",
      -        "deleted",
      -        "deletedAt",
      -        "deletedBy",
      -        "likeFromUserIDs",
      -        "likeFromUsers",
      -        "reactions"
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / fields / items
      Added value: +{
      +  "enum": [
      +    "id",
      +    "text",
      +    "health",
      +    "healthLabel",
      +    "color",
      +    "projectId",
      +    "project",
      +    "createdBy",
      +    "createdAt",
      +    "updatedAt",
      +    "isActive",
      +    "deleted",
      +    "deletedAt",
      +    "deletedBy",
      +    "likeFromUserIDs",
      +    "likeFromUsers",
      +    "reactions"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / fields / type
      Added value: +"array"
    • removedInput schema / properties / include_archived / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / include_archived / type
      Added value: +"boolean"
    • removedInput schema / properties / order_by / anyOf
      Removed value: -[
      -  {
      -    "enum": [
      -      "date",
      -      "color",
      -      "health",
      -      "project",
      -      "user",
      -      "id"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / order_by / enum
      Added value: +[
      +  "date",
      +  "color",
      +  "health",
      +  "project",
      +  "user",
      +  "id"
      +]
    • addedInput schema / properties / order_by / type
      Added value: +"string"
    • removedInput schema / properties / order_mode / anyOf
      Removed value: -[
      -  {
      -    "enum": [
      -      "asc",
      -      "desc"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / order_mode / enum
      Added value: +[
      +  "asc",
      +  "desc"
      +]
    • addedInput schema / properties / order_mode / type
      Added value: +"string"
    • removedInput schema / properties / page / anyOf
      Removed value: -[
      -  {
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / page / minimum
      Added value: +1
    • addedInput schema / properties / page / type
      Added value: +"integer"
    • removedInput schema / properties / page_size / anyOf
      Removed value: -[
      -  {
      -    "maximum": 500,
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / page_size / maximum
      Added value: +500
    • addedInput schema / properties / page_size / minimum
      Added value: +1
    • addedInput schema / properties / page_size / type
      Added value: +"integer"
    • removedInput schema / properties / project_healths / anyOf
      Removed value: -[
      -  {
      -    "items": {
      -      "enum": [
      -        "good",
      -        "ok",
      -        "bad",
      -        "not_set"
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / project_healths / items
      Added value: +{
      +  "enum": [
      +    "good",
      +    "ok",
      +    "bad",
      +    "not_set"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / project_healths / type
      Added value: +"array"
    • removedInput schema / properties / project_ids / anyOf
      Removed value: -[
      -  {
      -    "items": {
      -      "type": "integer"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / project_ids / items
      Added value: +{
      +  "type": "integer"
      +}
    • addedInput schema / properties / project_ids / type
      Added value: +"array"
    • removedInput schema / properties / show_deleted / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / show_deleted / type
      Added value: +"boolean"
    • changedInput schema / properties / updated_after / anyOf
      Previous value: -[
      -  {
      -    "format": "date-time",
      -    "type": "string"
      -  },
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "format": "date-time",
      +    "type": "string"
      +  },
      +  {
      +    "format": "date",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / verbose / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / verbose / type
      Added value: +"boolean"
  3. Addedv1.38.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, yet the description adds substantial behavior: the active_only default silently truncating history, project_ids overriding all other project filters, health's numeric mapping (0 not set / 1 bad / 2 ok / 3 good), healthLabel being installation-specific and not to be reconstructed, color being empty when health is unset, and verbose=false dropping the text. This is well beyond what annotations supply.

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 with purpose and default behavior, and every clause carries operational information rather than filler. It is dense and fairly long for a list tool, but the length is justified by the 14 parameters and the non-obvious active_only/project_ids interactions, so compression would cost real detail.

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?

For a 14-parameter list tool with an output schema present, the description supplies everything an agent needs: default scoping, filter-override rules, field-level return semantics, and how to shrink responses. Return-shape detail beyond rows is unnecessary given the output schema, so 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?

With schema coverage at 100%, the baseline is 3, but the description goes further by explaining the health field's numeric-to-label mapping and the instruction to read healthLabel rather than synthesize it, plus the practical interaction between verbose and the returned text. These are semantic details that the schema's per-parameter descriptions do not convey.

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 ("List project updates") and immediately identifies what uniquely lives here: the Markdown dashboard text and the health rating. It explicitly distinguishes itself from siblings by noting that a project row carries no health and the activity log holds only a preview of the text, so an agent can route correctly without opening schemas.

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

Usage Guidelines4/5

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

Gives clear operating context: "Only each project's current update is returned unless active_only is false, so an unfiltered call is not the whole history," plus guidance to keep responses small via fields/page_size. It compares against the project row and activity log as alternative sources but does not phrase it as explicit when-to-use-versus-a-named-tool guidance, so it stops just short of a 5.

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

Deploy Server

Other Tools