Skip to main content
Glama

search_nodes

Read-only

Search nodes of any kind by matching a partial query against all attributes, returning labeled results with display labels or human-readable identifiers.

Instructions

Find nodes of a specific kind by partial substring — use when you only know part of a value.

Matches the query as a substring against all attributes of the kind via Infrahub's any__value filter with partial_match=True. Works uniformly on concrete kinds (e.g. LocationSite) and abstract/generic kinds (e.g. CoreNode) — agents can ping any kind without first checking whether it has a name attribute.

For a filter on one specific attribute (or combining multiple filters), use get_nodes with an explicit filters dict instead.

Each result is labelled with the node's display_label when present, falling back to its HFID (kind-prefixed) and finally its UUID — so generic-kind results that lack a display_label still return a human-readable identifier rather than a bare UUID.

To discover available kinds, read the infrahub://schema resource. If your client does not support MCP resources, call the get_schema tool instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesPartial substring matched across all attributes of the kind via Infrahub's ``any__value`` filter with ``partial_match=True``. Works for both concrete kinds (e.g. ``LocationSite``) and abstract/generic kinds (e.g. ``CoreNode``).
kindYesKind to search within. Check infrahub://schema for valid kinds.
branchNoBranch to query. Defaults to the default branch.
limitNoMaximum number of results to return.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

Annotations already indicate readOnlyHint=true. Description adds that it uses Infrahub's any__value filter with partial_match=True, and explains result labeling fallback (display_label, HFID, UUID). No contradictions.

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?

Description is organized into clear paragraphs, each sentence serving a purpose. Could be slightly more concise, but front-loads the core purpose and efficiently covers usage, behavior, and alternatives.

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?

Given output schema exists, description covers all necessary context: purpose, usage guidance, behavior, parameter semantics, and alternatives. Falls back labeling explanation is helpful. No gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds meaning: explains query is partial substring, kind can be concrete or abstract, branch defaults to default branch, and limit has min/max constraints. These add value beyond the schema.

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?

Description clearly states it finds nodes of a specific kind by partial substring, distinguishing it from get_nodes which filters on specific attributes. It specifies the verb 'Find' and resource 'nodes', making the purpose explicit.

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 guides when to use (when only part of a value is known) and when to use get_nodes instead (for specific attribute filters). Also mentions how to discover kinds via schema resource or get_schema tool.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/opsmill/infrahub-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server