<!-- enhance-docs page=reference/mcp -->
<!-- enhance-docs release-sha256=dad2e0623acc56ece15d04a4baaff3f1e1f36c2114941c9e110479ef18927c25 -->

# MCP capability reference

Enhance advertises five stable MCP tools. Use `capability_search` for a specific action or `capability_catalogue` for the full inventory, then describe one exact ID before invoking it.

- [canvas.apply](/docs/reference/mcp/canvas-apply) — Atomically apply bounded canvas edits and report their exact affected state.
- [canvas.create](/docs/reference/mcp/canvas-create) — Create a canvas and return the id required by canvas-scoped commands.
- [canvas.createEditableFrame](/docs/reference/mcp/canvas-createeditableframe) — Insert one validated primitive subtree beside its source screen as an atomic canvas edit.
- [canvas.delete](/docs/reference/mcp/canvas-delete) — Move a canvas to its recoverable bin; retention is currently indefinite.
- [canvas.deletePermanently](/docs/reference/mcp/canvas-deletepermanently) — Permanently delete a canvas already in the recoverable bin.
- [canvas.document.get](/docs/reference/mcp/canvas-document-get) — Read a canvas document, version, and attached screen manifest.
- [canvas.document.save](/docs/reference/mcp/canvas-document-save) — Replace a canvas document. A stale base version exits 5 as CONFLICT; read, merge, and retry.
- [canvas.duplicate](/docs/reference/mcp/canvas-duplicate) — Copy a canvas and its document into the selected shelf.
- [canvas.get](/docs/reference/mcp/canvas-get) — Read one canvas by id, including access and viewer capabilities.
- [canvas.inspect](/docs/reference/mcp/canvas-inspect) — Read the canonical browser URL for a canvas, its exact document version, kind counts, bounds, and next inspection commands.
- [canvas.invites.accept](/docs/reference/mcp/canvas-invites-accept) — Accept a canvas invitation using its secret token.
- [canvas.invites.create](/docs/reference/mcp/canvas-invites-create) — Invite an email address to access a canvas and return the pending invitation.
- [canvas.invites.list](/docs/reference/mcp/canvas-invites-list) — List pending and expired invitations for a canvas.
- [canvas.invites.preview](/docs/reference/mcp/canvas-invites-preview) — Inspect what an invitation grants before accepting it.
- [canvas.invites.resend](/docs/reference/mcp/canvas-invites-resend) — Replace a pending canvas invitation token and send the invitation again.
- [canvas.invites.revoke](/docs/reference/mcp/canvas-invites-revoke) — Revoke a pending canvas invitation.
- [canvas.list](/docs/reference/mcp/canvas-list) — Find canvas ids by collection, title, access, review state, or deletion state.
- [canvas.markViewed](/docs/reference/mcp/canvas-markviewed) — Record that the authenticated person has viewed a canvas.
- [canvas.move](/docs/reference/mcp/canvas-move) — Move a canvas between the personal shelf and a team shelf.
- [canvas.node](/docs/reference/mcp/canvas-node) — Read one stable node with its exact styles, props, children, and current version.
- [canvas.participants.list](/docs/reference/mcp/canvas-participants-list) — List people with direct access to a canvas.
- [canvas.participants.revoke](/docs/reference/mcp/canvas-participants-revoke) — Remove a participant’s direct access to a canvas.
- [canvas.participants.setAccess](/docs/reference/mcp/canvas-participants-setaccess) — Change a canvas participant between view and comment access.
- [canvas.realtime.activity.begin](/docs/reference/mcp/canvas-realtime-activity-begin) — Show that this agent has started work on a canvas.
- [canvas.realtime.activity.end](/docs/reference/mcp/canvas-realtime-activity-end) — Remove an agent-work indicator after work completes.
- [canvas.realtime.activity.renew](/docs/reference/mcp/canvas-realtime-activity-renew) — Renew an active agent-work indicator before its lease expires.
- [canvas.rename](/docs/reference/mcp/canvas-rename) — Rename a canvas owned by the authenticated person.
- [canvas.render](/docs/reference/mcp/canvas-render) — Render production-faithful canvas pixels into a protected PNG artifact.
- [canvas.render.cancelImport](/docs/reference/mcp/canvas-render-cancelimport) — Cancel a queued primitive import before compilation begins.
- [canvas.render.getImport](/docs/reference/mcp/canvas-render-getimport) — Inspect the progress or committed result of a primitive import.
- [canvas.render.importSource](/docs/reference/mcp/canvas-render-importsource) — Import one source through the canonical editable-primitives compiler.
- [canvas.restore](/docs/reference/mcp/canvas-restore) — Restore a canvas from the recoverable bin.
- [canvas.selection](/docs/reference/mcp/canvas-selection) — Read the accountable person’s most recently changed live browser selection at an exact canvas version.
- [canvas.setAccess](/docs/reference/mcp/canvas-setaccess) — Change how a canvas can be reached by people with its link.
- [canvas.setReviewState](/docs/reference/mcp/canvas-setreviewstate) — Change the authenticated person’s review state on a canvas.
- [canvas.tree](/docs/reference/mcp/canvas-tree) — List stable node ids, hierarchy, kinds, and world-space boxes for one canvas.
- [canvas.version.get](/docs/reference/mcp/canvas-version-get) — Read the document and screen manifest retained for one canvas version.
- [canvas.version.list](/docs/reference/mcp/canvas-version-list) — List retained versions of a canvas, newest first.
- [canvas.version.name](/docs/reference/mcp/canvas-version-name) — Name the current or a retained canvas version so it is kept.
- [canvas.version.removeName](/docs/reference/mcp/canvas-version-removename) — Remove a canvas version’s name and return it to automatic retention.
- [canvas.version.updateMetadata](/docs/reference/mcp/canvas-version-updatemetadata) — Replace the title and description of a named canvas version.
- [canvas.writeHtml](/docs/reference/mcp/canvas-writehtml) — Compile safe HTML and CSS into editable canvas nodes, then render the result.
- [comment.attention](/docs/reference/mcp/comment-attention) — List every open canvas comment that may need attention.
- [comment.delete](/docs/reference/mcp/comment-delete) — Delete an entire comment thread, or tombstone one message when its id is set.
- [comment.edit](/docs/reference/mcp/comment-edit) — Replace the body of a comment message authored by this person.
- [comment.list](/docs/reference/mcp/comment-list) — List comment threads and replies on a canvas.
- [comment.move](/docs/reference/mcp/comment-move) — Move a comment thread anchor to a new canvas location.
- [comment.react](/docs/reference/mcp/comment-react) — Set or remove one emoji reaction on a comment message.
- [comment.reply](/docs/reference/mcp/comment-reply) — Add a reply to an existing comment thread.
- [comment.resolve](/docs/reference/mcp/comment-resolve) — Set a thread resolved or reopened with an explicit target state.
- [comment.start](/docs/reference/mcp/comment-start) — Start a comment thread anchored to a canvas location.
- [organisation.create](/docs/reference/mcp/organisation-create) — Create a team and make the authenticated person its owner.
- [organisation.delete](/docs/reference/mcp/organisation-delete) — Delete a team and rehome every canvas to its creator’s personal shelf.
- [organisation.invites.accept](/docs/reference/mcp/organisation-invites-accept) — Accept a team invitation using its secret token.
- [organisation.invites.create](/docs/reference/mcp/organisation-invites-create) — Invite an email address to join a team with the selected role.
- [organisation.invites.list](/docs/reference/mcp/organisation-invites-list) — List pending and expired invitations for a team.
- [organisation.invites.preview](/docs/reference/mcp/organisation-invites-preview) — Inspect a team invitation before accepting it.
- [organisation.invites.resend](/docs/reference/mcp/organisation-invites-resend) — Replace a team invitation token and send it again.
- [organisation.invites.revoke](/docs/reference/mcp/organisation-invites-revoke) — Revoke a pending team invitation.
- [organisation.list](/docs/reference/mcp/organisation-list) — List teams the authenticated person belongs to.
- [organisation.people.add](/docs/reference/mcp/organisation-people-add) — Add an existing account by email; use organisation invites create when no account exists.
- [organisation.people.list](/docs/reference/mcp/organisation-people-list) — List the people and roles in a team.
- [organisation.people.remove](/docs/reference/mcp/organisation-people-remove) — Remove a person from a team without deleting their account.
- [organisation.people.setRole](/docs/reference/mcp/organisation-people-setrole) — Change a team member between administrator and member.
- [organisation.people.transferOwnership](/docs/reference/mcp/organisation-people-transferownership) — Transfer team ownership to another current member.
- [organisation.update](/docs/reference/mcp/organisation-update) — Rename a team managed by the authenticated person.
- [person.me](/docs/reference/mcp/person-me) — Resolve the current person and authentication kind.
- [person.recipients.recent](/docs/reference/mcp/person-recipients-recent) — List people recently selected as sharing recipients.
- [person.recipients.search](/docs/reference/mcp/person-recipients-search) — Find people who can be invited by matching a name or email.
- [person.updateDisplayName](/docs/reference/mcp/person-updatedisplayname) — Change the name shown for the current person throughout Enhance.
- [prototype.publish](/docs/reference/mcp/prototype-publish) — Package, upload, ingest, and attach a static prototype directory.
- [recording.appendAudioChunk](/docs/reference/mcp/recording-appendaudiochunk) — Commit metadata for the uploaded audio chunk at this index, then reserve the next upload.
- [recording.appendChunk](/docs/reference/mcp/recording-appendchunk) — Commit metadata for the uploaded DOM chunk at this index, then reserve the next upload.
- [recording.complete](/docs/reference/mcp/recording-complete) — Finish a recording and report any missing event or audio chunks.
- [recording.confirmUpload](/docs/reference/mcp/recording-confirmupload) — Confirm that a repaired recording chunk reached storage.
- [recording.delete](/docs/reference/mcp/recording-delete) — Soft-delete a completed recording while preserving screens and clearing their provenance.
- [recording.discard](/docs/reference/mcp/recording-discard) — Abandon an incomplete recording attempt and its uploaded chunks.
- [recording.get](/docs/reference/mcp/recording-get) — Read one recording and its replay metadata by id.
- [recording.list](/docs/reference/mcp/recording-list) — List recordings attached to one canvas.
- [recording.refreshUpload](/docs/reference/mcp/recording-refreshupload) — Replace an expired signed upload for a recording chunk.
- [recording.snapshot](/docs/reference/mcp/recording-snapshot) — Persist one visually accepted recording moment as an editable canvas screen.
- [recording.start](/docs/reference/mcp/recording-start) — Start a recording attempt and receive its first signed chunk upload.
- [recordingAsset.confirm](/docs/reference/mcp/recordingasset-confirm) — Confirm which reserved recording assets reached storage.
- [recordingAsset.reserve](/docs/reference/mcp/recordingasset-reserve) — Reserve signed uploads for external assets used by a recording.
- [screen.complete](/docs/reference/mcp/screen-complete) — Confirm a captured page after its bytes have been uploaded.
- [screen.create](/docs/reference/mcp/screen-create) — Reserve a signed upload for a captured page and return its screen id.
- [screen.delete](/docs/reference/mcp/screen-delete) — Delete an unattached captured page owned by this person.
- [transcript.read](/docs/reference/mcp/transcript-read) — Read timestamped speech cues for visually verified recording selection.
- [transcript.retry](/docs/reference/mcp/transcript-retry) — Retry a failed transcription for one recording.
