Skip to main content
Glama

memory_search

Read-onlyIdempotent

[Wicked Memory] Semantic search over YOUR memories only, ranked by real cosine similarity. The one metered call: free with MEMORY_API_KEY, otherwise http_status 402 with x402 v2 instructions under payment_required (0.001 USDC on Base) — pay, then call again with the SAME arguments (a 402 does not consume the nonce) plus payment_signature.

Use when you want to recall your memories by meaning rather than by id. Not for fetching a known id (use memory_get).

Behavior: read-only.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "wallet": "<wallet>",
      "q": "<q>",
      "timestamp": "<timestamp>",
      "nonce": "<nonce>",
      "signature": "<signature>"
    },
    "name": "memory_search"
  }
}

Input Schema

NameRequiredDescriptionDefault
qYesWhat to look for, in natural language.
tagsNoOnly memories having ALL of these tags.
as_ofNoISO-8601 instant; search memory as it stood then.
limitNo1-50, default 10.
nonceYesFrom memory_prepare (single use).
walletYesYour agent's 0x wallet address.
signatureYesYour wallet's signature over memory_prepare's message_to_sign.
timestampYesFrom memory_prepare.
created_afterNoISO-8601 lower bound.
created_beforeNoISO-8601 upper bound.
payment_signatureNox402 payment payload (base64) for the keyless path.
include_supersededNoAlso search old, superseded versions.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false. The description adds substantive behavioral context beyond annotations: it is a metered call, free with MEMORY_API_KEY, otherwise returns HTTP 402 with x402 v2 payment instructions, costs 0.001 USDC on Base, and requires retrying with the SAME arguments plus payment_signature. This is exactly the kind of operational detail annotations cannot express.

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 front-loaded with purpose and usage guidance, then gives necessary payment details. It is generally efficient, though the final 'Behavior: read-only.' sentence merely repeats the readOnlyHint annotation and is redundant.

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 complex 12-parameter tool with payment flow and no output schema, the description covers purpose, usage, payment/retry behavior, and read-only nature well. It does not describe the shape of returned results, which is a minor gap given the absence of an output schema, but an agent has enough to invoke it correctly.

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 schema already documents all 12 parameters, including q, tags, as_of, limit, nonce, wallet, signature, timestamp, and payment_signature. The description adds some useful parameter-usage context via the retry rule and payment_signature flow, but it does not elaborate on the individual search filters. Baseline 3 is appropriate when the schema does the heavy lifting.

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 and resource: 'Semantic search over YOUR memories only, ranked by real cosine similarity.' It also distinguishes from the sibling memory_get by saying it is not for fetching a known id. An agent can clearly identify what the tool does and how it differs from related tools.

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: 'Use when you want to recall your memories by meaning rather than by id.' It also names the exclusion and alternative: 'Not for fetching a known id (use memory_get).' This leaves no ambiguity about tool selection.

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.