Skip to main content
Glama

ipt_set_metadata_fields

Save metadata sections on a GBIF IPT resource using raw field names. Specify the resource shortname and section, and provide field values to update or create metadata entries.

Instructions

[writes to the IPT] Save any metadata section by raw field names (get them with ipt_get_metadata_form). Repeatable items use indexed names such as eml.citation.citation or eml.physicalData[0].name.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fieldsYes
sectionYes
shortnameYesResource shortname

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior3/5

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

The description states that the tool writes to the IPT, implying a mutation, which is consistent with the absence of annotations. It discloses the key behavior of using raw field names and indexed names for repeatable items, which is critical operational context. It doesn't mention potential side effects or permissions required, but given that annotations are absent and the operation is a write, the description carries a reasonable burden.

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 is two sentences long, directly states the purpose, and front-loads the critical risk warning ('writes to the IPT'). It provides a concrete example of indexed names, which is valuable without being verbose. 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 tool has nested objects (fields is an object with additionalProperties) and complex semantics. The description explains how to structure repeatable fields and directs to ipt_get_metadata_form for field names. It lacks explicit guidance on which sections are valid or what happens if required fields are missing, but for a generic metadata setter, it covers the essential ambiguity.

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

Parameters4/5

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

Schema coverage is only 33% (only shortname has a description). The description explains the 'fields' parameter format (raw field names, indexed names), which is not obvious from the schema, and it explains the 'section' parameter implicitly as a container for those fields. It adds significant meaning beyond the schema, which is essential because the schema is sparse.

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 clearly states the verb 'Save' and the resource 'metadata section by raw field names', distinguishing it from other ipt_set_* tools that save specific sections like contacts or coverage. It explicitly mentions the companion tool ipt_get_metadata_form for retrieving field names, which helps differentiate it from ipt_get_draft_eml and similar tools. However, it doesn't explicitly name a sibling to contrast with, but the purpose is clear enough.

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 implies that this tool is for saving arbitrary metadata fields not covered by more specific setters (like ipt_set_contacts or ipt_set_coverage), and it tells the user to obtain field names via ipt_get_metadata_form, which is an explicit prerequisite. It doesn't explicitly state when not to use it (e.g., when a dedicated setter exists), but the general context is clear.

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