Skip to main content
Glama

Manage Traits

gnosari_manage_traits

Create, list, get, update, delete, assign, or remove personality traits.

Traits shape how an agent communicates. Use assign/remove to link traits to an agent.

To change a trait's behavioral instructions, prefer action="update" with anchored instructions_edits: only the changed span is sent, everything else stays byte-identical, and the response's applied[].excerpt shows what landed so no second read is needed. Pass whole instructions only to write a completely new set.

The usual flow is action="get" (read instructions_version) → action="update" with expected_version set; every read and write returns the instructions_version for the next call.

Raises: ValueError: VALIDATION_ERROR for a malformed call, ANCHOR_NOT_FOUND or ANCHOR_AMBIGUOUS for an unusable anchor, or CONFLICT for a stale expected_version.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoTrait name (create/update)
actionYesAction to perform on traits
searchNoSearch query (list)
weightNoInfluence weight 0.0-10.0 (create/update)
trait_idNoTrait ID (get/update/delete)
trait_idsNoTrait IDs to assign/remove
gnosari_idNoAgent ID (assign/remove, or create+assign)
is_defaultNoAuto-assign this trait to newly created agents in this account (create/update)
descriptionNoTrait description (create/update)
instructionsNoBehavioral instructions (create/update). On update this REPLACES the whole text — prefer instructions_edits for any change to existing instructions. Never combine the two. A trait's instructions are mandatory: an empty string is refused
confirm_replaceNoDeliberate-overwrite flag. Required when passing 'instructions' would discard more than 2000 stored characters; ignored otherwise
expected_versionNoThe instructions_version from your last action="get" (or from the previous update response). Strongly recommended with instructions_edits: if the stored text changed underneath you the call is refused with CONFLICT and nothing is written
instructions_editsNoAnchored partial edits to a trait's instructions (update) — prefer this over 'instructions' for any change to existing text. Each edit is {op, old, new}, where op is replace/insert_before/insert_after/delete/append/prepend. 'old' is matched exactly, whitespace-significant, and must occur exactly once unless replace_all=True — if it is ambiguous, widen it with surrounding lines. Edits apply in order, all-or-nothing: any failing edit writes nothing and names its index. Never re-send the whole text to change part of it. Maximum 20 per call

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations only assert the mutation profile (readOnlyHint=false, destructiveHint=false, non-idempotent), which is actually somewhat under-informative for a tool with delete/remove actions. The description compensates with concrete behavior: anchored edits are all-or-nothing and name the failing index, a stale expected_version triggers CONFLICT with nothing written, and the full-text path can demand confirm_replace past 2000 characters. It stops short of describing exactly what assign/remove or delete do to already-assigned agents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the verb list, then progressive disclosure through the preferred edit flow and the error taxonomy. The 'Raises:' block is useful but slightly verbose relative to the rest, and the multi-line prologue costs a little density.

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?

For a 13-parameter, 7-action tool with an output schema and rich annotations, the description covers the concurrency contract, the destructive-write guard, the error surface, and the recommended workflow. An agent could call this correctly on the first attempt without opening the schema for anything except the edit sub-fields, which the schema already documents.

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 already 100%, so the schema documents every parameter including the nested edit shape. The description still adds semantics the schema can't: the get→update→expected_version loop, the preference for instructions_edits over instructions, and the meaning of CONFLICT. It doesn't add much beyond the schema for the simpler action-scoped parameters, which caps it below 5.

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?

The description opens with an explicit enumeration of the CRUD-plus-assign verb set and the resource ('personality traits'), which is specific and distinguishable from siblings like gnosari_manage_instructions and gnosari_manage_knowledge. It also explains what a trait actually is ('shape how an agent communicates'), which no structured field conveys.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit workflow (get → update with expected_version), names the preferred action for changing existing instructions (update with instructions_edits rather than whole instructions), and states the condition for the fallback ('Pass whole instructions only to write a completely new set'). That is when-to-use plus when-not, which is rare.

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