Search, retrieve, create, and update visual knowledge maps in a user's KnowMapped account.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Transactionally confirm a preflighted creation by draft ID. Success definitively returns map_id and revision. A failed transaction preserves the draft for retry, and retrying a committed success returns the same result without charging again. Use get_knowmapped_map_creation_result after a timeout or malformed response.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Transactionally confirm a preflighted creation by draft ID. Success definitively returns map_id and revision. A failed transaction preserves the draft for retry, and retrying a committed success returns the same result without charging again. Use get_knowmapped_map_creation_result after a timeout or malformed response.
| Argument | Type | Description |
|---|---|---|
| draft_id* | string | |
| confirm_credit_use | boolean |
{
"type": "object",
"title": "confirm_knowmapped_map_creationArguments",
"required": [
"draft_id"
],
"properties": {
"draft_id": {
"type": "string",
"title": "Draft Id"
},
"confirm_credit_use": {
"type": "boolean",
"title": "Confirm Credit Use",
"default": false
}
}
}Validate or create a KnowMapped graph. Specify requested layout only as top-level graph.layout_intent. When omitted, requested_layout and resolved_strategy are smart, but [0,0] placeholders are retained for the map client to lay out on first draw; layout_application is client-first-draw. Complete explicit coordinates are preserved instead. Set validate_only=true to check the exact final graph schema, layout, capacity, links, and credits without creating a map, charging credits, or reserving the idempotency key. For credit-bearing creation, show the quoted charge, then confirm the retained draft only after explicit approval.
| Argument | Type | Description |
|---|---|---|
| graph* | object | |
| validate_only | boolean | |
| idempotency_key* | string | |
| confirm_credit_use | boolean |
{
"type": "object",
"title": "create_knowmapped_mapArguments",
"required": [
"graph",
"idempotency_key"
],
"properties": {
"graph": {
"type": "object",
"examples": [
{
"edges": [
{
"id": "source-review",
"label": "informs",
"source": "source",
"target": "review"
}
],
"nodes": [
{
"id": "source",
"label": "Source"
},
{
"id": "review",
"label": "Review"
}
],
"title": "Research flow",
"layout_intent": "left-to-right"
}
],
"required": [
"nodes",
"edges"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"edges": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"source",
"target"
],
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"style": {
"type": "object"
},
"source": {
"type": "string"
},
"target": {
"type": "string"
},
"routing": {
"type": "string"
},
"strength": {
"type": "string"
},
"semantic_data": {
"type": "object"
}
},
"additionalProperties": false
}
},
"nodes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"label"
],
"properties": {
"id": {
"type": "string"
},
"icon": {
"type": "string"
},
"label": {
"type": "string"
},
"is_core": {
"type": "boolean"
},
"position": {
"type": "object"
},
"resources": {
"type": "array"
},
"importance": {
"type": "string"
},
"description": {
"type": "string"
},
"semantic_data": {
"type": "object"
}
},
"additionalProperties": false
}
},
"title": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string"
},
"presentation": {
"type": "object",
"description": "Non-layout visual settings. Layout belongs in top-level layout_intent.",
"additionalProperties": true
},
"layout_intent": {
"enum": [
"smart",
"left-to-right",
"top-to-bottom",
"radial",
"clustered",
"grid",
"hierarchical",
"declutter",
"manual"
],
"type": "string",
"default": "smart",
"description": "Requested semantic layout. Use this exact top-level field. If omitted, KnowMapped automatically applies Smart layout unless every node supplies explicit x/y coordinates; complete explicit coordinates are preserved as manual positioning."
}
},
"additionalProperties": false
},
"validate_only": {
"type": "boolean",
"title": "Validate Only",
"default": false
},
"idempotency_key": {
"type": "string",
"title": "Idempotency Key"
},
"confirm_credit_use": {
"type": "boolean",
"title": "Confirm Credit Use",
"default": false
}
}
}Return layout bounds and graph statistics without returning graph content.
| Argument | Type | Description |
|---|---|---|
| map_id* | string |
{
"type": "object",
"title": "get_knowmapped_layout_summaryArguments",
"required": [
"map_id"
],
"properties": {
"map_id": {
"type": "string",
"title": "Map Id"
}
}
}Retrieve an authorized map with independent node_offset, edge_offset, and page_size parameters. Canonical IDs are always retained in projected nodes and edges even when include_nodes or include_edges omits id. Use summary for statistics without graph content or compact for token-efficient fields. Search results return copy-safe map references so UUIDs should not be typed manually.
| Argument | Type | Description |
|---|---|---|
| map_id* | string | |
| include | string | |
| page_size | integer | Maximum nodes and maximum edges returned in this page (1-200). |
| edge_offset | integer | Zero-based offset for the independently paginated edge collection. |
| node_offset | integer | Zero-based offset for the independently paginated node collection. |
| include_edges | string | |
| include_nodes | string |
{
"type": "object",
"title": "get_knowmapped_mapArguments",
"required": [
"map_id"
],
"properties": {
"map_id": {
"type": "string",
"title": "Map Id"
},
"include": {
"enum": [
"full",
"compact",
"summary"
],
"type": "string",
"title": "Include",
"default": "full"
},
"page_size": {
"type": "integer",
"title": "Page Size",
"default": 100,
"maximum": 200,
"minimum": 1,
"examples": [
100
],
"description": "Maximum nodes and maximum edges returned in this page (1-200)."
},
"edge_offset": {
"type": "integer",
"title": "Edge Offset",
"default": 0,
"minimum": 0,
"examples": [
0,
100
],
"description": "Zero-based offset for the independently paginated edge collection."
},
"node_offset": {
"type": "integer",
"title": "Node Offset",
"default": 0,
"minimum": 0,
"examples": [
0,
100
],
"description": "Zero-based offset for the independently paginated node collection."
},
"include_edges": {
"type": "string",
"title": "Include Edges",
"default": ""
},
"include_nodes": {
"type": "string",
"title": "Include Nodes",
"default": ""
}
}
}Return one concept and its directly connected concepts and relationships without retrieving the full graph. Provide node_id or an exact unique label.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| map_id* | string | |
| offset | integer | |
| node_id | any | |
| exact_label | any |
{
"type": "object",
"title": "get_knowmapped_map_adjacencyArguments",
"required": [
"map_id"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 100
},
"map_id": {
"type": "string",
"title": "Map Id"
},
"offset": {
"type": "integer",
"title": "Offset",
"default": 0
},
"node_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Node Id",
"default": null
},
"exact_label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Exact Label",
"default": null
}
}
}Recover the definitive state of a map creation without creating a map or charging credits. Provide exactly one draft_id or the original idempotency_key. A succeeded result includes the canonical map ID and revision.
| Argument | Type | Description |
|---|---|---|
| draft_id | any | |
| idempotency_key | any |
{
"type": "object",
"title": "get_knowmapped_map_creation_resultArguments",
"properties": {
"draft_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Draft Id",
"default": null
},
"idempotency_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Idempotency Key",
"default": null
}
}
}Check public snapshot revision, moderation and delivery without loading graph content. Requires maps:publish and editable-map access. Revision differences mean content may have changed, since operational changes also advance revisions. After a timeout retry the original publication with the same idempotency_key; use this tool to check current delivery separately.
| Argument | Type | Description |
|---|---|---|
| map_id* | string |
{
"type": "object",
"title": "get_knowmapped_publication_statusArguments",
"required": [
"map_id"
],
"properties": {
"map_id": {
"type": "string",
"title": "Map Id"
}
}
}Return the authoritative, versioned schema and examples for atomic KnowMapped map patches. Call this before constructing an update instead of guessing operation or field names.
No arguments.
{
"type": "object",
"title": "get_knowmapped_update_schemaArguments",
"properties": {}
}Check eligibility and credits, or retain a fully validated graph as a short-lived draft. The exact creation layout field is top-level graph.layout_intent, for example left-to-right. If omitted, Smart is the intent but [0,0] placeholders remain until the map client detects them and applies Smart on first draw; the response reports layout_application=client-first-draw. Complete explicit coordinates are preserved. Fields named layout, layout_type, or strategy are rejected. Drafts do not reserve credits and can be confirmed by draft ID without resending the graph.
| Argument | Type | Description |
|---|---|---|
| graph | any | |
| idempotency_key | any |
{
"type": "object",
"title": "preflight_knowmapped_map_creationArguments",
"properties": {
"graph": {
"anyOf": [
{
"type": "object",
"examples": [
{
"edges": [
{
"id": "source-review",
"label": "informs",
"source": "source",
"target": "review"
}
],
"nodes": [
{
"id": "source",
"label": "Source"
},
{
"id": "review",
"label": "Review"
}
],
"title": "Research flow",
"layout_intent": "left-to-right"
}
],
"required": [
"nodes",
"edges"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"edges": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"source",
"target"
],
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"style": {
"type": "object"
},
"source": {
"type": "string"
},
"target": {
"type": "string"
},
"routing": {
"type": "string"
},
"strength": {
"type": "string"
},
"semantic_data": {
"type": "object"
}
},
"additionalProperties": false
}
},
"nodes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"label"
],
"properties": {
"id": {
"type": "string"
},
"icon": {
"type": "string"
},
"label": {
"type": "string"
},
"is_core": {
"type": "boolean"
},
"position": {
"type": "object"
},
"resources": {
"type": "array"
},
"importance": {
"type": "string"
},
"description": {
"type": "string"
},
"semantic_data": {
"type": "object"
}
},
"additionalProperties": false
}
},
"title": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string"
},
"presentation": {
"type": "object",
"description": "Non-layout visual settings. Layout belongs in top-level layout_intent.",
"additionalProperties": true
},
"layout_intent": {
"enum": [
"smart",
"left-to-right",
"top-to-bottom",
"radial",
"clustered",
"grid",
"hierarchical",
"declutter",
"manual"
],
"type": "string",
"default": "smart",
"description": "Requested semantic layout. Use this exact top-level field. If omitted, KnowMapped automatically applies Smart layout unless every node supplies explicit x/y coordinates; complete explicit coordinates are preserved as manual positioning."
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"title": "Graph",
"default": null
},
"idempotency_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Idempotency Key",
"default": null
}
}
}Publish or republish completed edits to an already-public map when the user requests it. Use the revision returned by the final edit or a fresh retrieval. Applies the same permissions, locks, moderation, and restrictions as browser publishing and generates the public preview. Reuse the same idempotency_key and identical arguments after a dropped response. Returns published revision and sync state; pending review or sync must not be reported as a fully delivered publication. On a revision conflict, retrieve the map and reconsider before retrying. To publish a private map first use set_knowmapped_map_visibility with explicit copyright acknowledgement.
| Argument | Type | Description |
|---|---|---|
| map_id* | string | |
| idempotency_key* | string | |
| expected_revision* | integer |
{
"type": "object",
"title": "publish_knowmapped_mapArguments",
"required": [
"map_id",
"expected_revision",
"idempotency_key"
],
"properties": {
"map_id": {
"type": "string",
"title": "Map Id"
},
"idempotency_key": {
"type": "string",
"title": "Idempotency Key",
"maxLength": 200,
"minLength": 1
},
"expected_revision": {
"type": "integer",
"title": "Expected Revision",
"minimum": 1
}
}
}Search maps available to the connected KnowMapped account. Use this when a user refers to a saved map or wants to find prior concepts; existing ownership and sharing permissions are enforced server-side.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query | string |
{
"type": "object",
"title": "search_knowmapped_mapsArguments",
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 20
},
"query": {
"type": "string",
"title": "Query",
"default": ""
}
}
}Make a map public or private at its current revision. Obtain the user's explicit permission to publish and confirmation that they have the right to publish before setting copyright_acknowledged=true; never infer it from map content. Initial publication creates a moderated public snapshot and generated preview. Making private removes the snapshot and disables live viewing. Setting an already-public map public does not publish edits: use publish_knowmapped_map. Reuse the same idempotency_key and identical arguments after a dropped response; a different request needs a new key. A pending_review result means publication has not succeeded. On a revision conflict, retrieve the map and reconsider before retrying.
| Argument | Type | Description |
|---|---|---|
| map_id* | string | |
| is_public* | boolean | |
| idempotency_key* | string | |
| expected_revision* | integer | |
| copyright_acknowledged | boolean |
{
"type": "object",
"title": "set_knowmapped_map_visibilityArguments",
"required": [
"map_id",
"expected_revision",
"is_public",
"idempotency_key"
],
"properties": {
"map_id": {
"type": "string",
"title": "Map Id"
},
"is_public": {
"type": "boolean",
"title": "Is Public"
},
"idempotency_key": {
"type": "string",
"title": "Idempotency Key",
"maxLength": 200,
"minLength": 1
},
"expected_revision": {
"type": "integer",
"title": "Expected Revision",
"minimum": 1
},
"copyright_acknowledged": {
"type": "boolean",
"title": "Copyright Acknowledged",
"default": false
}
}
}Validate or atomically update an editable map with one mixed patch. Accepted operations are update_map, add_node, update_node, remove_node, add_edge, update_edge, remove_edge, replace_edges, and layout_nodes; get_knowmapped_update_schema is the authoritative versioned contract. Use id for identifiers, title for the map title, and layout_nodes with strategy, spacing, groups, and optional flow. Node references accept IDs, earlier temp_id values, or exact unique labels. Edge references accept IDs or semantic source/target/current-relationship matches. validate_only returns a corrected executable normalized_patch, all detectable errors and warnings, layout positions and bounds, a patch summary, publication state, and current revision without changing data. On a stale write, revalidate the same patch at current_revision, then submit the returned normalized_patch.
| Argument | Type | Description |
|---|---|---|
| map_id* | string | |
| operations* | array | One atomic patch. Node references accept IDs, declared temp IDs, or {"label":"Exact unique label"}. |
| validate_only | boolean | |
| idempotency_key* | string | |
| expected_revision* | integer |
{
"type": "object",
"title": "update_knowmapped_mapArguments",
"required": [
"map_id",
"expected_revision",
"operations",
"idempotency_key"
],
"properties": {
"map_id": {
"type": "string",
"title": "Map Id"
},
"operations": {
"type": "array",
"items": {
"$id": "https://knowmapped.com/schemas/mcp/map-patch/2026-08-22.3",
"oneOf": [
{
"type": "object",
"examples": [
{
"op": "add_edge",
"label": "supports",
"source": {
"label": "Source material"
},
"target": "new-concept"
}
],
"required": [
"op",
"source",
"target"
],
"properties": {
"op": {
"const": "add_edge"
},
"label": {
"type": "string"
},
"style": {
"type": "object"
},
"source": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Canonical node ID or a temp_id declared by add_node."
},
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"target": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Canonical node ID or a temp_id declared by add_node."
},
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"routing": {
"type": "string"
},
"strength": {
"type": "string"
},
"semantic_data": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"examples": [
{
"op": "add_node",
"label": "New concept",
"temp_id": "new-concept"
}
],
"required": [
"op",
"label",
"temp_id"
],
"properties": {
"op": {
"const": "add_node"
},
"icon": {
"type": "string"
},
"label": {
"type": "string"
},
"is_core": {
"type": "boolean"
},
"temp_id": {
"type": "string"
},
"position": {
"type": "object",
"required": [
"x",
"y"
],
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
}
},
"additionalProperties": false
},
"resources": {
"type": "array"
},
"importance": {
"type": "string"
},
"description": {
"type": "string"
},
"semantic_data": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"examples": [
{
"op": "layout_nodes",
"flow": "Source → Draft → Concepts → Review",
"groups": {
"Evidence": [
{
"label": "Source material"
}
]
},
"spacing": 220,
"strategy": "hierarchical"
}
],
"required": [
"op",
"strategy"
],
"properties": {
"op": {
"const": "layout_nodes"
},
"flow": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Canonical node ID or a temp_id declared by add_node."
},
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
]
}
}
],
"description": "Optional reading order, either concept references or labels separated by → or ->."
},
"groups": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Canonical node ID or a temp_id declared by add_node."
},
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
]
}
}
},
"spacing": {
"type": "number",
"maximum": 800,
"minimum": 80
},
"strategy": {
"enum": [
"smart",
"left-to-right",
"top-to-bottom",
"manual",
"grid",
"radial",
"hierarchical",
"clustered",
"declutter"
],
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "object",
"examples": [
{
"id": "relationship-id",
"op": "remove_edge",
"confirm": true
}
],
"required": [
"op",
"confirm",
"id"
],
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "object",
"required": [
"source",
"target"
],
"properties": {
"source": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Canonical node ID or a temp_id declared by add_node."
},
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"target": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Canonical node ID or a temp_id declared by add_node."
},
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"relationship": {
"type": "string"
}
},
"description": "Semantic relationship match. relationship matches the current edge label when supplied.",
"additionalProperties": false
}
]
},
"op": {
"const": "remove_edge"
},
"confirm": {
"const": true
}
},
"additionalProperties": false
},
{
"type": "object",
"examples": [
{
"id": {
"label": "Obsolete concept"
},
"op": "remove_node",
"confirm": true
}
],
"required": [
"op",
"confirm",
"id"
],
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Canonical node ID or a temp_id declared by add_node."
},
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"op": {
"const": "remove_node"
},
"confirm": {
"const": true
}
},
"additionalProperties": false
},
{
"type": "object",
"examples": [
{
"op": "replace_edges",
"add": [
{
"label": "produces",
"source": {
"label": "Draft"
},
"target": {
"label": "Concepts"
}
}
],
"remove": [
{
"source": {
"label": "Draft"
},
"target": {
"label": "Review"
},
"relationship": "precedes"
}
],
"confirm": true
}
],
"required": [
"op",
"add",
"confirm",
"remove"
],
"properties": {
"op": {
"const": "replace_edges"
},
"add": {
"type": "array",
"items": {
"type": "object",
"required": [
"source",
"target"
],
"properties": {
"label": {
"type": "string"
},
"style": {
"type": "object"
},
"source": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Canonical node ID or a temp_id declared by add_node."
},
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"target": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Canonical node ID or a temp_id declared by add_node."
},
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"routing": {
"type": "string"
},
"strength": {
"type": "string"
},
"semantic_data": {
"type": "object"
}
},
"additionalProperties": false
}
},
"remove": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "object",
"required": [
"source",
"target"
],
"properties": {
"source": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Canonical node ID or a temp_id declared by add_node."
},
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"target": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Canonical node ID or a temp_id declared by add_node."
},
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"relationship": {
"type": "string"
}
},
"description": "Semantic relationship match. relationship matches the current edge label when supplied.",
"additionalProperties": false
}
]
}
},
"confirm": {
"const": true
}
},
"additionalProperties": false
},
{
"type": "object",
"examples": [
{
"id": "relationship-id",
"op": "update_edge",
"label": "strengthens"
}
],
"required": [
"op",
"id"
],
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "object",
"required": [
"source",
"target"
],
"properties": {
"source": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Canonical node ID or a temp_id declared by add_node."
},
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"target": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Canonical node ID or a temp_id declared by add_node."
},
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"relationship": {
"type": "string"
}
},
"description": "Semantic relationship match. relationship matches the current edge label when supplied.",
"additionalProperties": false
}
]
},
"op": {
"const": "update_edge"
},
"label": {
"type": "string"
},
"style": {
"type": "object"
},
"source": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Canonical node ID or a temp_id declared by add_node."
},
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"target": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Canonical node ID or a temp_id declared by add_node."
},
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"routing": {
"type": "string"
},
"strength": {
"type": "string"
},
"semantic_data": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"examples": [
{
"op": "update_map",
"title": "Revised map title"
}
],
"required": [
"op"
],
"properties": {
"op": {
"const": "update_map"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"view_settings": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"examples": [
{
"id": {
"label": "Source material"
},
"op": "update_node",
"description": "Revised description"
}
],
"required": [
"op",
"id"
],
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Canonical node ID or a temp_id declared by add_node."
},
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"op": {
"const": "update_node"
},
"icon": {
"type": "string"
},
"label": {
"type": "string"
},
"is_core": {
"type": "boolean"
},
"position": {
"type": "object",
"required": [
"x",
"y"
],
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
}
},
"additionalProperties": false
},
"resources": {
"type": "array"
},
"importance": {
"type": "string"
},
"description": {
"type": "string"
},
"semantic_data": {
"type": "object"
}
},
"additionalProperties": false
}
],
"discriminator": {
"propertyName": "op"
},
"schema_version": "2026-08-22.3"
},
"title": "Operations",
"examples": [
[
{
"op": "add_node",
"label": "New finding",
"temp_id": "finding-1",
"position": {
"x": 100,
"y": 200
}
},
{
"op": "add_edge",
"label": "supports",
"source": {
"label": "Existing concept"
},
"target": "finding-1"
}
],
[
{
"op": "layout_nodes",
"spacing": 220,
"strategy": "hierarchical"
}
],
[
{
"id": {
"label": "Obsolete concept"
},
"op": "remove_node",
"confirm": true
}
]
],
"description": "One atomic patch. Node references accept IDs, declared temp IDs, or {\"label\":\"Exact unique label\"}."
},
"validate_only": {
"type": "boolean",
"title": "Validate Only",
"default": false
},
"idempotency_key": {
"type": "string",
"title": "Idempotency Key"
},
"expected_revision": {
"type": "integer",
"title": "Expected Revision"
}
}
}