II.
Page JSON
Structured · livepage:docs-harness-features-backlog-gaps-mcp-channels-gap-mcpc-002
GAP-MCPC-002: MCP Channel Outbound Messaging json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "page:docs-harness-features-backlog-gaps-mcp-channels-gap-mcpc-002",
"_kind": "Page",
"_file": "wiki/docs/harness-features-backlog/gaps/mcp-channels/gap-mcpc-002.md",
"_cluster": "wiki",
"attributes": {
"nodeKind": "Page",
"sourcePath": "docs/harness-features-backlog/gaps/mcp-channels/GAP-MCPC-002.md",
"sourceKind": "repo-docs",
"title": "GAP-MCPC-002: MCP Channel Outbound Messaging",
"displayName": "GAP-MCPC-002: MCP Channel Outbound Messaging",
"slug": "docs/harness-features-backlog/gaps/mcp-channels/gap-mcpc-002",
"articlePath": "wiki/docs/harness-features-backlog/gaps/mcp-channels/GAP-MCPC-002.md",
"article": "\n# GAP-MCPC-002: MCP Channel Outbound Messaging\n\n| Field | Value |\n|-------|-------|\n| Category | mcp-channels |\n| Priority | High |\n| Effort | M |\n| Status | Missing |\n\n## Description\nSend messages from orchestration runs to external channels (Slack, Discord, email)\nvia MCP server tools. Enable processes to notify operators, report progress, and\nshare results through messaging platforms.\n\n## CC Implementation\nCC's outbound messaging works through MCP tools exposed by channel servers:\n- Slack MCP server exposes `slack_send_message`, `slack_send_message_draft`,\n `slack_schedule_message`\n- Gmail MCP server exposes `gmail_create_draft`\n- Calendar MCP server exposes `gcal_create_event`\n- The model decides which channel's tool to use based on context\n- Channel tools are regular MCP tools -- no special plumbing needed once MCP\n client is connected\n\n## Current State\nNo MCP client capability. Cannot invoke external MCP server tools.\nProcesses cannot send messages to external systems.\n\n## Target State\nProcesses can invoke channel MCP tools as effects:\n```javascript\nawait ctx.task(defineTask('notify-slack', () => ({\n kind: 'mcp-tool',\n mcpServer: 'slack',\n tool: 'slack_send_message',\n args: { channel: '#orchestration', text: 'Run completed: 128 gaps generated' }\n})));\n```\n\n## Dependencies\n- [GAP-MCPC-001](GAP-MCPC-001.md) -- MCP channel connection\n- [GAP-TOOLS-025](../tools-capabilities/GAP-TOOLS-025.md) -- MCP client capability\n\n## Key Files\n| Component | Path |\n|-----------|------|\n| CC MCP tools | Available as deferred tools via `mcp__claude_ai_Slack__*` |\n\n## Recommendation\nPhase 3. Once MCP client is working (GAP-TOOLS-025), channel outbound is\nessentially free -- just invoke the channel server's tools.\n",
"documents": []
},
"outgoingEdges": [],
"incomingEdges": [
{
"from": "page:docs-harness-features-backlog",
"to": "page:docs-harness-features-backlog-gaps-mcp-channels-gap-mcpc-002",
"kind": "contains_page"
}
]
}