Skip to main content
Glama
FD Solutions MCP Server

FD Solutions MCP Server

by SimWorksSoft

Object action

object_action

Select, enable/disable, copy, or delete project-tree objects and vertices using path-based selection and SI-meter coordinates for photonic simulation setup.

Instructions

Manipulate selection and objects in the project tree (SI meters for vertices).

Select cheat-sheet (SimWorks select / selectpartial / shiftselect*):

  • Structures at root: select('Ring').

  • Under FDTD: select('FDTD::MonitorName').

  • Mode ports: select('FDTD::Ports::Port_input') — include solver + port group + port. Omitting FDTD:: is the usual reason select fails.

  • Discover group: select_partial('::Ports') or select_partial('FDTD::Port').

  • Multi-select: shift_select / shift_select_partial add without clearing (same group only); then set_property applies to all selected.

  • If select fails: retry with FDTD::<Group>::<Child>; never re-add or disable.

Input Schema

NameRequiredDescriptionDefault
kNoSelected polygon index (1 = uppermost).
nameNoSelect path rules (try in order; stop at first success): (1) Top-level objects: bare Name from add, e.g. 'Ring', 'FDTD', 'Bus_top'. (2) Nested under a solver: 'Solver::Object', e.g. 'FDTD::Index'. (3) Ports / objects under a port group under FDTD: 'FDTD::PortGroupName::PortName', e.g. 'FDTD::Ports::Port_input' (NOT bare 'Port_input', NOT 'Ports::Port_input', NOT 'Port Group::...'). (4) select_partial / shift_select_partial: 'FDTD::Port' (all ports under FDTD), '::Ports' (port group), '::Child' / 'Parent::Child'. Bare child names and Group::Child without the solver prefix usually fail for ports. Remember Names from add / rename.
name2NoOptional second arg for select / shift_select / select_partial / shift_select_partial. Same forms as select: select('name', value) or select('type', typeValue). Prefer full Solver::Group::Child paths for ports.
actionYesselect / select_partial / shift_select / shift_select_partial / select_all / unselect_all / select_parent / enable / disable / copy / delete / delete_all / add_vertex / delete_vertex. Prefer select/select_partial over re-adding. shift_* add to the current selection (same group only). Do not disable objects to work around a failed select.
cord_1NoVertex coord 1 (SI m). For add_vertex.
cord_2NoVertex coord 2 (SI m). For add_vertex.
order_numNoVertex order for add_vertex / delete_vertex.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral burden. It adds useful failure behavior (retry with a fuller path) and a same-group constraint for shift-select, but it does not disclose that delete, delete_all, disable, or vertex deletion are mutating/destructive, nor does it describe reversibility, permissions, or side effects.

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?

The purpose line is front-loaded and the cheat-sheet is organized with bullets, but the select guidance substantially duplicates the detailed name/action parameter descriptions in the schema. The content is also unbalanced, devoting nearly all space to selection while the other actions go unaddressed.

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-parameter, fourteen-action mutation tool with no annotations and an output schema, the description is incomplete. It thoroughly covers selection paths but says nothing about delete vs delete_all, copy behavior, enable/disable effects, add_vertex ordering semantics, or the destructive nature of several actions.

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%, and the schema already documents every parameter in detail, including select path rules in the name field. The description condenses the same select-path guidance and repeats the SI-meter note for vertices, adding convenience but little semantic detail beyond the schema.

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?

The description states it manipulates "selection and objects in the project tree", which gives a resource but uses the vague verb "manipulate" and does not differentiate from siblings such as set_property, group_membership, or add. The cheat-sheet narrows attention to selection paths, but the tool actually dispatches 14 actions including delete, copy, and vertex edits.

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?

The description gives explicit when-to-use and when-not-to-use guidance for the selection family: prefer select/select_partial over re-adding, use shift_select to add without clearing, and never re-add or disable after a failed select. It is strong for select actions but silent on when to choose copy, delete, enable/disable, or vertex actions over alternatives.

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