Skip to content

query_entity_graph

Traverse the memory graph from a seed entity (BFS, depth-limited, type/direction filtered). Retired entities are excluded from the seed and the result set unless include_retired is set — traversal still walks THROUGH a retired node to reach its neighbors, only the returned/visible set is filtered. An entity whose own note is not readable under the caller’s folder read ACL (readPaths) is NOT retired-like: it is never returned and never walked through, so nothing reachable only via it appears, and an unreadable seed reads as ‘seed entity not found’. Each returned node’s observations are filtered by as_of (default now — see get_entity’s own description for the exact rule), so a graph walk answers ‘what did we believe as_of D’ the same way a direct get_entity does. response_format=concise drops each node’s hop-by-hop path (distance stays), shapes observations as get_entity does, and omits as_of and total_returned. Domain: knowledge.

Domain knowledge
Scopes read:memory
Access read
Tags read-only, domain:knowledge
Profile core, full
Annotation Value
Read-only yes
Destructive no
Idempotent no
Accepts an idempotency key no

Idempotent is the advisory MCP idempotentHint. Destructive is also yes for a tool that asks for confirmation only on some calls.

No human confirmation is required to call this tool.

Parameter Type Required Default Description
vault string — Vault id. May be omitted when only one vault is available. length 1–64; pattern ^[a-z0-9_-]+$
seed_entity_id string yes — length ≥ 1
depth integer — range 1–5
relation_types string[] — —
entity_types string[] — —
direction enum "both" One of: "out", "in", "both"
include_retired boolean false —
as_of integer — range ≥ 0
response_format enum — concise returns only the high-signal fields; detailed (the shipped default) returns the full payload. Errors and safety warnings are never trimmed. When omitted, the server’s tools.defaults.responseFormat applies. One of: "concise", "detailed"
verbosity enum — Legacy alias for response_format: terse = concise, full = detailed. One of: "full", "terse"
limit integer — range 1–1000
cursor string — —
Field Type Always present Description
vault string yes —
as_of number —
seed_entity_id string yes —
items object[] yes —
items[].entity_id string yes —
items[].type string yes —
items[].name string yes —
items[].status enum yes One of: "active", "retired"
items[].distance number yes —
items[].path object[] —
items[].observations object[] yes —
next_cursor string | null yes —
total_returned number —

Other tools in the knowledge domain: add_observation, audit_provenance, close_goal, commit_capture, commit_wiki_page, create_entity, delete_entity, diagnose_retrieval, draft_wiki_page, end_session, enqueue_capture, episode_stats, explain_answer, find_existing_page, gap_report, get_entity, get_session_traces, knowledge_challenge, link_entities, lint_wiki, list_capture_queue, list_contradictions, list_goals, note_quality_report, plur_get, plur_recall, plur_recall_hybrid, plur_similarity_search, record_retrieval_feedback, reflect, rename_entity, session_bootstrap, set_goal, start_session, unlink_entities, update_observation, vault_context, vault_graph_search, work_episode_chain, work_episodes, work_forget, work_result, work_search.

Back to the tool catalog.