Skip to main content
Glama
Pseudogiant-xr

PseudoLife-MCP

Official

memory_graph_review

Destructive

Review pending graph proposals and deep-dream findings, then settle links, merges, duplicates, junk, and relations with accept, reject, or dismiss verdicts.

Instructions

Work the graph review queue — deep-dream proposals that need a verdict before they touch the graph.

Actions: list: pending findings/proposals. propose: file link proposals for review. relate: related-not-duplicate verdict — writes the relation edge and dismisses the pair. dismiss_pair: mark src/dst genuinely distinct. dismiss_slot_pair: same for lesson/world duplicate listings. restore_slot: undo a lesson/world forget (forgets retire, never delete) — store + src (the retired key). accept_link/reject_link: settle an edge proposal by id. accept_merge: fold a near-duplicate into its twin. accept_junk: delete an over-extraction artifact. reject_entity: keep the entity, dismiss the proposal.

Returns: per-action dict; {error} on bad input.

Input Schema

NameRequiredDescriptionDefault
dstNorelate/dismiss_pair/dismiss_slot_pair: the second entity or key.
srcNorelate/dismiss_pair: the first entity. dismiss_slot_pair: an "entity|attribute" key from the deep response; restore_slot: retired key or entity.
scopeNolist: keep only analyzer findings whose entities carry this memory source (Atlas project); queued proposals always list; omit or "all" for everything. Not a finding kind.
storeNodismiss_slot_pair/restore_slot: "lesson" or "world".
actionNolist
relationNorelate: edge relation to write (graph vocabulary).
proposalsNopropose: ``[{src, relation, dst, similarity?, rationale?}]``.
proposal_idNoId actions: the proposal to settle.
proposal_idsNoId actions: many proposals at once.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.18.1
    • addedInput schema / additionalProperties
      Added value: +false
  2. Changed6 schema fields changedv0.16.0
    • changedInput schema / properties / dst / description
      Previous value: -"relate/dismiss_pair: the second entity. dismiss_slot_pair: an \"entity|attribute\" key from the deep response."New value: +"relate/dismiss_pair/dismiss_slot_pair: the second entity or key."
    • changedInput schema / properties / proposal_id / description
      Previous value: -"Id actions: the one proposal to settle."New value: +"Id actions: the proposal to settle."
    • changedInput schema / properties / proposal_ids / description
      Previous value: -"Id actions: settle many proposals in one call, instead of ``proposal_id``."New value: +"Id actions: many proposals at once."
    • changedInput schema / properties / relation / description
      Previous value: -"relate: the edge relation to write, from the graph vocabulary."New value: +"relate: edge relation to write (graph vocabulary)."
    • changedInput schema / properties / scope / description
      Previous value: -"list: keep only findings of this kind."New value: +"list: keep only analyzer findings whose entities carry this memory source (Atlas project); queued proposals always list; omit or \"all\" for everything. Not a finding kind."
    • changedInput schema / properties / store / description
      Previous value: -"dismiss_slot_pair / restore_slot: which store the key belongs to — \"lesson\" or \"world\"."New value: +"dismiss_slot_pair/restore_slot: \"lesson\" or \"world\"."
  3. Changed9 schema fields changedv0.15.0
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "list",
      -  "propose",
      -  "relate",
      -  "dismiss_pair",
      -  "dismiss_slot_pair",
      -  "accept_link",
      -  "reject_link",
      -  "accept_merge",
      -  "accept_junk",
      -  "reject_entity"
      -]New value: +[
      +  "list",
      +  "propose",
      +  "relate",
      +  "dismiss_pair",
      +  "dismiss_slot_pair",
      +  "restore_slot",
      +  "accept_link",
      +  "reject_link",
      +  "accept_merge",
      +  "accept_junk",
      +  "reject_entity"
      +]
    • addedInput schema / properties / dst / description
      Added value: +"relate/dismiss_pair: the second entity. dismiss_slot_pair: an \"entity|attribute\" key from the deep response."
    • addedInput schema / properties / proposal_id / description
      Added value: +"Id actions: the one proposal to settle."
    • addedInput schema / properties / proposal_ids / description
      Added value: +"Id actions: settle many proposals in one call, instead of ``proposal_id``."
    • addedInput schema / properties / proposals / description
      Added value: +"propose: ``[{src, relation, dst, similarity?, rationale?}]``."
    • addedInput schema / properties / relation / description
      Added value: +"relate: the edge relation to write, from the graph vocabulary."
    • addedInput schema / properties / scope / description
      Added value: +"list: keep only findings of this kind."
    • addedInput schema / properties / src / description
      Added value: +"relate/dismiss_pair: the first entity. dismiss_slot_pair: an \"entity|attribute\" key from the deep response; restore_slot: retired key or entity."
    • addedInput schema / properties / store / description
      Added value: +"dismiss_slot_pair / restore_slot: which store the key belongs to — \"lesson\" or \"world\"."
  4. Changed3 schema fields changedv0.14.0
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "list",
      -  "propose",
      -  "dismiss_pair",
      -  "dismiss_slot_pair",
      -  "accept_link",
      -  "reject_link",
      -  "accept_merge",
      -  "accept_junk",
      -  "reject_entity"
      -]New value: +[
      +  "list",
      +  "propose",
      +  "relate",
      +  "dismiss_pair",
      +  "dismiss_slot_pair",
      +  "accept_link",
      +  "reject_link",
      +  "accept_merge",
      +  "accept_junk",
      +  "reject_entity"
      +]
    • addedInput schema / properties / proposal_ids
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "integer"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Proposal Ids"
      +}
    • addedInput schema / properties / relation
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Relation"
      +}
  5. First observedv0.11.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds real behavioral context beyond them: restore_slot notes 'forgets retire, never delete', relate 'writes the relation edge and dismisses the pair', accept_junk deletes over-extraction artifacts, and accept_merge folds entities. It also documents the return shape and {error} on bad input. It doesn't state auth/rate-limit constraints, so 4.

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 purpose sentence followed by a scannable action list; every line carries a distinct verdict or effect. Efficient for an 11-action multiplexer, with only minimal redundancy from the trailing return note.

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?

An output schema exists and annotations cover the safety profile, so the description needn't explain return values. It covers all 11 actions and the retire-never-delete semantics, but omits sequencing prerequisites (e.g. whether a list/propose must precede an id-based settle).

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 89%, so the schema already documents src, dst, store, scope, relation, proposals, proposal_id and proposal_ids in detail. The description reinforces parameter roles in context ('store + src (the retired key)', 'settle an edge proposal by id') but adds little beyond the structured fields. Baseline 3 applies.

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 opening sentence gives a specific verb and resource: work the graph review queue for deep-dream proposals awaiting a verdict before touching the graph. That clearly separates this from direct-write tools like memory_graph_relate or generation tools like memory_dream. It stops short of naming a sibling or explicitly contrasting, so 4 rather than 5.

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?

Each of the 11 actions is annotated with what it decides (e.g. 'relate: related-not-duplicate verdict', 'dismiss_pair: mark src/dst genuinely distinct', 'reject_entity: keep the entity, dismiss the proposal'), which functions as per-action usage guidance. No explicit when-not or alternative-tool routing is given, so it lands at 4.

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