Skip to main content
Glama

manage_fair_characteristics

Destructive

Manage FAIR Form 3 characteristic sets and inspection results by proposing characteristics from designs, declaring sets, recording or importing measurements, and listing measurement history.

Instructions

Characteristic sets and inspection results for FAIR Form 3.

Needs Kiln Enterprise.

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": {
      "action": "<action>"
    },
    "name": "manage_fair_characteristics"
  }
}

Input Schema

NameRequiredDescriptionDefault
actionYesOne of ``propose_from_design``, ``declare_set``, ``get_set``, ``record_measurement``, ``import_measurement_report`` or ``list_measurements`` (case-insensitive); anything else is refused with ``INVALID_ACTION``.
methodNoOptional inspection method, recorded with the result. For ``import_measurement_report`` an empty value is recorded as ``automated inspection``. Default: "".
set_idNoThe declared characteristic set. Required for ``record_measurement``, ``import_measurement_report`` and ``list_measurements``; for ``get_set`` it selects the set directly (empty falls back to the latest set for the design version). Default: "".
valuesNo``record_measurement`` with ``value_kind= "variable"``: the measured values in millimetres, at least one. Non-numeric or non-finite values are refused.
char_noNo``record_measurement`` only: the characteristic's number within the set. A number not in the set is refused. Default: 0.
tool_idNoOptional identifier of the measuring tool, recorded with the result. Default: "".
design_idNoThe Kiln design. Required for ``propose_from_design`` and ``declare_set``; ``get_set`` uses it with ``design_version_id`` when no ``set_id`` is given. Default: "".
value_kindNo``record_measurement`` only: ``"variable"`` (the default; give ``values``) or ``"attribute"`` (give ``attribute_result``). Default: "variable".
attested_byNoRequired for ``declare_set`` and the two measurement actions: the name of the engineer or inspector attesting. Default: "".
attested_onNoRequired with ``attested_by``: the date as an ISO date (``YYYY-MM-DD``), not in the future. Default: "".
report_rowsNo``import_measurement_report`` only, required: the rows extracted from the report, as described above. An empty or missing list is refused with ``INVALID_REPORT_ROWS``.
report_numberNoOptional inspection report number cited on each result; the traceability reference for an imported report. Default: "".
serial_numberNoThe physical unit's serial number. Required for ``record_measurement`` and ``import_measurement_report``; for ``list_measurements`` it narrows the history to one unit. Default: "".
characteristicsNo``declare_set`` only: the reviewed characteristic list, one object per characteristic with the keys listed above (and an optional ``feature_class`` token). Characteristic numbers are assigned in list order from 1.
attribute_resultNo``record_measurement`` with ``value_kind="attribute"``: ``"pass"`` or ``"fail"``. Default: "".
design_version_idNoThe exact version of ``design_id``, used alongside it by the same actions. Default: "".
general_tolerance_noteNo``declare_set`` only, optional: the drawing's general tolerance note, stored with the set. Default: "".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed17 schema fields changedv1.5.1
    • addedInput schema / properties / action / description
      Added value: +"One of ``propose_from_design``, ``declare_set``, ``get_set``, ``record_measurement``, ``import_measurement_report`` or ``list_measurements`` (case-insensitive); anything else is refused with ``INVALID_ACTION``."
    • changedInput schema / properties / attested_by / description
      Previous value: -"Default: \"\"."New value: +"Required for ``declare_set`` and the two measurement actions: the name of the engineer or inspector attesting. Default: \"\"."
    • changedInput schema / properties / attested_on / description
      Previous value: -"Default: \"\"."New value: +"Required with ``attested_by``: the date as an ISO date (``YYYY-MM-DD``), not in the future. Default: \"\"."
    • changedInput schema / properties / attribute_result / description
      Previous value: -"Default: \"\"."New value: +"``record_measurement`` with ``value_kind=\"attribute\"``: ``\"pass\"`` or ``\"fail\"``. Default: \"\"."
    • changedInput schema / properties / char_no / description
      Previous value: -"Default: 0."New value: +"``record_measurement`` only: the characteristic's number within the set. A number not in the set is refused. Default: 0."
    • addedInput schema / properties / characteristics / description
      Added value: +"``declare_set`` only: the reviewed characteristic list, one object per characteristic with the keys listed above (and an optional ``feature_class`` token). Characteristic numbers are assigned in list order from 1."
    • changedInput schema / properties / design_id / description
      Previous value: -"Default: \"\"."New value: +"The Kiln design. Required for ``propose_from_design`` and ``declare_set``; ``get_set`` uses it with ``design_version_id`` when no ``set_id`` is given. Default: \"\"."
    • changedInput schema / properties / design_version_id / description
      Previous value: -"Default: \"\"."New value: +"The exact version of ``design_id``, used alongside it by the same actions. Default: \"\"."
    • changedInput schema / properties / general_tolerance_note / description
      Previous value: -"Default: \"\"."New value: +"``declare_set`` only, optional: the drawing's general tolerance note, stored with the set. Default: \"\"."
    • changedInput schema / properties / method / description
      Previous value: -"Default: \"\"."New value: +"Optional inspection method, recorded with the result. For ``import_measurement_report`` an empty value is recorded as ``automated inspection``. Default: \"\"."
    • changedInput schema / properties / report_number / description
      Previous value: -"Default: \"\"."New value: +"Optional inspection report number cited on each result; the traceability reference for an imported report. Default: \"\"."
    • addedInput schema / properties / report_rows / description
      Added value: +"``import_measurement_report`` only, required: the rows extracted from the report, as described above. An empty or missing list is refused with ``INVALID_REPORT_ROWS``."
    • changedInput schema / properties / serial_number / description
      Previous value: -"Default: \"\"."New value: +"The physical unit's serial number. Required for ``record_measurement`` and ``import_measurement_report``; for ``list_measurements`` it narrows the history to one unit. Default: \"\"."
    • changedInput schema / properties / set_id / description
      Previous value: -"Default: \"\"."New value: +"The declared characteristic set. Required for ``record_measurement``, ``import_measurement_report`` and ``list_measurements``; for ``get_set`` it selects the set directly (empty falls back to the latest set for the design version). Default: \"\"."
    • changedInput schema / properties / tool_id / description
      Previous value: -"Default: \"\"."New value: +"Optional identifier of the measuring tool, recorded with the result. Default: \"\"."
    • changedInput schema / properties / value_kind / description
      Previous value: -"Default: \"variable\"."New value: +"``record_measurement`` only: ``\"variable\"`` (the default; give ``values``) or ``\"attribute\"`` (give ``attribute_result``). Default: \"variable\"."
    • addedInput schema / properties / values / description
      Added value: +"``record_measurement`` with ``value_kind= \"variable\"``: the measured values in millimetres, at least one. Non-numeric or non-finite values are refused."
  2. Addedv1.5.0

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, so the description needs to add context such as which actions write vs. read, or the attestation requirements for declare_set and the measurement actions. It adds only the Enterprise-tier gate and says nothing about mutability, attestation, or error modes such as INVALID_ACTION, leaving a 17-parameter write tool essentially opaque.

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?

Two short sentences with no waste, but the brevity comes from under-specification rather than discipline. The tier requirement is front-loaded and useful, yet the tool's central mode-based structure is 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?

With 17 parameters, six dispatch actions, no output schema, and a destructive annotation, this definition is far too thin. It should at minimum enumerate the actions, indicate which are read-only versus writes, and mention attestation and Enterprise gating constraints in a usable form.

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%, so the baseline is 3; the per-parameter semantics (set_id, values, value_kind, attested_by, report_rows, etc.) are fully documented in the schema. The description contributes nothing beyond that, but it is not required to given the coverage.

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 names the domain ("Characteristic sets and inspection results for FAIR Form 3") but is a noun phrase with no verb, and the tool actually multiplexes six distinct actions. It gives no basis for separating this from the FAIR siblings (manage_fair_evidence_bundle, manage_fair_registry, prepopulate_fair_draft), which are not mentioned at all.

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?

"Needs Kiln Enterprise" is a prerequisite, not usage guidance. There is no statement of when to use this versus the other FAIR tools, nor which of the six actions suits which situation; the only routing information lives in the parameter schema, not the description.

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