Skip to content
Tools/Nodes/list_nodes

list_nodes

List entities with filtering, edge inclusion, count-only mode, and pagination. For graph-wide edge enumeration, prefer `export_edges` (flat) or `query` (traversal). `list_nodes(include_edges:true)` is for entity-scoped reads.

Nodesatomic (read-only)

Arguments

typestringoptional

Filter by entity type

statusstringoptional

Filter by status value

tagsarrayoptional

Filter by tags (matches any)

parent_idstringoptional

Filter to children of this node (connected by outgoing edge from parent)

include_edgesbooleanoptional

Include compact edge data (id, type, source, target) per node

count_onlybooleanoptional

Return only the total count, no node data

offsetnumberoptional

Skip N results (default 0)

limitnumberoptional

Max results (default 50, max 200)

if_changed_sincestringoptional

Hash from a previous response. Returns { changed: false } if graph unchanged.

Returns

Shape
{ nodes, total, offset, limit, _hash }
With count_only: true, returns { total, _hash } only.
May include a degraded block when the response was auto-trimmed to fit.

Examples

Live call against the Notion example graph.

Output

{
  "nodes": [
    {
      "id": "ec3d5479-4947-4bd9-9e77-b5ee01beb851",
      "type": "product",
      "title": "Notion (SATURATED test graph)"
    },
    {
      "id": "1c051617-6cb7-4a59-b0a1-7779f404145b",
      "type": "capability",
      "title": "Real-time multi-cursor collaboration"
    },
    {
      "id": "478852b7-ca46-4bdd-85fa-cd2334b9565d",
      "type": "capability",
      "title": "Block-based composable editing"
    },
    {
      "id": "0904ef52-cc7e-4bcd-9c9d-0072beb28878",
      "type": "capability",
      "title": "Tree-inherited permissions"
    },
    {
      "id": "f8ce72c1-af1a-48ba-945e-72e08c5aeeb5",
      "type": "capability",
      "title": "Permission-aware AI grounding"
    },
    {
      "id": "4dffea49-4122-4599-858c-f3c2f0c3e5c4",
      "type": "value_stream",
      "title": "Personal → Team conversion stream"
    },
    {
      "id": "9d03304e-8beb-4734-845b-1bc3c07ce20c",
      "type": "decision",
      "title": "Build Frankfurt region (not partner)"
    },
    {
      "id": "6ea52729-4462-4fc0-b2a1-0c7e2c0362b2",
      "type": "evidence",
      "title": "Self-hostable waitlist: 1.2k signups, 0% paid intent"
    },
    {
      "id": "3f1c1804-b33b-4b1f-9094-c91cc8957912",
      "type": "assumption",
      "title": "Teams prefer one tool over a stack of four"
    },
    {
      "id": "6719fce7-61e7-44df-b6cf-92f7c7312554",
      "type":
… (truncated)

Warnings

Pre-flight payload guardrail: refuses with a steering error when the estimated response exceeds `UPG_MCP_PAYLOAD_HARD_LIMIT` (default 150 KB), and attaches a `_warning` field above `UPG_MCP_PAYLOAD_SOFT_LIMIT` (default 50 KB). For graph-wide reads, prefer `query` with a tight projection.

Auto-degrade: between the soft and hard limits, the response is automatically truncated. Surfaced as `degraded.applied: ['truncate_at_count_auto']` on the response.

See Also