{"command":{"effect":"read","timeoutSeconds":30,"inputSchema":{"type":"object","description":"Expands the single-level relationship neighborhood of one or more seed nodes (event, indicator, or tag) from R2 Data Catalog. Seeds use compact id format (type:uuid), e.g. \"event:550e8400-...\". Multi-seed requests merge and deduplicate results server-side. Hydrates neighbor entities with summary data from Durable Objects. Supports filtering by relationship type and dataset scope.","properties":{"path":{"type":"object","properties":{"account_id":{"description":"Account ID.","type":"string"}},"required":["account_id"],"additionalProperties":false},"query":{"type":"object","properties":{"seeds":{"description":"Comma-separated compact seed ids (type:uuid). Example: seeds=event:550e8400-...,indicator:661fa920-... Provide 1–50 entries; omitting seeds returns 400.","type":"array","items":{"type":"string"}},"direction":{"description":"Edge direction relative to each seed: out (seed→neighbors), in (neighbors→seed), both (default).","type":"string"},"hydration":{"description":"Hydration strategy for neighbor nodes when expand=nodes is set. r2_join (default): use R2 JOIN query + DO fallback. do_only: use plain R2 query + hydrate all neighbors via Durable Objects.","type":"string"},"limit":{"description":"Max neighbors per seed (default: 100, max: 1000). Values above 1000 return 400.","type":"number"},"max_nodes":{"description":"Total accumulated node cap across all seeds (default: 500, max: 1000). Values above 1000 return 400.","type":"number"},"relationshipTypes":{"description":"Comma-separated relationship types to filter by. Allowed: tagged_with, appears_in, related_to, caused_by, attributed_to.","type":"array","items":{"type":"string"}},"datasetIds":{"description":"Comma-separated dataset UUIDs to restrict neighbor scope, or one standalone scope value: 'operational' for readable intelligence datasets (isAnalytics=false), 'analytics' for readable analytics datasets (isAnalytics=true), or 'all'/'*' for every readable dataset including analytics datasets (the graph reads analytics relationships from R2). Intersected with access grants.","type":"array","items":{"type":"string"}},"cursor":{"description":"Opaque pagination token. Only valid when seeds has exactly 1 entry; 400 otherwise.","type":"string"},"expand":{"description":"Comma-separated list of response sections to expand (hydrate). Allowed: `nodes`. Omitting `expand` returns identifier-only nodes.","type":"array","items":{"type":"string"}}},"required":[],"additionalProperties":false}},"required":["path"],"additionalProperties":false},"name":"Query graph neighborhood from R2 Data Catalog","id":"cloudflare.get_eventgraph","example":{"path":{"account_id":"example"}},"maxRequests":1,"summary":false}}