update_knowledge_entry
Change a Knowledge entry's title, text or audience. Anything omitted keeps its stored value; new words are cut into passages again at once.
Change what the Copilot was taught: the entry's title, its body (the answer, or the document's text) or its audience. Partial by design: only the arguments present change, so a call with audience alone moves the member boundary and nothing else. New words are cut into passages in the same step and the old passages go with them, so the Copilot never reads a mix of old and new; a new audience alone retags the passages without rewriting them.
Emits knowledge.updated with the fields that moved and whether the text did, and only when something did. Idempotent: sending the stored values again writes nothing and emits nothing.
kind cannot change. A question that should be a document, or the other way round, is a new
entry with create_knowledge_entry and a
delete_knowledge_entry of the old one.
Requires ability
The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.
Runs the same action as
The REST endpoint and this tool share one action, so validation, permissions and events are identical.
Fires one event
Delivered to every endpoint subscribed to it once the change is made.
Annotations
A client that honours annotations asks a person before running it. Sending the same arguments twice changes nothing the second time.
Arguments
project_id*stringUUID of the project the entry belongs to.
knowledge_entry_id*stringUUID of the entry to change, from `list_knowledge_entries`.
titlestringoptionalThe question, or the document's name; 2 to 160 characters.
bodystringoptionalThe answer, or the document's text; 2 to 50000 characters. New words are cut into passages again.
audiencestringoptional"members" lets members be answered from the entry; "team" keeps it to the creator's own surfaces.
teammembersWhat it returns
{ "data": { "id": "3b7e4d2a-9c1f-4a6b-8d5e-2f7c9a1b3e4d", "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "kind": "question", "kind_label": "Question & Answer", "audience": "team", "audience_label": "Team Only", "status": "ready", "status_label": "Ready", "title": "When does my membership renew?", "body": "Memberships renew on the first day of every month, at the price you joined on.", "file_name": null, "file_size": null, "mime": null, "chunk_count": 1, "characters": 64, "failure": null, "indexed_at": "2026-10-19T16:02:11+00:00", "created_at": "2026-10-19T16:02:11+00:00", "updated_at": "2026-10-19T17:12:45+00:00" }}The complete entry after the change, text included, the same object get_knowledge_entry returns. When the words changed, chunk_count, characters and indexed_at are new.
How it fails
VALIDATION_FAILEDtitle outside 2 to 160 characters, body outside 2 to 50,000, or audience not members or team. The envelope names the offending field.
RESOURCE_NOT_FOUNDproject_id names a project the token cannot see, or knowledge_entry_id is unknown or belongs to another project.
AUTHENTICATION_REQUIREDno authenticated user on the request.
TOKEN_MISSING_ABILITYtoken lacks project-knowledge:update, or its owner's role on the project's team may not change Knowledge.
How is this guide?
Last updated on