Skip to main content
Glama

np_configure_stim

DestructiveIdempotent

Define, validate, and upload charge-balanced biphasic stimulation parameters for NeuroPlatform v2, rejecting invalid phase settings before deployment.

Instructions

NeuroPlatform v2 — Define, validate & upload a StimParam (charge-balanced biphasic stimulation)

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "np_configure_stim"
  }
}

Input Schema

NameRequiredDescriptionDefault
indexNoElectrode index [0-127]
enableNo
nb_pulseNoNumber of pulses (0/1 = single)
polarityNoNegativeFirst
trigger_keyNoTrigger key [0-15]
phase_duration1NoD1 [µs]
phase_duration2NoD2 [µs]
phase_amplitude1NoA1 [µA]
phase_amplitude2NoA2 [µA]
pulse_train_periodNoPulse train period [µs]
enforce_charge_balanceNoReject upload if phases are not charge-balanced

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.1.0

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the safety profile is partly covered. The description adds useful context that this is an upload of a validated, charge-balanced biphasic StimParam, but it never explains what the destructive hint destroys, whether it overwrites an existing config, or what validation failure looks like.

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

Conciseness4/5

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

A single front-loaded phrase with no padding or repetition, naming the platform, the action, and the artifact. It is tight, though extremely terse given the complexity of the operation.

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

Completeness3/5

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

With 11 parameters, no required fields, and no output schema, an agent has enough from schema (82% coverage) and annotations for the safety profile, but the description omits what a successful upload returns, how validation/charge-balance rejection surfaces, and how this differs from set_parameter. Adequate but with clear gaps for a mutation tool.

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

Parameters3/5

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

Schema description coverage is 82% (above the 80% baseline), so the schema already documents parameters such as electrode index, phase durations/amplitudes, and enforce_charge_balance. The description contributes only the domain framing of 'charge-balanced biphasic stimulation' and adds no syntax, unit, or interdependency detail beyond the schema.

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

Purpose4/5

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

The description gives a specific verb chain (Define, validate & upload) plus the resource (a StimParam / charge-balanced biphasic stimulation), so an agent knows this configures stimulation parameters. It does not, however, explicitly distinguish itself from siblings like set_parameter or np_send_trigger, which also write stimulation-related state.

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

Usage Guidelines2/5

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

There is no when-to-use, when-not-to-use, or alternative-tool guidance. With 60+ siblings including set_parameter, np_send_trigger, and np_closed_loop, the agent gets no signal on which path to choose or what prerequisites (e.g., platform connected, stimulation armed) apply.

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