[DOCS] Undocumented `ccd_*` MCP servers: session-to-session messaging and `list_sessions` scope
Documentation Type
Missing documentation (feature not documented)
Documentation Location
https://code.claude.com/docs/en/agent-sdk/sessions.md
Section/Topic
Session management — the ccd_* MCP servers, and session-to-session messaging
Current Documentation
The docs cover several adjacent capabilities, none of which is the one below:
- Agent teams — a lead session and its spawned teammates share a task list and mailbox. Inter-agent, but within one orchestrated session.
- Channels — push events into a session from an external system. Opposite direction.
- Agent SDK session functions —
list_sessions(),get_session_info(),rename_session(),tag_session()for reading/modifying local session metadata. No messaging. /teleportand/remote-control— move or drive a single session across surfaces.
None of these describes sending a message from one live session into a different concurrent session's transcript.
What's Wrong or Missing?
A Claude Code desktop session exposes a set of MCP servers prefixed ccd_ that appear in no public documentation I could find:
mcp__ccd_session_mgmt__*—list_sessions,send_message,get_session,archive_session,set_session_title,search_session_transcripts,list_eventsmcp__ccd_session__*—mark_chapter,spawn_task,dismiss_task,read_widget_contextmcp__ccd_directory__request_directory
send_message's own tool description reads:
Send a message to another CCD session. The message arrives in the target session as a user turn labelled "From {this session's title}" with a link back here… Unavailable in unattended sessions (scheduled-task runs and remote-dispatched sessions), and cannot deliver to them either.
Using it returned: Message queued for session <id>; it will be processed after the in-flight turn finishes if that session stays healthy.
Three things are undocumented, and the third caused me to give a user an unsupported answer:
- What "CCD" stands for. It appears only as a tool-name prefix and inside tool descriptions. "Claude Code Desktop" is a guess.
- That session-to-session messaging exists at all, and how it differs from agent teams / channels / teleport.
- Which sessions
list_sessionsenumerates. On a machine with 9 active git worktrees it returned exactly 1 session. That could mean it only registers desktop-app sessions (excluding the VS Code extension and plainclaudeterminal runs), or it could mean ended sessions drop out, or that the registry is keyed on something narrower than I assumed. I could not distinguish these, and told the user VS Code sessions are unreachable — a claim I could not substantiate.
Practical consequence: an agent asked to hand off context to a peer session cannot tell whether a target is absent because it is unaddressable by design, or because it simply is not listed. The failure is silent — you address the one session you can see, which may be a bystander.
Suggested Improvement
Documentation should state:
- Expand "CCD" on first use, and say which surfaces provide these MCP servers (desktop app only? version/flag gated?).
- Document
send_messagesemantics, and contrast it with the adjacent features above so it is clear which tool to reach for:
- delivery is queued, not synchronous — what "if that session stays healthy" means, and whether failure is observable
- the message lands as a user turn in the target, i.e. it can cause another agent to act
- Define
list_sessionsscope explicitly — which session types register, whether VS Code-extension and terminal sessions are included, and what causes a live session to be absent. A single sentence such as "only sessions started in the desktop app appear; extension and terminal sessions are not addressable" would settle it. - State whether any supported handoff to a VS Code-extension or terminal session exists, even if the answer is "no".
If these servers are intentionally internal and not for general use, saying so is equally useful — a tool that is visible to the model but undocumented invites exactly the kind of confident-but-unfounded explanation I gave.
Impact
Medium - Makes feature difficult to understand
Additional Context
Observed on the Claude Code desktop app, late July 2026, in a repo with multiple concurrent worktrees. I looked for prior issues on ccd_session_mgmt, send_message session, and list_sessions and found none.
Filed after a claude-code-guide lookup confirmed the gap: it located agent teams, channels, and the Agent SDK session functions, and reported that the ccd_* servers and session-to-session messaging are absent from the public docs.
Related docs: Agent SDK sessions · Agent teams · Channels
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗