Skip to main content
Glama

delete_work_package_wiki_link

DestructiveIdempotent

Permanently deletes a relation-type wiki page link from a work package after verifying the link belongs to it.

Instructions

Delete a work package's wiki page link; this cannot be undone.

Requires OpenProject 17.6+. On 17.4 or older this returns a [not_found] naming 17.6; on 17.5 the link check below usually fails first with a [server_error].

This tool lists the work package's links first to verify that link_id belongs to work_package_id (an authorization check), so it fails with a [server_error] whenever list_work_package_wiki_links does (see there).

Only relation links (link_type "relation") can be deleted. An inline link comes from a wiki link in the work package's description or from a wiki page that mentions the work package; this tool rejects it with a [validation_error], and the link goes away only when that text changes. Deleting needs the "Manage wiki page links" permission in the work package's project; without it OpenProject answers 404, which the tool reports as a [not_found] naming 17.6, not as [permission_denied].

work_package_id must be the work package the link belongs to; OpenProject has no single GET for a link, so the delete is authorized against that work package's project. link_id: the wiki page link's own id, from list_work_package_wiki_links.

Input Schema

NameRequiredDescriptionDefault
confirmNofalse: preview only, nothing changes. true: applies it; get the user's approval of the preview first.
link_idYes
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

A4.6/5.0
Behavior5/5

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

Goes far beyond the annotations: discloses irreversibility, an internal pre-flight list call whose failures propagate as [server_error], version-dependent behavior (17.6+ required, misleading [not_found] on older versions), the required 'Manage wiki page links' permission, and that a permission failure surfaces as 404/[not_found] rather than [permission_denied]. This is exactly the kind of non-obvious failure-mode context annotations cannot express.

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-loads the action and irreversibility, then layers version, authorization, and link-type constraints. Dense but each block carries information; minor overlap between the version note and the permission note (both explain a not_found naming 17.6) is the only redundancy.

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?

A destructive mutation with no output schema, and the description covers safety (irreversible), prerequisites (version, permission), failure modes, and preconditions (enumeration must succeed). Nothing an agent needs to avoid a wrong or misread call is missing; the preview/confirm workflow is covered by the schema.

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 `confirm` is already documented in the schema, but the description adds genuine meaning: `link_id` must come from list_work_package_wiki_links, and `work_package_id` is not merely an ID but the authorization anchor because OpenProject has no single GET for a link. That is real added value over the schema.

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 ('Delete a work package's wiki page link') and immediately differentiates from the sibling `list_work_package_wiki_links` and from relation deletion by restricting scope to link_type 'relation'. An agent can identify this tool without opening the schema.

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 concrete when-not conditions: inline links are rejected and can only be removed by editing the description text, and relation links must be enumerated via list_work_package_wiki_links first. It does not name the specific sibling tool to use for the inline case, but the routing is strongly implied.

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