Skip to main content
Glama

Search by Frontmatter

search_by_frontmatter
Read-onlyIdempotent

Filter Obsidian notes by YAML frontmatter property and value to locate metadata matches like status, type, or tags. Returns matching note paths with full frontmatter for review.

Instructions

Find notes whose YAML frontmatter contains a given property/value pair. Property names and values are matched case-insensitively; for array-valued properties, a match is declared if any element matches. Returns matching note paths with their full frontmatter. Use to filter notes by metadata like status, type, or tags stored in frontmatter.

Input Schema

NameRequiredDescriptionDefault
valueYesValue to match against the property (case-insensitive; matches any array element)
folderNoRestrict search to this folder relative to the vault root (omit to search entire vault)
propertyYesFrontmatter key to look up, case-insensitively (e.g., 'status', 'type', 'author')
maxResultsNoMaximum number of matching notes to return (1-500, default: 50)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv4.1.1
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedInput schema / properties / property / description
      Previous value: -"Frontmatter key to look up (e.g., 'status', 'type', 'author')"New value: +"Frontmatter key to look up, case-insensitively (e.g., 'status', 'type', 'author')"
  2. Addedv2.0.0
  3. Removedv1.9.0
  4. Addedv0.1.6
  5. Removedv0.1.4
  6. Changed3 schema fields changedv0.1.2
    • changedInput schema / properties / folder / description
      Previous value: -"Limit search to a specific folder"New value: +"Restrict search to this folder relative to the vault root (omit to search entire vault)"
    • changedInput schema / properties / property / description
      Previous value: -"Frontmatter property key to search for"New value: +"Frontmatter key to look up (e.g., 'status', 'type', 'author')"
    • changedInput schema / properties / value / description
      Previous value: -"Value to match against the property"New value: +"Value to match against the property (case-insensitive; matches any array element)"
  7. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and closed-world behavior. The description adds useful matching semantics beyond annotations: case-insensitive matching, array-element matching, and that results include note paths with full frontmatter.

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?

The description is three efficient sentences and front-loads the core matching behavior. Every sentence contributes useful information without repetition.

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?

For a simple read-only search tool with full schema coverage and annotations covering safety, the description is complete enough. It explains matching rules and return content, which is especially important because there is no output schema.

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 every parameter is already documented in the schema. The description reinforces property/value matching semantics but adds no details for folder or maxResults beyond what the schema provides.

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 notes by YAML frontmatter property/value pair. It is clear what the tool does, but it does not explicitly distinguish itself from the sibling search_by_tag, especially since it mentions tags stored in frontmatter.

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

Usage Guidelines4/5

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

It gives clear usage context: filter notes by metadata like status, type, or tags. However, it does not explicitly say when to prefer search_by_tag or search_notes, nor does it state exclusions.

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