Skip to main content
Glama

Publish Interface

publish_interface
Destructive

Record a named interface frame on a component to set where and how other parts attach, persisting the reference for later assembly mating.

Instructions

Record a named interface frame on a component so other parts can mate to it — the published "here is where you bolt to me, and how it's oriented".

handle: the component's shaped object. name: interface name (e.g. "lid_seat", "bolt_circle", "bore_axis"). frame: {origin:[x,y,z], z_axis:[...]?, x_axis:[...]?}. z_axis defaults +Z, x_axis +X. Extra keys (e.g. bolt-circle metadata) are stored verbatim.

Persists in the component's .FCStd as a JSON property bag, so merge_assembly can mate against it later. Returns {handle, name, frame, interfaces}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
frameYes
handleYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint=false, destructiveHint=true), the description discloses persistence in the .FCStd as a JSON property bag and the return payload. It doesn't mention overwrite or replacement semantics, but it doesn't contradict the annotations.

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 description front-loads the purpose, then uses line breaks and compact notation per parameter, followed by persistence and return-value notes. There is no filler; every sentence earns its place.

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

Completeness4/5

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

The description covers the main call contract: params, defaults, persistence, and return value (important because no output schema exists). It omits some edge-case semantics like whether frame axes must be normalized/orthogonal or whether reusing a name replaces an existing interface, but the core usage is well specified.

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

Parameters5/5

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

With 0% schema coverage, the description supplies complete parameter meaning: handle is the shaped object, name is the interface label with examples, frame is a structured object with defaults and verbatim extra keys. This fully compensates for the empty schema.

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?

Description opens with a specific verb and object: 'Record a named interface frame on a component' and spells out the mating purpose. This clearly distinguishes it from read-only siblings like get_interface and from merge_assembly which consumes the published interface.

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?

It states the intended use case: publishing an interface so other parts can mate, and names merge_assembly as the later consumer. However, it doesn't explicitly say when not to use it or point to get_interface as the read alternative.

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

Deploy Server

Other Tools