Talk to Claude Code from a Slack channel, and watch it work while it answers. An MCP server over Slack Socket Mode.
12 tools with mixed quality. Most have descriptions (good), but critical gaps in schema completeness and parameter documentation. 7 tools expose 'token' as a required parameter, a security anti-pattern (pattern:secret-injection). Parameter descriptions exist but lack constraints (enums, ranges, formats). No output schemas documented. Error handling absent. Naming is verb-first and clear (check_, post_, update_, delete_, pin_, unpin_, upload_, create_, stream_, update_progress, post_progress), but several tools combine multiple concerns (e.g., post_message splits long messages; upload_file uploads AND comments). Schemas visible for 10/12 tools but incomplete: missing type info on array elements, no validation rules stated in descriptions.
Read unread mentions from the Slack inbox file
Create a Slack canvas with content
Delete a message this bot posted
Read messages a channel already holds, fetching history since a given timestamp
Pin a message to the channel
Post a message to a Slack channel, splitting long messages across multiple posts if needed
Post a new progress checklist board to Slack
Stream Claude Code session transcript output to Slack as it is written
Token parameter exposed in 7 tools (post_message, update_message, fetch_history, delete_message, pin_message, unpin_message, upload_file, create_canvas, post_progress). Credentials must never appear as tool parameters; use server-side secret injection via environment variables.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., message_ts for threading). Document return types with field names and types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Unpin a message from the channel
Rewrite a message already posted to Slack
Update a progress checklist board in Slack
Upload a file to Slack
Parameter descriptions lack constraints. 'limit' in fetch_history has no range stated (should be 1 - 200 per Slack API). 'patches' in update_progress is array but element type not documented. Enums missing for 'channel_type' in check_slack_inbox.
stream_transcript has no input schema visible and minimal description (50 chars). Cannot verify parameters or constraints. Likely inferred tool definition.
No error handling guidance. Tools do not document what happens on failure (e.g., 'channel not found', 'permission denied', 'rate limited'). LLMs cannot recover from errors without explicit recovery hints.