Enable or disable MCP tools by name in batch. Persists the change via `UnityMcpPluginEditor.Instance.Save()` only when at least one tool actually flipped. Returns per-input success flags plus optional operation logs.
50
55%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./Unity-MCP-Plugin/.claude/skills/tool-set-enabled-state/SKILL.mdEnable or disable MCP tools by name. Allows controlling which tools are available for the AI agent.
tools — array of ToolToggleInput { Name, Enabled }. Non-empty.includeLogs (default false) — when true, returns per-step operation logs alongside the success map.Each entry is resolved against the tool manager's exact-name and case-insensitive lookups. Already-correct state short-circuits as success without writing. The plugin's config is saved once at the end iff at least one tool actually changed state.
unity-mcp-cli run-tool tool-set-enabled-state --input '{
"tools": "string_value",
"includeLogs": "string_value"
}'For complex input (multi-line strings, code), save the JSON to a file and use:
unity-mcp-cli run-tool tool-set-enabled-state --input-file args.jsonOr pipe via stdin (recommended):
unity-mcp-cli run-tool tool-set-enabled-state --input-file - <<'EOF' {"param": "value"} EOF
If unity-mcp-cli is not found, either install it globally (npm install -g unity-mcp-cli) or use npx unity-mcp-cli instead.
Read the /unity-initial-setup skill for detailed installation instructions.
| Name | Type | Required | Description |
|---|---|---|---|
tools | any | Yes | Array of tools with their desired enabled state. |
includeLogs | any | No | Include operation logs in the result. Default: false |
{
"type": "object",
"properties": {
"tools": {
"$ref": "#/$defs/AIGD.ToolToggleInput-1"
},
"includeLogs": {
"$ref": "#/$defs/System.Boolean"
}
},
"$defs": {
"AIGD.ToolToggleInput": {
"type": "object",
"properties": {
"Name": {
"type": "string",
"description": "Name of the MCP tool to enable or disable."
},
"Enabled": {
"type": "boolean",
"description": "Whether the tool should be enabled (true) or disabled (false)."
}
},
"required": [
"Enabled"
]
},
"AIGD.ToolToggleInput-1": {
"type": "array",
"items": {
"$ref": "#/$defs/AIGD.ToolToggleInput"
}
},
"System.Boolean": {
"type": "boolean"
}
},
"required": [
"tools"
]
}{
"type": "object",
"properties": {
"result": {
"$ref": "#/$defs/AIGD.ToolToggleResult"
}
},
"$defs": {
"com.IvanMurzak.ReflectorNet.Model.Logs": {
"type": "array",
"items": {
"$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.LogEntry"
}
},
"com.IvanMurzak.ReflectorNet.Model.LogEntry": {
"type": "object",
"properties": {
"Depth": {
"type": "integer"
},
"Message": {
"type": "string"
},
"Type": {
"type": "string",
"enum": [
"Trace",
"Debug",
"Info",
"Success",
"Warning",
"Error",
"Critical"
]
}
},
"required": [
"Depth",
"Type"
]
},
"System.Collections.Generic.Dictionary(System.String,System.Boolean)": {
"type": "object",
"additionalProperties": {
"type": "boolean"
}
},
"AIGD.ToolToggleResult": {
"type": "object",
"properties": {
"Logs": {
"$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.Logs",
"description": "Optional operation logs. Only included when 'includeLogs' is true."
},
"Success": {
"$ref": "#/$defs/System.Collections.Generic.Dictionary(System.String,System.Boolean)",
"description": "Result of each tool operation. Key: original input name as provided by the caller (case preserved as-is). Value: true if the enable/disable operation completed successfully, false if the name was unknown, ambiguous, or empty."
}
}
}
},
"required": [
"result"
]
}e0a24ef
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.