Skip to main content
Glama

set_symmetry

DestructiveIdempotent

Assign unit cell edge lengths and angles to a selected object to define its symmetry parameters.

Instructions

Sets symmetry parameters for an object

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "selection": "<selection>",
      "a": "<a>",
      "b": "<b>",
      "c": "<c>",
      "alpha": "<alpha>",
      "beta": "<beta>",
      "gamma": "<gamma>"
    },
    "name": "set_symmetry"
  }
}

Input Schema

NameRequiredDescriptionDefault
aYesUnit cell edge a, in Angstrom.
bYesUnit cell edge b, in Angstrom.
cYesUnit cell edge c, in Angstrom.
betaYesUnit cell angle beta, in degrees.
alphaYesUnit cell angle alpha, in degrees.
gammaYesUnit cell angle gamma, in degrees.
selectionYesObject to assign the unit cell to.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv1.5.1
    • addedInput schema / properties / a / description
      Added value: +"Unit cell edge a, in Angstrom."
    • addedInput schema / properties / alpha / description
      Added value: +"Unit cell angle alpha, in degrees."
    • addedInput schema / properties / b / description
      Added value: +"Unit cell edge b, in Angstrom."
    • addedInput schema / properties / beta / description
      Added value: +"Unit cell angle beta, in degrees."
    • addedInput schema / properties / c / description
      Added value: +"Unit cell edge c, in Angstrom."
    • addedInput schema / properties / gamma / description
      Added value: +"Unit cell angle gamma, in degrees."
    • addedInput schema / properties / selection / description
      Added value: +"Object to assign the unit cell to."
  2. First observedv1.2.1

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already flag destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the agent knows this mutates state and is repeatable. But the description adds nothing about what is destroyed or replaced — specifically, whether an existing unit cell on the object is overwritten — which is exactly the gap the destructive flag raises.

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

Conciseness3/5

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

A single short sentence with no wasted words, but its brevity comes at the cost of substance rather than efficiency; there is no structure beyond one clause.

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

Completeness2/5

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

For a seven-required-parameter destructive mutation, the description omits what state is modified, whether existing symmetry is lost, and any usage context. The existing output schema excuses it from explaining return values, but the mutation semantics remain undescribed.

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 100%, with each of the seven unit cell parameters documented with units in Angstrom or degrees, so the baseline is 3. The description contributes no additional meaning beyond the schema's own documentation.

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

Purpose3/5

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

States a verb and resource ("Sets symmetry parameters for an object"), but "symmetry parameters" is imprecise — the actual parameters are unit cell edges and angles, and the description never says so. It also does nothing to distinguish this from siblings like symexp, which also concerns symmetry.

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?

No indication of when to use this versus alternatives such as symexp or execute_pymol_command, and no prerequisites or context are given. The agent must infer its role from the parameter names alone.

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