`--channels <plugin>` no longer exposes plugin MCP tools in v2.1.101 (regression from 2.1.91)

Resolved 💬 4 comments Opened Apr 10, 2026 by bstrain71 Closed Apr 10, 2026

Summary

When launching Claude Code with --channels plugin:imessage@claude-plugins-official, the iMessage plugin's MCP tools (mcp__plugin_imessage_imessage__chat_messages, mcp__plugin_imessage_imessage__reply) are no longer added to the session's tool list. The channel subsystem still attaches (the "Listening for channel messages from: ..." banner shows), but without the reply tool the session literally cannot respond to inbound messages.

Version

  • Broken: Claude Code 2.1.101
  • Working: Claude Code 2.1.91

Repro

claude --dangerously-skip-permissions \
       --name imessage-assistant \
       --channels plugin:imessage@claude-plugins-official

Observed

In ~/.claude/projects/<project>/<session>.jsonl, the first deferred_tools_delta attachment under v2.1.91 included the plugin's MCP tools:

addedNames: [
  CronCreate, CronDelete, CronList, EnterWorktree, ExitWorktree,
  NotebookEdit, RemoteTrigger, TaskCreate, TaskGet, TaskList,
  TaskOutput, TaskStop, TaskUpdate, WebFetch, WebSearch,
  mcp__plugin_imessage_imessage__chat_messages,
  mcp__plugin_imessage_imessage__reply
]

Under v2.1.101, the analogous entry is missing those two names entirely, and no later delta adds them:

addedNames: [
  CronCreate, CronDelete, CronList, EnterWorktree, ExitWorktree,
  Monitor, NotebookEdit, RemoteTrigger, TaskCreate, TaskGet,
  TaskList, TaskOutput, TaskStop, TaskUpdate, WebFetch, WebSearch
]

The plugin itself is healthy:

  • claude mcp list in the same workspace reports plugin:imessage:imessage ✓ Connected.
  • Manually running bun run --cwd $CLAUDE_PLUGIN_ROOT --shell=bun --silent start (the exact command from the plugin's .mcp.json) starts cleanly: opens chat.db, sets the watermark, and begins polling.
  • The plugin is enabled in ~/.claude/settings.json ("enabledPlugins": { "imessage@claude-plugins-official": true }) and appears in installed_plugins.json.

The issue appears specific to how --channels attaches the plugin in 2.1.101 — it hooks up the channel source (inbound push banner shows) without exposing the plugin's MCP tools to the session.

Impact

Any persistent iMessage auto-responder setup built on the claude-plugins-official iMessage channel is broken on 2.1.101 — messages arrive at chat.db but the session has no reply tool and cannot respond. Downgrading to 2.1.91 restores the expected behavior.

Environment

  • macOS 15.x (Darwin 25.3.0)
  • Plugin: imessage@claude-plugins-official v0.1.0

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗