Skip to main content
Glama

memory_search

Read-only

Search project-isolated stored memories by semantic meaning rather than exact text to retrieve relevant past context and patterns across sessions.

Instructions

Find stored memories by meaning (vector similarity), not by literal text — finds "JWT auth pattern" when you query "token-based login flow". Use for project-scoped persistent memory. Never import personal memory automatically. Data is isolated by project_path; runtime reports actual embedding and storage backend.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum results (default: 10)
queryYesSearch query (semantic similarity)
smartNoEnable SmartRetrieval — query expansion, RRF fusion, recency boost, MMR diversity; preserves raw similarity and adds rankingScore (default: false)
namespaceNoNamespace to search (default: all namespaces — omit to search across every namespace)
thresholdNoMinimum raw retrieval relevance 0-1 for candidate admission, applied per query before SmartRetrieval ranking; not a floor on rankingScore (default: 0.2; calibrated for the bundled embedding model, pass 0 to see every match)
project_pathYesAbsolute path to the existing project directory. Always use the current task workspace. Each canonical path has its own isolated Ruflo store.
provenance_filterNoADR-323: restrict results to these provenance types (e.g. exclude user_claim when fact-checking). Omit for no filtering. Enforced for standard and SmartRetrieval searches.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish read-only, non-destructive, closed-world behavior. The description adds meaningful behavioral context beyond annotations: project_path isolation, a warning against automatic personal-memory import, and that runtime reports the actual embedding and storage backend.

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?

The description is short and front-loads the core semantic-search concept with a concrete example. The policy sentence about personal memory is somewhat separate from invocation semantics but still earns its place as a guardrail.

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?

For a seven-parameter read-only search tool with rich schema descriptions and no output schema, the description provides enough conceptual context to call it correctly: semantic matching, project isolation, and backend reporting. It remains slightly incomplete because it does not route the agent among retrieval siblings.

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 all seven parameters are already well documented, including smart, threshold, namespace, and provenance_filter. The description reinforces the semantic nature of query and project_path isolation but adds little parameter-level detail beyond the schema, making the baseline 3 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 verb and resource — find stored memories — and clearly specifies semantic/vector similarity rather than literal text matching, with a useful example. It does not explicitly name or distinguish itself from retrieval siblings such as memory_retrieve or memory_list, so sibling differentiation is only implicit.

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

Usage Guidelines3/5

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

It gives contextual usage guidance ('Use for project-scoped persistent memory') and a policy warning ('Never import personal memory automatically'), but does not state when to choose this over sibling tools like memory_retrieve, memory_list, or memory_stats. The usage context is implied rather than comparative.

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