update_context
Update an existing context item — change its name, content, or move it between collections / projects. If the item has a linked editing canvas open in the Marcora sidebar, its title and content stay in sync automatically. Like `add_context`, you can supply a new body either as inline `content` or as a `content_url` the backend fetches and converts to markdown server-side. Pass at most one — providing both returns a 400. Omit both to leave the body untouched (e.g. when you're only renaming the item or moving it between collections).
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
context_item_id | string (uuid) | Yes | — | The context item to update |
name | string | No | — | If provided, updates the name. Omit to leave unchanged |
content | string | No | — | New markdown body. Omit to leave unchanged. Triggers RAG re-embedding. Mutually exclusive with `content_url` |
content_url | string | No | — | Public URL — backend fetches and converts to clean markdown server-side, then stores it as the new body. Mutually exclusive with `content` |
collection_id | integer | null | Yes | — | Full replace. Pass the current ID to keep the item in its collection, pass a different ID to move it, or pass `null` to remove it from any collection |
project_id | string (uuid) | null | Yes | — | Full replace. Pass the current ID to keep the project association, pass a different ID to move it, or pass `null` to disassociate it |
Input Schema
{
"type": "object",
"required": [
"context_item_id",
"collection_id",
"project_id"
],
"properties": {
"name": {
"type": "string",
"description": "If provided, updates the name. Omit to leave unchanged."
},
"content": {
"type": "string",
"description": "If provided, updates the content. Omit to leave unchanged. Triggers RAG re-embedding."
},
"project_id": {
"type": [
"string",
"null"
],
"format": "uuid",
"description": "Full replace. Pass the current ID to keep the project association, pass a different ID to move it, or pass null to disassociate it."
},
"content_url": {
"type": "string",
"description": "Public URL — backend fetches and converts to clean markdown server-side, then stores it as the new body. Mutually exclusive with content."
},
"collection_id": {
"type": [
"integer",
"null"
],
"description": "Full replace. Pass the current ID to keep the item in its collection, pass a different ID to move it, or pass null to remove it from any collection."
},
"context_item_id": {
"type": "string",
"format": "uuid",
"description": "The context item to update."
}
}
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Context item ID."
},
"name": {
"type": "string",
"description": "Updated context item name."
},
"content": {
"type": "string",
"description": "Updated reference content."
},
"link_url": {
"type": "string",
"description": "Direct URL to view this context item in the Marcora app."
},
"project_id": {
"type": [
"string",
"null"
],
"description": "Project this item is associated with (null if none)."
},
"updated_at": {
"type": "integer",
"description": "Unix timestamp of last update."
},
"word_count": {
"type": "integer",
"description": "Word count of updated content."
},
"collection_id": {
"type": [
"integer",
"null"
],
"description": "Collection this item belongs to (null if none)."
},
"content_intro": {
"type": "string",
"description": "Truncated content intro used in listings."
},
"relevancy_processed_status": {
"type": "string",
"description": "RAG re-processing status (unprocessed, provisional, complete). Flips to unprocessed whenever name or content changes."
}
}
}Instructions
Use this tool to update an existing context item in your reference library.
What you can update:
name: rename the context item (omit to leave unchanged)content: replace the stored reference content (omit to leave unchanged; triggers RAG re-embedding)collection_id: move to a different collection, or passnullto remove from all collectionsproject_id: change the project association, or passnullto disassociate
Important — full-replace semantics for collection_id and project_id:
Unlike name and content, you MUST pass collection_id and project_id on every call. Omitting them is NOT the same as keeping them unchanged — include the current values to preserve them. If you do not know the current values, call get_context_item first or use the web app to check before updating.
Workflow:
- Get the
context_item_id(UUID) — uselist_context_items,list_context_collections,get_project, orget_relevant_contextto find IDs. - Pass
collection_idandproject_id(required, nullable) — include current values to preserve, ornullto clear. - Optionally pass
nameand/orcontentto update those fields.
Errors
400—Provide either content or content_url, not both.(both were supplied)400—Failed to extract markdown from content_url(the URL could not be fetched or parsed)
Example prompts
- "Rename that brand voice context item to 'Brand Voice v2'"
- "Move the competitive analysis out of the 'Archive' collection"
- "Update our pricing context with the new Enterprise tier info"
- "Refresh the Acme pricing context item from https://example.com/competitor-pricing"