Skip to content

Narrow destructiveHint usage#253

Merged
cameroncooke merged 3 commits intogetsentry:mainfrom
saschagordner:manifest-destructivehint-audit
Mar 2, 2026
Merged

Narrow destructiveHint usage#253
cameroncooke merged 3 commits intogetsentry:mainfrom
saschagordner:manifest-destructivehint-audit

Conversation

@saschagordner
Copy link

Right now my agent asks for permission for tools every session where I don’t think permission should be required, e.g. session_set_defaults / build_run_sim.

That led me to notice the broad usage of destructiveHint, and I think it should be applied more narrowly.

I had Codex audit all tool manifests and their respective implementations and remove destructiveHint where tools are not destructive by MCP semantics (using the Anthropic mcp-builder guidance as the baseline).

@cameroncooke What do you think about this?

@pkg-pr-new
Copy link

pkg-pr-new bot commented Mar 2, 2026

Open in StackBlitz

npm i https://pkg.pr.new/xcodebuildmcp@253

commit: 9f88537

Set destructiveHint to false for tools that mutate state but are not destructive to user data or environment state in the common sense.

Keep destructive hints reserved for actually destructive operations while preserving explicit annotation semantics for client UX and approval behavior.
Copy link
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

@cameroncooke cameroncooke merged commit f7b07ab into getsentry:main Mar 2, 2026
6 checks passed
@cameroncooke
Copy link
Collaborator

Thanks @saschagordner for the contribution and I agree it was tool hits were too cautious

@saschagordner
Copy link
Author

@cameroncooke
I'm a little confused though that the mcp-builder skill didn't prevent dropping the property, since one of the references says that it defaults to true.
But anyway, thank you for fixing that!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants