Createorpatchentity
createOrPatchEntityMerge a partial YAML descriptor (tag at info.x-cortex-tag) into an existing entity. Keys you leave out are kept. If no entity has that tag, it is created, unless failIfEntityDoesNotExist=true, which returns 404 instead. Arrays are replaced by default; pass appendArrays=true to add to them. To remove a key, set its value to the string given in deleteMarkerValue (e.g. __delete__). Pass dryRun=true to only validate. Use createOrUpdateEntity to replace the whole descriptor.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Raw text of the YAML See examples of cortex.yaml files for each entity type [here](https://docs.cortex.io/docs/reference/basics/entities#example-cortexyaml-for-service-entity) | |
| dryRun | No | When true, this endpoint only validates the descriptor contents and returns any errors or warnings. | |
| context | Yes | Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information. | |
| session_id | Yes | Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value. | |
| appendArrays | No | Default merge behavior is to replace arrays, set this to true to append arrays instead. For simple types, duplicate values will be removed from the merged array. | |
| deleteMarkerValue | No | Delete keys with this value from the merged yaml, e.g. `__delete__`, if any values match this, they will not be included in merged YAML. For example `my_value: __delete__` will remove `my_value` from the merged YAML. | |
| asyncUpdateWaitTimeMs | No | Maximum time (milliseconds) to wait for asynchronous property updates. Default is zero. | |
| failIfEntityDoesNotExist | No | Default behavior is to upsert the entity, set `failIfEntityDoesNotExist=true` to fail (404) if the entity specified in `x-cortex-tag` does not exist. |