Skip to main content
Glama

search

Find graph nodes by case-insensitive substring across files, symbols, tables, APIs, and configs, with optional kind filters and a read-only byte budget.

Instructions

Search graph nodes by case-insensitive substring (kind=file|dir|test|all|module|package|symbol|table|view|api|config|doc|service|container). Read-only.

Input Schema

NameRequiredDescriptionDefault
kindNoResult kind (default file)
queryYesSubstring to search for
max_bytesNoResponse budget in bytes (default 65536, max 1048576)
workspaceNoWorkspace path; omitted = discovery from cwd

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations supplied, the description carries the full burden. It does assert "Read-only", which is meaningful safety context, but it says nothing about where nodes come from (index vs live filesystem scan), whether results are truncated budget-wise, or what a result entry looks like.

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?

One front-loaded sentence with no filler. The long inline enumeration of thirteen kinds largely duplicates the schema enum and is the only wasteful element; the rest is dense and purposeful.

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?

Four parameters, no annotations, and no output schema, yet the description never describes the shape of a result (node kind, path, score, truncation signal). For a search tool whose output format is undeclared anywhere else, that is a real gap, though the core selection information is present.

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 baseline is 3. The description does add matching semantics for `query` (case-insensitive substring) that the schema only calls "Substring to search for", but it re-lists the `kind` enum values verbatim and says nothing about `workspace` or `max_bytes` budget behavior.

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 graph nodes") plus the matching rule ("case-insensitive substring") and enumerates the selectable kinds, so an agent knows exactly what the tool returns. No sibling in the set (arch_status, focus, reaches, impact, etc.) is a substring search, so it is distinguishable, though the description never names a sibling to contrast against.

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

Usage Guidelines2/5

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

There is no guidance on when to choose this over focus, reaches, or impact, nor on when `kind` should be set narrowly versus `all`. A single agent-facing line — e.g. "use for name lookups; use reaches for call-graph traversal" — would be needed for a 4.

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