Skip to main content
Glama

unlink_dependency

DestructiveIdempotent

Remove a task dependency. Address it either by its row id (dependencyId, from list_dependencies) or by the pair of task ids it joins (predecessorId + successorId), the same two ids link_dependency takes. Requires the project-level dependency.manage permission on the dependency's project, held by project MEMBER and above under the default matrix. Re-link via link_dependency. This is idempotent: when no such link is visible the call succeeds with removed:false and reason:"not_linked" rather than failing, so a retry is safe. Check the removed field to tell an actual deletion from a no-op. In a project with automatic scheduling off, removing a link moves no task and the response carries autoScheduleOff: true. No plan gate.

Input Schema

NameRequiredDescriptionDefault
successorIdNoSuccessor task id. Use WITH predecessorId instead of dependencyId.
dependencyIdNoTaskDependency row id from list_dependencies.
predecessorIdNoPredecessor task id. Use WITH successorId instead of dependencyId.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / dependencyId / description
      Added value: +"TaskDependency row id from list_dependencies."
    • addedInput schema / properties / predecessorId
      Added value: +{
      +  "description": "Predecessor task id. Use WITH successorId instead of dependencyId.",
      +  "type": "string"
      +}
    • addedInput schema / properties / successorId
      Added value: +{
      +  "description": "Successor task id. Use WITH predecessorId instead of dependencyId.",
      +  "type": "string"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "dependencyId"
      -]
  2. Added

TDQS

A4.9/5.0
Behavior5/5

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

Goes well beyond the annotations (which only give idempotentHint/destructiveHint/readOnlyHint). It discloses that a no-op returns removed:false with reason:'not_linked' instead of failing, that retries are therefore safe, that the caller should inspect the removed field, and that autoScheduleOff:true is set when scheduling is disabled. This is rich operational context an agent cannot get from structured fields.

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

Conciseness5/5

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

Purpose is front-loaded in the opening sentence, followed by addressing, permissions, inverse operation, idempotency, and scheduling caveats in a logical order. Despite being dense, every sentence carries information an agent needs to call it correctly – no filler.

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 no output schema, the description compensates by documenting the meaningful response fields (removed, reason, autoScheduleOff) and the no-op semantics. Combined with the permission and addressing guidance, an agent has everything required to invoke and interpret this mutation safely.

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 already 100%, so the baseline is 3, but the description adds real meaning: it frames dependencyId and the predecessorId+successorId pair as mutually exclusive addressing strategies and points to where dependencyId comes from. The only gap is that it does not restate which fields are required versus optional.

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 ('Remove a task dependency') and immediately routes the agent by naming the sibling tools it relates to – list_dependencies for the row id and link_dependency for the inverse operation. An agent can distinguish this from update_dependency, propose_dependency, and list_dependencies without opening any schema.

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

Usage Guidelines5/5

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

Explicitly explains the two valid addressing modes (dependencyId vs predecessorId + successorId) and ties them to the sibling that produces or consumes the same ids. It names link_dependency as the re-link path and states permission prerequisites and the 'no plan gate' condition, leaving little to inference.

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.