Skip to main content
Glama

Change data in SemanticHub

semantichub_api_write
Destructive

Runs an operation that changes the user's account: creating or editing goals, sources and workflows, starting work, or deleting. Risky actions (deletions, deliveries to external receivers, paid AI work, changes to delivery or sources) first return confirmation_required with a confirm handle. Ask the user, and repeat the identical call with that handle only if they agree.

Input Schema

NameRequiredDescriptionDefault
bodyNoJSON request body of the operation. Its shape is described by api_details.
queryNoQuery-string parameters of the operation, when api_details lists any.
confirmNoOne-time confirmation handle returned by an earlier call to the same operation with the same arguments. Send it only after the user has agreed to the action. Omit it on the first call.
path_paramsNoValues for placeholders in the operation path, for example {"goal_id": "<uuid>"}. Required only when api_details lists path parameters.
operation_idYesIdentifier of a changing (POST, PUT, PATCH or DELETE) operation, as returned by semantichub_api_search.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / body / description
      Added value: +"JSON request body of the operation. Its shape is described by api_details."
    • addedInput schema / properties / confirm / description
      Added value: +"One-time confirmation handle returned by an earlier call to the same operation with the same arguments. Send it only after the user has agreed to the action. Omit it on the first call."
    • addedInput schema / properties / operation_id / description
      Added value: +"Identifier of a changing (POST, PUT, PATCH or DELETE) operation, as returned by semantichub_api_search."
    • addedInput schema / properties / path_params / description
      Added value: +"Values for placeholders in the operation path, for example {\"goal_id\": \"<uuid>\"}. Required only when api_details lists path parameters."
    • addedInput schema / properties / query / description
      Added value: +"Query-string parameters of the operation, when api_details lists any."
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare destructive/non-idempotent, but the description adds the key behavior an agent cannot infer: risky operations return confirmation_required with a handle, the user must be asked, and the identical call must be repeated with that handle. Categorizing which actions are 'risky' (deletions, external deliveries, paid AI work, delivery/source changes) is genuinely non-obvious context.

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?

Two sentences, front-loaded with purpose then the risky-action protocol. Every clause carries information; nothing is redundant.

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

Completeness5/5

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

An output schema exists, so return values need not be described. For a generic dispatcher over a large operation surface, the description supplies the one piece of procedural knowledge needed to call it safely — the confirmation loop — leaving operation shapes to api_details as stated in the schema.

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 coverage is 100% and the confirm parameter is already documented in detail, so the description has little room to add. It reinforces that the retry must be the identical call with the handle, but adds no field-level meaning beyond the 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?

States a specific verb+resource ('Runs an operation that changes the user's account') and enumerates the concrete action classes (goals, sources, workflows, starting work, deleting). This clearly separates it from semantichub_api_read and the search/details siblings.

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?

Establishes when to use it (any changing operation) and prescribes a precise workflow for risky actions. It stops short of explicitly saying to use semantichub_api_read for non-changing calls or naming semantichub_api_search as the source of operation_id, which the schema carries instead.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources