feat(tools): add remove_issue_link and harden delete_issue (YTMCP-25) #33

Merged
Claude-Run merged 1 commit from feat/ytmcp-25-remove-link-delete-issue into main 2026-07-01 17:53:15 +02:00
Member

Expose the inverse of the create/link tools so duplicate or erroneous issues
and stale links can be cleaned up entirely through the MCP.

Rename the unreleased unlink_issues tool to remove_issue_link to match the
issue's proposed name, and have both link_issues and remove_issue_link
return linkedIssueCounts (the source issue's per-verb link counts after the
change) so a caller can confirm a specific count dropped, e.g. a depends on
count going from 2 to 1 after removing one link. Counts are derived from
list_issue_links via a pure build_linked_issue_counts helper covered by unit
tests.

Strengthen the delete_issue tool description to state that deletion is
irreversible, that the caller owns confirming intent, and that it accepts real,
database, or draft issue ids. The delete capability itself already existed;
this makes the guardrail explicit. Both tools surface YouTrack API errors
(permissions, not-found) through the MCP's standard internal_error path.

Update the README tool list to name remove_issue_link.

#YTMCP-25

Expose the inverse of the create/link tools so duplicate or erroneous issues and stale links can be cleaned up entirely through the MCP. Rename the unreleased `unlink_issues` tool to `remove_issue_link` to match the issue's proposed name, and have both `link_issues` and `remove_issue_link` return `linkedIssueCounts` (the source issue's per-verb link counts after the change) so a caller can confirm a specific count dropped, e.g. a `depends on` count going from 2 to 1 after removing one link. Counts are derived from `list_issue_links` via a pure `build_linked_issue_counts` helper covered by unit tests. Strengthen the `delete_issue` tool description to state that deletion is irreversible, that the caller owns confirming intent, and that it accepts real, database, or draft issue ids. The delete capability itself already existed; this makes the guardrail explicit. Both tools surface YouTrack API errors (permissions, not-found) through the MCP's standard `internal_error` path. Update the README tool list to name `remove_issue_link`. #YTMCP-25
feat(tools): add remove_issue_link and harden delete_issue (YTMCP-25)
All checks were successful
Check / fmt + clippy + build + tests (pull_request) Successful in 35s
Create release / Create release from merged PR (pull_request) Has been skipped
94284e2638
Expose the inverse of the create/link tools so duplicate or erroneous issues
and stale links can be cleaned up entirely through the MCP.

Rename the unreleased `unlink_issues` tool to `remove_issue_link` to match the
issue's proposed name, and have both `link_issues` and `remove_issue_link`
return `linkedIssueCounts` (the source issue's per-verb link counts after the
change) so a caller can confirm a specific count dropped, e.g. a `depends on`
count going from 2 to 1 after removing one link. Counts are derived from
`list_issue_links` via a pure `build_linked_issue_counts` helper covered by unit
tests.

Strengthen the `delete_issue` tool description to state that deletion is
irreversible, that the caller owns confirming intent, and that it accepts real,
database, or draft issue ids. The delete capability itself already existed;
this makes the guardrail explicit. Both tools surface YouTrack API errors
(permissions, not-found) through the MCP's standard `internal_error` path.

Update the README tool list to name `remove_issue_link`.

#YTMCP-25
Claude-Run deleted branch feat/ytmcp-25-remove-link-delete-issue 2026-07-01 17:53:16 +02:00
Commenting is not possible because the repository is archived.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
pandoras-box/youtrack-mcp!33
No description provided.