Summary
Please expose draft update and delete tools on the hosted Slack MCP server (https://mcp.slack.com/mcp), alongside the existing create path (slack_send_message_draft).
Today agents can create a draft for review, but cannot revise or discard it via MCP without either:
- asking the human to delete it in Slack Drafts & Sent, then creating again, or
- sending via
slack_send_message with draft_id (deletes only as a side effect of sending).
Current surface
| Capability |
Tool |
| Create draft |
slack_send_message_draft |
| Delete draft without sending |
❌ none |
| Update draft text in place |
❌ none |
| Delete draft after send |
slack_send_message optional draft_id |
Proposed tools
slack_update_draft
- Inputs:
draft_id (required), message (required), optionally channel_id / thread_ts if needed for validation
- Behavior: Replace the body of an existing unsent draft; return the same
draft_id + channel link
- Errors:
draft_not_found, channel_not_found, auth failures
slack_delete_draft
- Inputs:
draft_id (required), optionally channel_id
- Behavior: Discard an unsent draft without posting
- Errors:
draft_not_found, auth failures
Motivation
Agent workflows routinely prepare a draft for human review, then iterate on wording before send. Without update/delete:
- Duplicate creates are unsafe (see companion bug: false success when a draft already exists).
- Humans must manually delete drafts in the Slack UI to unblock a rewrite.
- The only MCP “delete” path forces sending (
draft_id on slack_send_message).
Token / API note
Internal Slack client methods (drafts.update, drafts.delete, drafts.list) reportedly exist but may require client/session token types beyond standard OAuth user tokens used by the MCP. If that is the blocker, please document it on the create tool and keep create’s draft_already_exists behavior honest so agents do not silently no-op.
If OAuth can support update/delete, exposing them would close a large hole in the draft lifecycle for AI clients (Cursor, Claude Code, etc.).
Related
Fix lives on the hosted MCP at mcp.slack.com; this repo is the public place to track it.
Summary
Please expose draft update and delete tools on the hosted Slack MCP server (
https://mcp.slack.com/mcp), alongside the existing create path (slack_send_message_draft).Today agents can create a draft for review, but cannot revise or discard it via MCP without either:
slack_send_messagewithdraft_id(deletes only as a side effect of sending).Current surface
slack_send_message_draftslack_send_messageoptionaldraft_idProposed tools
slack_update_draftdraft_id(required),message(required), optionallychannel_id/thread_tsif needed for validationdraft_id+ channel linkdraft_not_found,channel_not_found, auth failuresslack_delete_draftdraft_id(required), optionallychannel_iddraft_not_found, auth failuresMotivation
Agent workflows routinely prepare a draft for human review, then iterate on wording before send. Without update/delete:
draft_idonslack_send_message).Token / API note
Internal Slack client methods (
drafts.update,drafts.delete,drafts.list) reportedly exist but may require client/session token types beyond standard OAuth user tokens used by the MCP. If that is the blocker, please document it on the create tool and keep create’sdraft_already_existsbehavior honest so agents do not silently no-op.If OAuth can support update/delete, exposing them would close a large hole in the draft lifecycle for AI clients (Cursor, Claude Code, etc.).
Related
slack_send_message_draftreturns success when a draft already exists (shoulddraft_already_exists)slack_send_message_draftstrips newlines — draft renders as a single unbroken line #18 — draft newline stripping