Describe the bug
The label_write tool (pkg/github/labels.go) supports a delete method that deletes a label at the repository level via the deleteLabel GraphQL mutation. This permanently removes the label and all of its associations from every issue and PR in the repository.
However, the tool's annotations only set ReadOnlyHint: false. It does not set DestructiveHint: true. As a result, MCP clients receive no destructive-operation signal for what is arguably the most destructive label operation available, and may not surface an appropriate confirmation prompt before executing it.
Expected behavior
label_write should be annotated with DestructiveHint: true (at minimum when method is delete), so MCP clients can warn the user before a repository-wide label deletion.
Precedent in the codebase
The annotation discipline already exists elsewhere in the same package:
remove_sub_issue correctly sets DestructiveHint: jsonschema.Ptr(true)
- The non-destructive issue label update (
update_issue_labels) sets DestructiveHint: jsonschema.Ptr(false)
label_write delete simply appears to have been missed.
Impact
An agent intending a minor change can trigger a repository-wide label deletion with no destructive-operation hint. Because deleting a label removes it from all issues/PRs, the associations cannot be automatically restored even if the label is recreated with the same name.
Version
Verified against the open-source github-mcp-server v1.4.0 (latest release) and the hosted GitHub Copilot MCP endpoint at api.githubcopilot.com/mcp/ (as of 2026-06-18). The missing annotation has been present since label_write was introduced (ref #312).
Describe the bug
The
label_writetool (pkg/github/labels.go) supports adeletemethod that deletes a label at the repository level via thedeleteLabelGraphQL mutation. This permanently removes the label and all of its associations from every issue and PR in the repository.However, the tool's annotations only set
ReadOnlyHint: false. It does not setDestructiveHint: true. As a result, MCP clients receive no destructive-operation signal for what is arguably the most destructive label operation available, and may not surface an appropriate confirmation prompt before executing it.Expected behavior
label_writeshould be annotated withDestructiveHint: true(at minimum whenmethodisdelete), so MCP clients can warn the user before a repository-wide label deletion.Precedent in the codebase
The annotation discipline already exists elsewhere in the same package:
remove_sub_issuecorrectly setsDestructiveHint: jsonschema.Ptr(true)update_issue_labels) setsDestructiveHint: jsonschema.Ptr(false)label_writedelete simply appears to have been missed.Impact
An agent intending a minor change can trigger a repository-wide label deletion with no destructive-operation hint. Because deleting a label removes it from all issues/PRs, the associations cannot be automatically restored even if the label is recreated with the same name.
Version
Verified against the open-source
github-mcp-serverv1.4.0 (latest release) and the hosted GitHub Copilot MCP endpoint atapi.githubcopilot.com/mcp/(as of 2026-06-18). The missing annotation has been present sincelabel_writewas introduced (ref #312).