Summary
Add MCP ToolAnnotations to each tool in this plugin to help clients (e.g., Claude Code)
understand whether a tool modifies state, so they can make better decisions about
auto-approval or confirmation prompts.
Planned Annotations per Tool
| Tool |
readOnlyHint |
destructiveHint |
idempotentHint |
openWorldHint |
get_unity_compilation_result |
true |
— |
— |
false |
run_unity_tests |
true |
— |
— |
false |
run_method_in_unity |
false |
true |
false |
false |
unity_play_control |
false |
false |
false |
false |
Notes:
destructiveHint and idempotentHint are only set when readOnlyHint is false
run_unity_tests: read-only because test execution does not persist state changes
run_method_in_unity: destructiveHint is true — the called method is arbitrary
Prerequisite
This issue depends on JetBrains adding ToolAnnotations support to the McpToolset
extension point API.
Upstream feature request: https://youtrack.jetbrains.com/issue/IJPL-238125/MCP-Server-Support-ToolAnnotations-readOnlyHint-destructiveHint-etc.
Until IJPL-238125 is resolved and a new Rider release includes the fix, this issue
cannot be implemented.
References
Summary
Add MCP
ToolAnnotationsto each tool in this plugin to help clients (e.g., Claude Code)understand whether a tool modifies state, so they can make better decisions about
auto-approval or confirmation prompts.
Planned Annotations per Tool
get_unity_compilation_resulttruefalserun_unity_teststruefalserun_method_in_unityfalsetruefalsefalseunity_play_controlfalsefalsefalsefalseNotes:
destructiveHintandidempotentHintare only set whenreadOnlyHintisfalserun_unity_tests: read-only because test execution does not persist state changesrun_method_in_unity:destructiveHintistrue— the called method is arbitraryPrerequisite
This issue depends on JetBrains adding
ToolAnnotationssupport to theMcpToolsetextension point API.
Upstream feature request: https://youtrack.jetbrains.com/issue/IJPL-238125/MCP-Server-Support-ToolAnnotations-readOnlyHint-destructiveHint-etc.
Until IJPL-238125 is resolved and a new Rider release includes the fix, this issue
cannot be implemented.
References