Skip to main content
Glama

palinode_search

Read-onlyIdempotent

Search Palinode memory for relevant context about people, projects, decisions, insights, or research, returning ranked excerpts with optional filters and resolution.

Instructions

Search Palinode memory for relevant context about people, projects, decisions, insights, or research. Returns the most relevant memory file excerpts ranked by configured hybrid or lexical retrieval.

Input Schema

NameRequiredDescriptionDefault
fullNoReturn full chunk content instead of snippets.
tierNoHow much of each hit to return. 'abstract' caps every hit at ~300 chars (summary first) for cheap relevance checks; 'overview' returns frontmatter plus the head of the body; 'full' is the chunk body. Omit to keep the default snippet view.
limitNoMax results to return (default 15)
queryYesNatural language search query
typesNoFilter by memory type (matches frontmatter `type`).
whereNoFrontmatter filters as key=value (e.g. status=open); all must match.
resolveNoAttach evidence around each hit: 'linked' follows superseded_by/contradicts/backed_by both ways under fixed budgets; 'full' adds bounded unlinked discovery. Each hit reports coverage and a resolution — a current answer, an unresolved conflict with both sides, or insufficient evidence. Default none.
categoryNoFilter by category (memory directory name): people, projects, decisions, insights, research
thresholdNoVector similarity floor (0.0-1.0); ignored in lexical mode.
date_afterNoFilter results after an ISO date (e.g. 2024-01-01)
since_daysNoOnly return memories created/updated in the last N days. Equivalent to setting `date_after` to now-N days; the API derives one from the other.
date_beforeNoFilter results before an ISO date
min_priorityNoOnly return memories with human-assigned priority at least this value. Missing priority counts as normal (3).
include_dailyNoInclude daily session notes at full rank (default: false, daily/ files are penalized)
include_retiredNoWith resolve: also show retired records (archived, superseded, retracted, expired) in each hit's evidence, labelled. Off by default.
include_telemetryNoInclude machine/monitor telemetry memories.
include_other_projectsNoAlso return memories tagged to other projects, each labelled with its project. Off by default: a project-scoped search leaves them out.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.23.0
    • addedInput schema / properties / where
      Added value: +{
      +  "description": "Frontmatter filters as key=value (e.g. status=open); all must match.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  2. Changed2 schema fields changedv0.22.0
    • addedInput schema / properties / include_other_projects
      Added value: +{
      +  "default": false,
      +  "description": "Also return memories tagged to other projects, each labelled with its project. Off by default: a project-scoped search leaves them out.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / include_retired
      Added value: +{
      +  "default": false,
      +  "description": "With resolve: also show retired records (archived, superseded, retracted, expired) in each hit's evidence, labelled. Off by default.",
      +  "type": "boolean"
      +}
  3. Changed1 schema field changedv0.21.0
    • changedInput schema / properties / threshold / description
      Previous value: -"Override similarity threshold (0.0-1.0); higher is stricter."New value: +"Vector similarity floor (0.0-1.0); ignored in lexical mode."
  4. Changed1 schema field changedv0.20.1
    • addedInput schema / properties / resolve
      Added value: +{
      +  "description": "Attach evidence around each hit: 'linked' follows superseded_by/contradicts/backed_by both ways under fixed budgets; 'full' adds bounded unlinked discovery. Each hit reports coverage and a resolution — a current answer, an unresolved conflict with both sides, or insufficient evidence. Default none.",
      +  "enum": [
      +    "none",
      +    "linked",
      +    "full"
      +  ],
      +  "type": "string"
      +}
  5. Changed1 schema field changedv0.16.0
    • addedInput schema / properties / tier
      Added value: +{
      +  "description": "How much of each hit to return. 'abstract' caps every hit at ~300 chars (summary first) for cheap relevance checks; 'overview' returns frontmatter plus the head of the body; 'full' is the chunk body. Omit to keep the default snippet view.",
      +  "enum": [
      +    "abstract",
      +    "overview",
      +    "full"
      +  ],
      +  "type": "string"
      +}
  6. Changed3 schema fields changedv0.13.0
    • changedInput schema / properties / limit / default
      Previous value: -10New value: +15
    • changedInput schema / properties / limit / description
      Previous value: -"Max results to return (default 10)"New value: +"Max results to return (default 15)"
    • addedInput schema / properties / limit / maximum
      Added value: +50
  7. First observedv0.9.5

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds real value by disclosing that ranking mode is server-configured (hybrid or lexical) and that results come back as excerpts, but says nothing about result volume, default filtering behavior, or the coverage/resolution labels that hits report.

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 tight sentences, front-loaded with the verb and resource, followed by the return characteristic. No filler, no restatement of the name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 17-parameter tool with no output schema, the description is thin: it sketches the return shape but does not explain default scoping behavior (retired/telemetry/other-project memories excluded), how tier/full interact, or what the resolve evidence structure yields. The exhaustive schema compensates substantially, but the description leaves a reader without a mental model of default behavior.

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% and all 17 parameters carry substantive inline documentation (tier, resolve, since_days, min_priority, include_retired, etc.). The description adds essentially nothing parameter-level, so the baseline 3 is appropriate — the schema does the heavy lifting.

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?

States a specific verb and resource ('Search Palinode memory') plus the topical scope (people, projects, decisions, insights, research) and the return shape (excerpts ranked by hybrid or lexical retrieval). It does not distinguish itself from close siblings such as palinode_list, palinode_resolve, or palinode_topic_coverage, which is the remaining gap.

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?

Usage is only implied — an agent can infer 'use this to recall context' from the topic list, but there is no explicit when-to-use, when-not, or alternative routing. Notably, a sibling named palinode_resolve exists and this tool also has a `resolve` parameter, yet the description never explains the relationship or when to prefer one over the other.

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