Skip to main content
Glama

Change a plugin's switch or parameters

patch_plugin
Destructive

Set one plugin's enabled status, description, or parameter values in js/plugins.js without reformatting the file; only the edited entry is rewritten.

Instructions

Set one plugin's enabled status, description, or parameter values in js/plugins.js — the same edit as the editor's plugin manager, without reformatting the file: only the touched entry's object literal is rewritten. Parameter values are stored the way MZ stores them, so scalars become strings and struct or array values stay JSON. PluginManager.parameters is read once at boot, so a running playtest needs a restart to see this, and an editor with the plugin manager open will overwrite the file on save.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
statusNo
parametersNoMerged over the existing keys; pass null to drop one
descriptionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.2

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true and idempotentHint=false, and the description substantially enriches that: only the touched entry is rewritten (no full-file reformat), scalars are coerced to strings while struct/array values stay JSON, PluginManager.parameters is read once at boot so a restart is required, and an open editor plugin manager will clobber the file on save. These are exactly the behavioral facts an agent needs before mutating the file.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action is front-loaded in the first clause, followed by the file-behavior nuance and then the operational caveats. Every sentence earns its place, with no redundant restatement of the title or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema, the description covers the write scope, the coercion behavior, and the two critical side effects (boot-time parameter caching and editor-overwrite hazard). An agent has enough to invoke it correctly and anticipate the consequences.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 25% (only `parameters` is documented), so the description carries extra weight: it maps the three settable fields (enabled status, description, parameter values) to the parameters and explains the MZ storage coercion (scalars to strings, struct/array stays JSON). It does not clarify `name` semantics or the `status`/`description` params individually, so it compensates well but not fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: set one plugin's enabled status, description, or parameter values in `js/plugins.js`. It further distinguishes itself from write_plugin_source by noting it only rewrites the touched entry's object literal rather than reformatting the file. An agent can tell it apart from sibling plugin tools without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Frames the tool as 'the same edit as the editor's plugin manager' and gives clear situational context (running playtest needs a restart; editor open will overwrite on save). It does not, however, explicitly name when to prefer this over siblings like enable_plugin or write_plugin_source, leaving the alternative routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.