Skip to main content
Glama
Pseudogiant-xr

PseudoLife-MCP

Official

memory_relation_define

Define a new relation type in the knowledge graph when built-ins don't fit, specifying inverse, entity type expectations, and transitivity.

Instructions

Add a relation to the closed graph vocabulary — a deliberate, rare act. Prefer the builtins; define one only when a recurring connection genuinely fits none of them.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesThe new relation name, hyphenated like the builtins.
dst_typeNoSoft entity-kind expectation for the object; a mismatch warns, never rejects.
src_typeNoSoft entity-kind expectation for the subject; a mismatch warns, never rejects.
inverse_ofNoPair with an existing relation, as ``runs-on`` is the inverse of ``hosts``.
transitiveNoTrue closes the relation transitively, so chained edges arrive pre-derived.
descriptionYesWhat the relation means, for later readers.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv0.15.0
    • addedInput schema / properties / description / description
      Added value: +"What the relation means, for later readers."
    • addedInput schema / properties / dst_type / description
      Added value: +"Soft entity-kind expectation for the object; a mismatch warns, never rejects."
    • addedInput schema / properties / inverse_of / description
      Added value: +"Pair with an existing relation, as ``runs-on`` is the inverse of ``hosts``."
    • addedInput schema / properties / name / description
      Added value: +"The new relation name, hyphenated like the builtins."
    • addedInput schema / properties / src_type / description
      Added value: +"Soft entity-kind expectation for the subject; a mismatch warns, never rejects."
    • addedInput schema / properties / transitive / description
      Added value: +"True closes the relation transitively, so chained edges arrive pre-derived."
  2. First observedv0.11.0

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It does convey that this is a 'deliberate, rare act' within a 'closed' vocabulary, implying persistence and caution. However, it does not state whether the operation is reversible, what system-wide effects it has, or whether it affects existing graph relations. The warning semantics in the schema are useful but separate from the description.

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 with no filler. The first sentence states the action and its gravity; the second sentence gives the usage rule. It is front-loaded and every phrase earns its place.

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

Completeness3/5

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

The description gives a strong rationale and selection criterion but omits side-effect details such as reversibility, effect on existing graph queries, or relation to sibling tools like memory_graph_relate. The output schema covers return values, so that absence is acceptable, but broader operational context is still somewhat thin.

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%, and each parameter, including optional soft type expectations and inverse_of, is already well described in the input schema. The description does not add parameter-level meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

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 states a specific action: 'Add a relation to the closed graph vocabulary' and clarifies that this means defining a new relation type, not creating an edge. It is distinguishable from sibling tools like memory_graph_relate, though it does not explicitly name them. The 'define one' phrasing reinforces the vocabulary-level purpose.

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 gives a clear decision rule: 'Prefer the builtins; define one only when a recurring connection genuinely fits none of them.' This tells the agent when to use the tool and when to avoid it. However, the alternative is referred to as 'builtins' rather than naming a specific sibling tool or concrete exclusionary condition.

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