Skip to main content
Glama

Synapse Layer — Trust Infrastructure for AI Agents

recall

Read-only

Retrieve relevant persisted memory using semantic, temporal, priority, or hybrid routing. Governance: requires reason (10–200 chars). Rate limit: 20/min.

Input Schema

NameRequiredDescriptionDefault
modeNoRecall routing mode. "temporal" = pure chronological, "semantic" = FTS + TQ ranking, "priority" = critical/high-TQ first, "hybrid" = weighted blend, "auto" = detect from query (default).
limitNoMaximum memories to return (1–50, default: 10).
queryYesWhat to recall — natural language query for memory retrieval.
scopeNoExplicit memory scope. "agent" (default, fail-closed) = limits recall to the given agent_id (or the token agent). "tenant" = cross-agent recall within the authenticated tenant. If omitted with agent_id present, "agent" is inferred; if both omitted, the token agent is used (verified-token scope).
reasonYesREQUIRED (10–200 chars). Audit policy: MEMORY_EXPORT_GOVERNANCE_V1. Human-readable justification for retrieving PLAINTEXT memory. Without this parameter the call WILL fail with code -32602. Example: "User asked me to summarize last week decisions."
subjectNoESCOPO1 (optional): opaque 8-128 char token ([A-Za-z0-9._:-]) that isolates memory to a single person within a shared connect-token. Omit for token-scoped behavior. Never include PII/email.
agent_idNoAgent identifier (canonical or alias). Used only when scope="agent" or scope is inferred.
project_idNoOptional project ID. Required for Corporate context unless the token is project-bound.

Output Schema

NameRequiredDescriptionDefault
countYes
scopeYes
memoriesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / project_id
      Added value: +{
      +  "description": "Optional project ID. Required for Corporate context unless the token is project-bound.",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / subject
      Added value: +{
      +  "description": "ESCOPO1 (optional): opaque 8-128 char token ([A-Za-z0-9._:-]) that isolates memory to a single person within a shared connect-token. Omit for token-scoped behavior. Never include PII/email.",
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "count": {
      +      "type": "number"
      +    },
      +    "memories": {
      +      "items": {
      +        "properties": {
      +          "content": {
      +            "type": "string"
      +          },
      +          "createdAt": {
      +            "format": "date-time",
      +            "type": "string"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "similarity": {
      +            "type": "number"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "scope": {
      +      "enum": [
      +        "agent",
      +        "tenant"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "memories",
      +    "count",
      +    "scope"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "additionalProperties": true,
      -  "properties": {
      -    "agent_id": {
      -      "type": "string"
      -    },
      -    "count": {
      -      "type": "number"
      -    },
      -    "fallback": {
      -      "type": "boolean"
      -    },
      -    "memories": {
      -      "items": {
      -        "additionalProperties": true,
      -        "properties": {
      -          "agent": {
      -            "type": "string"
      -          },
      -          "confidence": {
      -            "enum": [
      -              "high",
      -              "medium_fts",
      -              "low"
      -            ],
      -            "type": "string"
      -          },
      -          "content": {
      -            "description": "Memory content (truncated to 300 chars in recall).",
      -            "type": "string"
      -          },
      -          "hybridScore": {
      -            "type": "number"
      -          },
      -          "id": {
      -            "type": "string"
      -          },
      -          "intent": {
      -            "type": "string"
      -          },
      -          "is_critical": {
      -            "type": "boolean"
      -          },
      -          "memory_type": {
      -            "type": "string"
      -          },
      -          "timestamp": {
      -            "description": "ISO-8601 timestamp.",
      -            "type": "string"
      -          },
      -          "trust_quotient": {
      -            "type": "number"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "query": {
      -      "type": "string"
      -    },
      -    "queryCacheHit": {
      -      "type": "boolean"
      -    },
      -    "recallLatencyMs": {
      -      "type": "number"
      -    },
      -    "recall_mode": {
      -      "type": "string"
      -    },
      -    "redacted": {
      -      "type": "boolean"
      -    },
      -    "scope": {
      -      "type": "string"
      -    },
      -    "scope_source": {
      -      "type": "string"
      -    },
      -    "sessionCacheHit": {
      -      "type": "boolean"
      -    }
      -  },
      -  "required": [
      -    "memories",
      -    "count"
      -  ],
      -  "type": "object"
      -}New value: +null
  5. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "agent_id": {
      +      "type": "string"
      +    },
      +    "count": {
      +      "type": "number"
      +    },
      +    "fallback": {
      +      "type": "boolean"
      +    },
      +    "memories": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "agent": {
      +            "type": "string"
      +          },
      +          "confidence": {
      +            "enum": [
      +              "high",
      +              "medium_fts",
      +              "low"
      +            ],
      +            "type": "string"
      +          },
      +          "content": {
      +            "description": "Memory content (truncated to 300 chars in recall).",
      +            "type": "string"
      +          },
      +          "hybridScore": {
      +            "type": "number"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "intent": {
      +            "type": "string"
      +          },
      +          "is_critical": {
      +            "type": "boolean"
      +          },
      +          "memory_type": {
      +            "type": "string"
      +          },
      +          "timestamp": {
      +            "description": "ISO-8601 timestamp.",
      +            "type": "string"
      +          },
      +          "trust_quotient": {
      +            "type": "number"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "query": {
      +      "type": "string"
      +    },
      +    "queryCacheHit": {
      +      "type": "boolean"
      +    },
      +    "recallLatencyMs": {
      +      "type": "number"
      +    },
      +    "recall_mode": {
      +      "type": "string"
      +    },
      +    "redacted": {
      +      "type": "boolean"
      +    },
      +    "scope": {
      +      "type": "string"
      +    },
      +    "scope_source": {
      +      "type": "string"
      +    },
      +    "sessionCacheHit": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "memories",
      +    "count"
      +  ],
      +  "type": "object"
      +}
  6. Changed2 schema fields changed
    • changedInput schema / properties / reason / description
      Previous value: -"REQUIRED (MEMORY_EXPORT_GOVERNANCE_V1): human-readable justification for retrieving PLAINTEXT memory content. Must be 10–200 characters. Logged in the anti-dump audit trail. Example: \"User asked me to summarize last week's migration decisions.\""New value: +"REQUIRED (10–200 chars). Audit policy: MEMORY_EXPORT_GOVERNANCE_V1. Human-readable justification for retrieving PLAINTEXT memory. Without this parameter the call WILL fail with code -32602. Example: \"User asked me to summarize last week decisions.\""
    • changedInput schema / properties / scope / description
      Previous value: -"Explicit memory scope. \"agent\" (default, fail-closed) = limits recall to the given agent_id (or the token agent). \"tenant\" = cross-agent recall within the authenticated tenant. If omitted with agent_id present, \"agent\" is inferred; if both omitted, the token agent is used with a warning."New value: +"Explicit memory scope. \"agent\" (default, fail-closed) = limits recall to the given agent_id (or the token agent). \"tenant\" = cross-agent recall within the authenticated tenant. If omitted with agent_id present, \"agent\" is inferred; if both omitted, the token agent is used (verified-token scope)."
  7. Changed4 schema fields changed
    • changedInput schema / properties / agent_id / description
      Previous value: -"Agent identifier to scope memory recall. Defaults to \"default\"."New value: +"Agent identifier (canonical or alias). Used only when scope=\"agent\" or scope is inferred."
    • addedInput schema / properties / reason
      Added value: +{
      +  "description": "REQUIRED (MEMORY_EXPORT_GOVERNANCE_V1): human-readable justification for retrieving PLAINTEXT memory content. Must be 10–200 characters. Logged in the anti-dump audit trail. Example: \"User asked me to summarize last week's migration decisions.\"",
      +  "type": "string"
      +}
    • addedInput schema / properties / scope
      Added value: +{
      +  "description": "Explicit memory scope. \"agent\" (default, fail-closed) = limits recall to the given agent_id (or the token agent). \"tenant\" = cross-agent recall within the authenticated tenant. If omitted with agent_id present, \"agent\" is inferred; if both omitted, the token agent is used with a warning.",
      +  "enum": [
      +    "agent",
      +    "tenant"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "query"
      -]New value: +[
      +  "query",
      +  "reason"
      +]
  8. Changed4 schema fields changed
    • changedInput schema / properties / agent_id / description
      Previous value: -"Agent identifier (canonical or alias). Used only when scope=\"agent\" or scope is inferred."New value: +"Agent identifier to scope memory recall. Defaults to \"default\"."
    • removedInput schema / properties / reason
      Removed value: -{
      -  "description": "REQUIRED (MEMORY_EXPORT_GOVERNANCE_V1): human-readable justification for retrieving PLAINTEXT memory content. Must be 10–200 characters. Logged in the anti-dump audit trail. Example: \"User asked me to summarize last week's migration decisions.\"",
      -  "type": "string"
      -}
    • removedInput schema / properties / scope
      Removed value: -{
      -  "description": "Explicit memory scope. \"agent\" (default, fail-closed) = limits recall to the given agent_id (or the token agent). \"tenant\" = cross-agent recall within the authenticated tenant. If omitted with agent_id present, \"agent\" is inferred; if both omitted, the token agent is used with a warning.",
      -  "enum": [
      -    "agent",
      -    "tenant"
      -  ],
      -  "type": "string"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "query",
      -  "reason"
      -]New value: +[
      +  "query"
      +]
  9. Changed2 schema fields changed
    • addedInput schema / properties / reason
      Added value: +{
      +  "description": "REQUIRED (MEMORY_EXPORT_GOVERNANCE_V1): human-readable justification for retrieving PLAINTEXT memory content. Must be 10–200 characters. Logged in the anti-dump audit trail. Example: \"User asked me to summarize last week's migration decisions.\"",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "query"
      -]New value: +[
      +  "query",
      +  "reason"
      +]
  10. Changed2 schema fields changed
    • changedInput schema / properties / agent_id / description
      Previous value: -"Agent identifier to scope memory recall. Defaults to \"default\"."New value: +"Agent identifier (canonical or alias). Used only when scope=\"agent\" or scope is inferred."
    • addedInput schema / properties / scope
      Added value: +{
      +  "description": "Explicit memory scope. \"agent\" (default, fail-closed) = limits recall to the given agent_id (or the token agent). \"tenant\" = cross-agent recall within the authenticated tenant. If omitted with agent_id present, \"agent\" is inferred; if both omitted, the token agent is used with a warning.",
      +  "enum": [
      +    "agent",
      +    "tenant"
      +  ],
      +  "type": "string"
      +}
  11. Changed1 schema field changed
    • addedInput schema / properties / mode
      Added value: +{
      +  "description": "Recall routing mode. \"temporal\" = pure chronological, \"semantic\" = FTS + TQ ranking, \"priority\" = critical/high-TQ first, \"hybrid\" = weighted blend, \"auto\" = detect from query (default).",
      +  "enum": [
      +    "auto",
      +    "temporal",
      +    "semantic",
      +    "priority",
      +    "hybrid"
      +  ],
      +  "type": "string"
      +}
  12. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds useful non-schema behavioral context: a required audit reason and a rate limit of 20/min. It does not contradict the annotations.

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 compact sentences with no waste. The core purpose is front-loaded, followed immediately by governance and rate-limit constraints.

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 description covers purpose, governance, and rate limits, and the schema plus output schema carry the detailed parameter and return-value semantics. It is sufficient to call the tool correctly, though it still lacks sibling differentiation and explicit usage guidance.

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%, so the input schema already documents all eight parameters in detail. The description restates the reason requirement and mentions routing modes, but adds little parameter meaning beyond the schema.

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 verb and resource: retrieve relevant persisted memory. It also names routing modes, making the retrieval purpose clear. However, it does not distinguish this tool from close siblings such as recall_memory or search.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus recall_memory, search, list_memories, or other retrieval siblings. It implies a memory-recall use case but provides no selection criteria or exclusions.

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.