Skip to main content
Glama

add_work_package_comment

Add a comment to an OpenProject work package, with optional email notification and internal-only visibility. Preview the change first, then apply it after approval.

Instructions

Add a comment to a work package.

notify=false avoids change emails by default. The result never includes details/created_at, even on an ordinary, non-aggregated comment: OpenProject can aggregate a new comment into an existing, more recent journal entry (e.g. a prior status change) instead of always creating a fresh one, which would otherwise surface that unrelated change's details and timestamp here, and there is no reliable way to tell an aggregated response from a fresh one, so both fields are omitted unconditionally rather than only when aggregation is suspected; details_omitted is true. user is normally populated, but on rare cases where OpenProject's own write response omits it, a best-effort follow-up lookup fills it in; if that also comes back empty, user stays null even though the comment was saved successfully.

Input Schema

NameRequiredDescriptionDefault
notifyNo
commentYes
confirmNofalse: preview only, nothing changes. true: applies it; get the user's approval of the preview first.
internalNo
work_package_idYesWork package id (e.g. 952) or display id (e.g. "PROJ-51"), not the bare number 51.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.4

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare non-readOnly, non-destructive, non-idempotent, open-world, so the safety profile is covered. The description then adds genuinely non-obvious behavior: OpenProject may aggregate a new comment into an existing journal entry, `details`/`created_at` are omitted unconditionally, `details_omitted` is true, and `user` may be null after a failed follow-up lookup. It stops short of explaining permissions or the preview/confirm write flow.

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

Conciseness2/5

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

The purpose is front-loaded and correct, but the aggregation explanation is a single sprawling multi-clause sentence that reasons through 'no reliable way to tell an aggregated response from a fresh one' at length. The same fact – details/timestamp are always omitted because of journal aggregation – could be stated in a quarter of the text.

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?

With no output schema, the description carries the return-value burden and does so for the tricky parts (omitted fields, `details_omitted`, possibly-null `user`). The remaining gap is that it never says what a successful response otherwise contains and says nothing about `internal` visibility semantics for a mutation tool.

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 40%, so the description should compensate. It clarifies `notify` beyond the bare 'Notify' title, and the schema itself documents `work_package_id` and `confirm`. However, `internal` (internal vs. external visibility) is undocumented in both places and `comment` gets no guidance.

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?

Opens with a specific verb+resource: 'Add a comment to a work package.' Unambiguous, and no sibling tool competes for this action. It does not explicitly differentiate itself from siblings, but the operation is inherently distinct.

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

Usage Guidelines2/5

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

The only usage-adjacent statement is 'notify=false avoids change emails by default,' which is a parameter default rather than when-to-use guidance. Nothing is said about when to prefer an internal comment, when to use this versus editing the work package description, or when the confirm/preview flow matters.

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