Skip to main content
Glama

list_news

Read-onlyIdempotent

Retrieve paginated OpenProject news entries, filtered by project or title/summary search. Use it to browse announcements page by page and cap each entry's text length.

Instructions

List news entries, optionally filtered by project or title/summary search.

total is only the count of allowed news entries returned on THIS page, not a full count of all matches; the search stops as soon as it has enough, so an exact total would need an extra full walk. Page until next_offset is null.

text_limit caps each entry's summary/description at that many characters (default: the server's configured OPENPROJECT_TEXT_LIMIT, NOT unlimited -- unlike get_news's single-item default). When text is cut, description_truncated is true and description_length reports the real length.

Input Schema

NameRequiredDescriptionDefault
limitNoPage size, capped at OPENPROJECT_MAX_PAGE_SIZE.
offsetNo1-based page number; pass the previous result's next_offset.
searchNo
selectNoFields to return; a requested unset field comes back as null. Allowed: author, can_delete, can_update, created_at, description, description_length, description_truncated, id, project, project_id, summary, title.
projectNoProject identifier, id, or name; a unique part of a name or identifier also matches.
text_limitNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.4
  2. Removedv0.4.0
  3. Changed1 schema field changedv0.3.7
    • addedInput schema / additionalProperties
      Added value: +false
  4. Addedv0.3.3
  5. Removedv0.3.0
  6. Changed1 schema field changedv0.2.3
    • changedOutput schema / (root)
      Previous value: -{
      -  "$defs": {
      -    "NewsSummary": {
      -      "properties": {
      -        "author": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "title": "Author"
      -        },
      -        "can_delete": {
      -          "title": "Can Delete",
      -          "type": "boolean"
      -        },
      -        "can_update": {
      -          "title": "Can Update",
      -          "type": "boolean"
      -        },
      -        "created_at": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "title": "Created At"
      -        },
      -        "description": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "title": "Description"
      -        },
      -        "id": {
      -          "title": "Id",
      -          "type": "integer"
      -        },
      -        "project": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "title": "Project"
      -        },
      -        "project_id": {
      -          "anyOf": [
      -            {
      -              "type": "integer"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "title": "Project Id"
      -        },
      -        "summary": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "title": "Summary"
      -        },
      -        "title": {
      -          "title": "Title",
      -          "type": "string"
      -        },
      -        "url": {
      -          "title": "Url",
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "id",
      -        "title",
      -        "summary",
      -        "description",
      -        "project_id",
      -        "project",
      -        "author",
      -        "created_at",
      -        "can_update",
      -        "can_delete",
      -        "url"
      -      ],
      -      "title": "NewsSummary",
      -      "type": "object"
      -    }
      -  },
      -  "properties": {
      -    "count": {
      -      "title": "Count",
      -      "type": "integer"
      -    },
      -    "limit": {
      -      "title": "Limit",
      -      "type": "integer"
      -    },
      -    "next_offset": {
      -      "anyOf": [
      -        {
      -          "type": "integer"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "title": "Next Offset"
      -    },
      -    "offset": {
      -      "title": "Offset",
      -      "type": "integer"
      -    },
      -    "results": {
      -      "items": {
      -        "$ref": "#/$defs/NewsSummary"
      -      },
      -      "title": "Results",
      -      "type": "array"
      -    },
      -    "total": {
      -      "title": "Total",
      -      "type": "integer"
      -    },
      -    "truncated": {
      -      "title": "Truncated",
      -      "type": "boolean"
      -    }
      -  },
      -  "required": [
      -    "offset",
      -    "limit",
      -    "total",
      -    "count",
      -    "next_offset",
      -    "truncated",
      -    "results"
      -  ],
      -  "title": "NewsListResult",
      -  "type": "object"
      -}New value: +null
  7. First observedv0.2.2

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, openWorld), and the description goes well beyond them: total is only a page-local count because the search short-circuits, exact totals require a full walk, and text_limit defaults to the server's OPENPROJECT_TEXT_LIMIT rather than unlimited. It also names the side-effect signals (description_truncated, description_length) an agent must check when text is cut.

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, then pagination caveat, then truncation behavior — a sensible order with no filler. The explanation of why total is inexact ('would need an extra full walk') is useful but slightly indulgent for a definition.

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?

With six optional params and no output schema, the description carries the return-shape burden and does it: it tells the agent to drive pagination off next_offset and to detect truncation via description_truncated/description_length. Nothing an agent needs to call and iterate correctly 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 coverage is 67%, and the description fills the two biggest gaps: text_limit (no schema description at all) and search (scope limited to title/summary, not the whole entry). offset/limit semantics are left to the schema, which already documents them well, so this is a meaningful but not exhaustive lift.

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?

States a specific verb and resource ('List news entries') plus the two filter dimensions (project, title/summary search), so an agent immediately knows what it returns. It references get_news only to contrast the text_limit default, not to draw a use-this-vs-that boundary, so sibling differentiation is partial.

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 an explicit pagination procedure ('Page until next_offset is null') and warns that total is page-local, which directly shapes how an agent should iterate. It does not say when to prefer get_news over list_news (or vice versa beyond the truncation default), so exclusions are missing.

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