Skip to main content
Glama
M-T-D-N

agentmemory-codex-windows

memory_graph_query

Read stored entity and concept graph nodes and edges for one project or across projects, with depth-bounded traversal, query and type filters, and paginated edge inventory.

Instructions

Read stored entity/concept graph nodes and edges in an explicit project, or '*' for deliberate cross-project reads; no automatic extraction is required. startNodeId selects bounded traversal, while query and nodeType filter nodes. Returns nodes, page-local edges, depth, totals and pagination/truncation metadata. edgeLimit/edgeOffset opt into an independent exact edge inventory page. Inspect warnings and totalsExact before treating totals as complete. Use memory_relations for memory-to-memory links.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax nodes to return (default 500, max 5000)
queryNoSearch nodes by name
offsetNoNode offset for pagination
projectYesExact registered project identifier, or '*' for a deliberate cross-project read
maxDepthNoMax BFS depth (default 3, max 5)
nodeTypeNoFilter by node type
edgeLimitNoOpt in to an independent exact edge inventory page (default 500, max 1000); existing edges remains viewer page-local
edgeOffsetNoExact edge inventory offset for pagination
startNodeIdNoStarting node ID for traversal

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0-preview.14-glama.1

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that no automatic extraction is required, that edges returned are page-local versus the separate exact edge inventory, and that callers must inspect warnings and totalsExact before trusting totals. What is missing is the permission/auth profile for cross-project '*' reads and what happens if the project identifier is unregistered.

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?

Front-loads the core purpose, then dispatches parameters and caveats in tight sentences. Dense jargon ('totalsExact', 'page-local') without a wasted sentence, though the run of clauses makes it slightly harder to skim than an ideal definition.

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 9-parameter, no-output-schema read tool with many graph siblings, the description covers return shape, pagination, truncation caveats, and sibling routing. It stops short of documenting the cross-project auth/ownership model that a '*' read implies, which is the main remaining gap.

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%, so the baseline is 3, but the description adds genuine meaning beyond the schema: it explains the interaction between startNodeId-driven traversal and maxDepth, and clarifies the semantic distinction between page-local edges and the edgeLimit/edgeOffset inventory page.

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 (read) and resource (stored entity/concept graph nodes and edges), and explicitly carves out territory from the sibling memory_relations for memory-to-memory links. An agent can distinguish it from the other graph tools (upsert, purge, provenance_reconcile) without opening a schema.

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?

Gives explicit when-to-use routing: '*' is only for deliberate cross-project reads, startNodeId for bounded traversal, query/nodeType for filtering, and edgeLimit/edgeOffset to opt into an independent edge inventory page. It also names the alternative tool (memory_relations) and when to prefer it.

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