Skip to main content
Glama

search_memory

Read-only

Search the cross-assistant journal by keyword (case-insensitive substring over entry content) across ALL dates. Use it when the user asks about a specific past topic (「あの件どうなったっけ」) and before answering what the current state of something is. Current decision/profile entries come first, then newest first. Each result has id (pass it to add_memory supersedes when the entry is outdated), belongs_to, visibility, confidence. kinds (e.g. ['decision']), tags (project/topic — the most reliable) and sources ('terminal' | 'claude-web' | 'chatgpt') narrow the hits; belongs_to narrows to named labels (a filter, not access control; unfiled entries only with include_unfiled: true, and only filed entries match otherwise — combine with tags). Only current entries by default — include_superseded: true shows how something changed over time.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qYesSubstring to look for in entry content (case-insensitive).
tagsNoEntries carrying at least one of these tags. The most reliable way to narrow by project/topic: tags are what writers actually attach (e.g. 'AccountHub', 'GTM', 'handoff').
kindsNoOnly these kinds — e.g. ['decision'] for decisions only ('activity' | 'learning' | 'decision' | 'profile').
limitNoMax entries to return (default 20).
sourcesNoOnly entries written from these surfaces: 'terminal' | 'claude-web' | 'chatgpt'.
belongs_toNoRead only entries filed under these `belongs_to` labels (NAMES from `belongs_to_options` in list_accounts / the digest, e.g. ['プライベート']). A topic FILTER, not access control — who may read an entry is `visibility`. With `belongs_to`, unfiled entries are left out unless include_unfiled is true. Unknown names are refused with the valid list.
visibilitiesNoOnly entries with these audiences — e.g. ['private_self','shared_1on1'] to leave out 'company' / 'hr_private'.
include_unfiledNoAlso include entries not filed under any `belongs_to` label. With `belongs_to`: default false (only the named labels). Without `belongs_to`: default true; pass false to drop unfiled entries.
include_supersededNoAlso search superseded (no-longer-current) entries — old states of a memory_key that have since been replaced. Default false — only turn this on to look at history (e.g. "how did this decision change over time"), never to answer "what is the current state of X".
include_operationalNoAlso search scheduled-job bookkeeping (checkpoints, processed ids, "nothing new"). Default false — only turn it on to debug a collection job, never to answer a question about the work itself.

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?

readOnlyHint already covers the safety profile, but the description adds real behavior: result ordering (current decision/profile entries first, then newest first), the default exclusion of superseded and operational entries, and the crucial 'belongs_to is a filter, not access control' clarification. It falls just short of 5 only because it does not mention pagination or result volume limits.

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 purpose and the trigger condition, then parameters, then defaults. It is dense and fairly long, but nearly every clause carries operational value; only the parenthetical Japanese phrase is expendable.

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?

With no output schema, the description compensates by naming the returned fields (id, belongs_to, visibility, confidence) and explaining the id-to-supersedes workflow. For a 10-parameter filtered search tool this is complete enough to invoke correctly without trial and error.

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 100%, so the baseline is 3, but the description adds genuine meaning beyond the schema: how include_superseded and include_operational interact with the default current-state query, and how belongs_to combines with tags and include_unfiled. The tag-vs-belongs_to reliability framing ('the most reliable') corroborates rather than duplicates 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 (search) and resource (cross-assistant journal) and defines the matching semantics (case-insensitive substring over entry content) and scope (ALL dates). An agent can distinguish it from siblings like search_messages or search_notion_pages without opening any schema.

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?

Explicitly says when to use it ('when the user asks about a specific past topic' / 'before answering what the current state of something is'), and routes the agent onward with the supersedes handoff to add_memory. It also draws clear when-not lines: include_superseded never to answer 'current state of X', include_operational never to answer work questions.

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