0.5.2npm · claudaborative-editing · current release
Observed 2026-08-15T18:44:02.483Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.
{
"experimental": {
"claude/channel": {}
},
"tools": {
"listChanged": true
},
"prompts": {
"listChanged": true
}
}| Tool | Category | Annotations | Risk |
|---|---|---|---|
wp_add_noteAdd a note (block comment) to a specific block. Notes are editorial feedback visible in the WordPress editor but not shown to site visitors.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"blockIndex": {
"type": "string",
"description": "Block index (e.g. \"0\", \"2.1\" for nested blocks)"
},
"content": {
"type": "string",
"description": "Note text"
}
},
"required": [
"blockIndex",
"content"
]
} | — | — · — | — |
wp_block_typesLook up block type schemas — attributes, defaults, nesting constraints. Use before inserting unfamiliar block types.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": {
"description": "Exact block type name (e.g., \"core/pullquote\") for full details",
"type": "string"
},
"search": {
"description": "Search block types by name (e.g., \"quote\", \"media\")",
"type": "string"
}
}
} | — | — · — | — |
wp_close_postClose the current post and stop syncing, without disconnecting from WordPressInput schema{
"type": "object",
"properties": {}
} | — | — · — | — |
wp_collaboratorsList active collaborators on the current postInput schema{
"type": "object",
"properties": {}
} | — | — · — | — |
wp_connectConnect to a WordPress site for collaborative editing. Not needed if the server was started with WP_SITE_URL, WP_USERNAME, and WP_APP_PASSWORD environment variables — check wp_status first.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"siteUrl": {
"type": "string",
"description": "WordPress site URL (e.g., https://example.com)"
},
"username": {
"type": "string",
"description": "WordPress username"
},
"appPassword": {
"type": "string",
"description": "WordPress Application Password"
}
},
"required": [
"siteUrl",
"username",
"appPassword"
]
} | — | — · — | — |
wp_create_postCreate a new WordPress post and open it for editingInput schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"title": {
"description": "Post title",
"type": "string"
},
"content": {
"description": "Initial post content (Gutenberg HTML)",
"type": "string"
}
}
} | — | — · — | — |
wp_disconnectDisconnect from the WordPress siteInput schema{
"type": "object",
"properties": {}
} | — | — · — | — |
wp_edit_block_textMake surgical find-and-replace text edits within a block. More efficient than wp_update_block for small corrections (typos, grammar fixes) — only the targeted text is changed, preserving concurrent edits.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"index": {
"type": "string",
"description": "Block index (e.g., \"0\", \"2.1\" for nested blocks)"
},
"attribute": {
"description": "Rich-text attribute to edit (default: \"content\"). Use \"citation\" for quote/pullquote citations, \"value\" for pullquote text, etc.",
"type": "string"
},
"edits": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"find": {
"type": "string",
"minLength": 1,
"description": "Exact text to find in the current content (may include HTML tags like <strong>, <a href=\"...\">)"
},
"replace": {
"type": "string",
"description": "Replacement text (empty string to delete the found text)"
},
"occurrence": {
"description": "Which occurrence to replace (1-indexed, default 1). Use when the same text appears multiple times.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
}
},
"required": [
"find",
"replace"
]
},
"description": "List of find-and-replace operations applied sequentially"
}
},
"required": [
"index",
"edits"
]
} | — | — · — | — |
wp_insert_blockInsert a new block at a position in the post. Supports nested blocks via innerBlocks.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"position": {
"type": "number",
"description": "Position to insert the block (0-based index)"
},
"name": {
"type": "string",
"description": "Block type name (e.g., \"core/paragraph\", \"core/heading\", \"core/separator\")"
},
"content": {
"description": "Text content for the block",
"type": "string"
},
"attributes": {
"description": "Block attributes (key-value pairs)",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"innerBlocks": {
"description": "Nested child blocks (e.g., list-items inside a list)",
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"position",
"name"
],
"definitions": {
"__schema0": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Block type name (e.g., \"core/paragraph\", \"core/heading\", \"core/separator\")"
},
"content": {
"description": "Text content for the block",
"type": "string"
},
"attributes": {
"description": "Block attributes (key-value pairs)",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"innerBlocks": {
"description": "Nested child blocks (e.g., list-items inside a list)",
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"name"
]
}
}
} | — | — · — | — |
wp_insert_inner_blockInsert a block as a child of an existing block (e.g., add a list-item to a list)Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"parentIndex": {
"type": "string",
"description": "Dot-notation index of the parent block (e.g., \"0\", \"2.1\")"
},
"position": {
"type": "number",
"description": "Position within the parent's inner blocks (0-based)"
},
"name": {
"type": "string",
"description": "Block type name (e.g., \"core/paragraph\", \"core/heading\", \"core/separator\")"
},
"content": {
"description": "Text content for the block",
"type": "string"
},
"attributes": {
"description": "Block attributes (key-value pairs)",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"innerBlocks": {
"description": "Nested child blocks",
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"parentIndex",
"position",
"name"
],
"definitions": {
"__schema0": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Block type name (e.g., \"core/paragraph\", \"core/heading\", \"core/separator\")"
},
"content": {
"description": "Text content for the block",
"type": "string"
},
"attributes": {
"description": "Block attributes (key-value pairs)",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"innerBlocks": {
"description": "Nested child blocks (e.g., list-items inside a list)",
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"name"
]
}
}
} | — | — · — | — |
wp_list_categoriesList existing categories on the WordPress site. Use this before wp_set_categories to find appropriate existing categories.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"search": {
"description": "Filter categories by name",
"type": "string"
}
}
} | — | — · — | — |
wp_list_notesList all notes (block comments) on the currently open post. Returns note content, author, date, and which block each note is attached to. Replies are nested under their parent notes.Input schema{
"type": "object",
"properties": {}
} | — | — · — | — |
wp_list_postsList WordPress posts with optional filters. By default, this shows published posts; specify a status filter if you want to see drafts or other non-published posts.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"status": {
"description": "Filter by post status (e.g., publish, draft, pending)",
"type": "string"
},
"search": {
"description": "Search posts by keyword",
"type": "string"
},
"perPage": {
"description": "Number of posts to return (default 10)",
"type": "number"
}
}
} | — | — · — | — |
wp_list_tagsList existing tags on the WordPress site. Use this before wp_set_tags to find appropriate existing tags.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"search": {
"description": "Filter tags by name",
"type": "string"
}
}
} | — | — · — | — |
wp_move_blockMove a block from one position to anotherInput schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"fromIndex": {
"type": "number",
"description": "Current position of the block"
},
"toIndex": {
"type": "number",
"description": "Target position for the block"
}
},
"required": [
"fromIndex",
"toIndex"
]
} | — | — · — | — |
wp_open_postOpen a WordPress post for collaborative editingInput schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"postId": {
"type": "number",
"description": "The post ID to open"
}
},
"required": [
"postId"
]
} | — | — · — | — |
wp_read_blockRead a specific block by index (supports dot notation for nested blocks, e.g., "2.1")Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"index": {
"type": "string",
"description": "Block index (e.g., \"0\", \"2.1\" for nested blocks)"
}
},
"required": [
"index"
]
} | — | — · — | — |
wp_read_postRead the current post content as a block listingInput schema{
"type": "object",
"properties": {}
} | — | — · — | — |
wp_remove_blocksRemove one or more blocks from the postInput schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"startIndex": {
"type": "number",
"description": "Index of the first block to remove"
},
"count": {
"description": "Number of blocks to remove (default 1)",
"type": "number"
}
},
"required": [
"startIndex"
]
} | — | — · — | — |
wp_remove_inner_blocksRemove inner blocks from a parent blockInput schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"parentIndex": {
"type": "string",
"description": "Dot-notation index of the parent block (e.g., \"0\")"
},
"startIndex": {
"type": "number",
"description": "Index of the first inner block to remove"
},
"count": {
"description": "Number of inner blocks to remove (default 1)",
"type": "number"
}
},
"required": [
"parentIndex",
"startIndex"
]
} | — | — · — | — |
wp_replace_blocksReplace a range of blocks with new blocks. Supports nested blocks via innerBlocks.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"startIndex": {
"type": "number",
"description": "Index of the first block to replace"
},
"count": {
"type": "number",
"description": "Number of blocks to replace"
},
"blocks": {
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
},
"description": "New blocks to insert in place of the removed ones"
}
},
"required": [
"startIndex",
"count",
"blocks"
],
"definitions": {
"__schema0": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Block type name (e.g., \"core/paragraph\", \"core/heading\", \"core/separator\")"
},
"content": {
"description": "Text content for the block",
"type": "string"
},
"attributes": {
"description": "Block attributes (key-value pairs)",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"innerBlocks": {
"description": "Nested child blocks (e.g., list-items inside a list)",
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"name"
]
}
}
} | — | — · — | — |
wp_reply_to_noteReply to an existing note. Replies are threaded under the parent note.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"noteId": {
"type": "number",
"description": "ID of the note to reply to"
},
"content": {
"type": "string",
"description": "Reply text"
}
},
"required": [
"noteId",
"content"
]
} | — | — · — | — |
wp_resolve_noteResolve (delete) a note and remove its association from the linked block.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"noteId": {
"type": "number",
"description": "ID of the note to resolve"
}
},
"required": [
"noteId"
]
} | — | — · — | — |
wp_saveSave the current postInput schema{
"type": "object",
"properties": {}
} | — | — · — | — |
wp_set_categoriesSet the post categories by name (replaces all existing categories). Creates categories that don't exist yet. WordPress requires at least one category.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"categories": {
"minItems": 1,
"type": "array",
"items": {
"type": "string"
},
"description": "Category names to assign (e.g., [\"Tech\", \"News\"])"
}
},
"required": [
"categories"
]
} | — | — · — | — |
wp_set_comment_statusEnable or disable comments on the post.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"open",
"closed"
],
"description": "\"open\" to enable comments, \"closed\" to disable"
}
},
"required": [
"status"
]
} | — | — · — | — |
wp_set_dateSet the post publication date. Use with wp_set_status("future") to schedule a post. Pass an empty string to reset to the current date.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Publication date in ISO 8601 format (e.g., \"2026-04-01T09:00:00\"), or empty string to clear"
}
},
"required": [
"date"
]
} | — | — · — | — |
wp_set_excerptSet the post excerpt (short summary shown in feeds and search results). Pass an empty string to clear.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"excerpt": {
"type": "string",
"description": "Post excerpt text"
}
},
"required": [
"excerpt"
]
} | — | — · — | — |
wp_set_featured_imageSet the post featured image by media attachment ID. Use wp_upload_media first to upload an image and get its ID. Pass 0 to remove the featured image.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"attachmentId": {
"type": "number",
"description": "Media attachment ID (from wp_upload_media), or 0 to remove"
}
},
"required": [
"attachmentId"
]
} | — | — · — | — |
wp_set_slugSet the post URL slug. WordPress may auto-modify the slug to ensure uniqueness.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "URL slug (e.g., \"my-custom-url\")"
}
},
"required": [
"slug"
]
} | — | — · — | — |
wp_set_statusChange the post publication status. Use "future" with wp_set_date to schedule a post.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"draft",
"pending",
"publish",
"private",
"future"
],
"description": "New post status"
}
},
"required": [
"status"
]
} | — | — · — | — |
wp_set_stickyPin or unpin the post on the front page.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"sticky": {
"type": "boolean",
"description": "true to pin, false to unpin"
}
},
"required": [
"sticky"
]
} | — | — · — | — |
wp_set_tagsSet the post tags by name (replaces all existing tags). Creates tags that don't exist yet. Pass an empty array to remove all tags.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tag names to assign (e.g., [\"tutorial\", \"beginner\"])"
}
},
"required": [
"tags"
]
} | — | — · — | — |
wp_set_titleSet the post titleInput schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "New post title"
}
},
"required": [
"title"
]
} | — | — · — | — |
wp_statusShow current connection state, sync status, and post info. If the plugin status includes URLs (download or admin links), always show them to the user as clickable links.Input schema{
"type": "object",
"properties": {}
} | — | — · — | — |
wp_update_blockUpdate a block's content and/or attributesInput schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"index": {
"type": "string",
"description": "Block index (e.g., \"0\", \"2.1\" for nested blocks)"
},
"content": {
"description": "New text content for the block",
"type": "string"
},
"attributes": {
"description": "Attributes to update (key-value pairs)",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"index"
]
} | — | — · — | — |
wp_update_command_statusUpdate the status of a command received from the WordPress editor. Call this when starting, completing, or failing a command from a channel notification. For awaiting_input: send status and message, and do not send conversation history in resultData (WordPress manages conversation history automatically). Only optional flags such as {"planReady": true} should be sent in resultData when needed.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"commandId": {
"type": "number",
"description": "The command ID from the channel notification metadata"
},
"status": {
"type": "string",
"enum": [
"running",
"completed",
"failed",
"awaiting_input"
],
"description": "New status for the command"
},
"message": {
"description": "Status message, error description, or question for the user. For awaiting_input: format as HTML (use <p> for paragraphs, <strong> for emphasis, <ol>/<ul>/<li> for lists, colons for labels).",
"type": "string"
},
"resultData": {
"description": "Optional JSON object string of structured result data. For awaiting_input: conversation messages are managed automatically — only send flags here (e.g., {\"planReady\": true} when the outline is ready for approval). The planReady flag adds an Approve button in the editor.",
"type": "string"
}
},
"required": [
"commandId",
"status"
]
} | — | — · — | — |
wp_update_noteUpdate the content of an existing note.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"noteId": {
"type": "number",
"description": "ID of the note to update"
},
"content": {
"type": "string",
"description": "New note text"
}
},
"required": [
"noteId",
"content"
]
} | — | — · — | — |
wp_upload_mediaUpload a local file to the WordPress media library. Returns the attachment ID and URL for use with wp_insert_block (e.g., core/image, core/video, core/audio, core/file).Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"filePath": {
"type": "string",
"description": "Absolute path to the local file to upload"
},
"altText": {
"description": "Alt text for the media (important for image accessibility)",
"type": "string"
},
"title": {
"description": "Title for the media item",
"type": "string"
},
"caption": {
"description": "Caption for the media item",
"type": "string"
}
},
"required": [
"filePath"
]
} | — | — · — | — |
wp_view_postRead any WordPress post by ID without opening it for editing. Returns the saved (committed) content as a block listing. Use this to research other posts while keeping the current post open.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"postId": {
"type": "number",
"description": "The post ID to read"
}
},
"required": [
"postId"
]
} | — | — · — | — |
Plan and outline a WordPress post through guided conversation.
{
"prompt_key": "compose",
"name": "compose",
"description": "Plan and outline a WordPress post through guided conversation.",
"arguments": [],
"metadata_hash": "2affcc63507ef0185b382a038d7e7e118bf1560e3360d637d88f1fe978a22934"
}Edit a WordPress post with a specific editing focus.
{
"prompt_key": "edit",
"name": "edit",
"description": "Edit a WordPress post with a specific editing focus.",
"arguments": [
{
"name": "editingFocus",
"description": "A brief description of the editing focus or intent (e.g., \"Make it more formal\", \"Improve the flow\", \"Condense the intro\")",
"required": true
}
],
"metadata_hash": "31e9e50e19559fcb9b0302698f0101321e8790382c2901148425df5eba421644"
}Suggest metadata improvements before publishing — excerpt, categories, tags, and slug.
{
"prompt_key": "pre-publish-check",
"name": "pre-publish-check",
"description": "Suggest metadata improvements before publishing — excerpt, categories, tags, and slug.",
"arguments": [],
"metadata_hash": "1a86a7d89524a8c45937fac999480c844e65bbff9a43c5288e4cc7bf67be97fd"
}Proofread a WordPress post for grammar, spelling, punctuation, and style issues.
{
"prompt_key": "proofread",
"name": "proofread",
"description": "Proofread a WordPress post for grammar, spelling, punctuation, and style issues.",
"arguments": [],
"metadata_hash": "a0b9a55d2888178e99372740e6dfe4f6c29a71b4dec90a61f6b5509a1fbaa379"
}Address a single editorial note on a WordPress post — read it, make the requested changes, and resolve when done.
{
"prompt_key": "respond-to-note",
"name": "respond-to-note",
"description": "Address a single editorial note on a WordPress post — read it, make the requested changes, and resolve when done.",
"arguments": [
{
"name": "noteId",
"description": "The ID of the note to address.",
"required": true
}
],
"metadata_hash": "d62047e2f70c982dfe7842fb42f8ca7691f8f3739f0a24cb8dc03c25faae4215"
}Address editorial notes on a WordPress post — read each note, make the requested changes, and resolve notes when done.
{
"prompt_key": "respond-to-notes",
"name": "respond-to-notes",
"description": "Address editorial notes on a WordPress post — read each note, make the requested changes, and resolve notes when done.",
"arguments": [],
"metadata_hash": "f2379f26379e5115b39e895712da58fd116359be1fa28600f5f6402a0c7e0fee"
}Review a WordPress post and leave editorial feedback as notes on individual blocks.
{
"prompt_key": "review",
"name": "review",
"description": "Review a WordPress post and leave editorial feedback as notes on individual blocks.",
"arguments": [],
"metadata_hash": "0088d0db2d737c4fa26d44dac298a9de52fc8a587efb5cf44ae577f64f5ecb76"
}Translate a WordPress post into another language.
{
"prompt_key": "translate",
"name": "translate",
"description": "Translate a WordPress post into another language.",
"arguments": [
{
"name": "language",
"description": "Target language (e.g., \"Spanish\", \"French\", \"Japanese\", \"zh-CN\")",
"required": true
}
],
"metadata_hash": "08f1945b99a8b60bbd009e420035a844a41484dbf8f90d6d0b02c01a448f32ae"
}