IDENTITY

title: "TICKET_053: Connect All Claude Surfaces to Bus MCP Server"
type: ticket
subtype: execution
purpose: "Add the STRUXIO Bus as a Custom Connector in all Claude surfaces (Desktop Chat, Desktop Cowork, Web tabs B1-B5, CLI) and verify end-to-end messaging."

GOVERNANCE

status: ready
priority: P1
sprint: S001_base_and_mvp1
assignee: "Shai (UI steps) + CM0 (CLI steps)"
estimated_hours: 1
depends_on: [TICKET_049, TICKET_054]
blocks: []
last_updated: "2026-03-22 01:00"
blueprint: "BLUEPRINT_Bus_MCP_Server_v1.md Section 2.1"

TICKET_053: Connect All Claude Surfaces to Bus

Objective

Connect every Claude surface to the Bus MCP Server at https://bus.struxio.ai/mcp so all brains + CLI agents can communicate without copy-paste.

Context

All Surfaces to Connect

# Surface Actor ID Method Notes
1 B0 Desktop Chat B0 Custom Connector (OAuth) Claude Desktop → Settings → Connectors
2 B0 Desktop Cowork B0_COWORK Custom Connector (OAuth) Same connector as Chat (shared per Desktop)
3 B0 Desktop Code tab B0_CODE Custom Connector (OAuth) Same connector (shared per Desktop)
4 B1 Web Tab B1 Custom Connector (OAuth) claude.ai → Settings → Connectors
5 B2 Web Tab B2 Custom Connector (OAuth) Same
6 B3 Web Tab B3 Custom Connector (OAuth) Same
7 B4 Web Tab B4 Custom Connector (OAuth) Same
8 B5 Web Tab B5 Custom Connector (OAuth) Same
9 CM0 Mac CLI CM0 claude mcp add + bearer token Mac terminal
10 CC0 Hetzner CLI CC0 claude mcp add + bearer token Hetzner terminal

Execution Steps

Step 1: Add Custom Connector to Claude Desktop (B0 Chat + Cowork + Code)

  1. Claude Desktop → Settings → Connectors
  2. Add custom connector
  3. URL: https://bus.struxio.ai/mcp
  4. Name: "STRUXIO Bus"
  5. OAuth flow auto-completes (bus auto-approves STRUXIO clients)
  6. Connector is now shared across Chat, Cowork, and Code tabs

Step 2: Add Custom Connector to claude.ai (B1-B5)

  1. claude.ai → Settings → Connectors
  2. Add custom connector
  3. URL: https://bus.struxio.ai/mcp
  4. Name: "STRUXIO Bus"
  5. OAuth flow auto-completes
  6. Note: If claude.ai shares one connector across all conversations, one add is enough. Each brain identifies itself via from_actor in tool calls.

Step 3: Add MCP to CM0 (Mac CLI)

claude mcp add --transport http struxio-bus https://bus.struxio.ai/mcp --header "Authorization: Bearer <CM0_TOKEN>"

Step 4: Add MCP to CC0 (Hetzner CLI)

claude mcp add --transport http struxio-bus https://bus.struxio.ai/mcp --header "Authorization: Bearer <CC0_TOKEN>"

Step 5: Deprecate File-Based Daemon

  1. In Cowork → Scheduled tasks sidebar → delete SCHEDULE-001 (inbox polling) if it exists
  2. Do NOT create any new file-based polling tasks
  3. Cowork_Schedules.md is already updated to reflect this

Step 6: End-to-End Verification

Test A: B0 → B1 via bus

  1. B0 Chat: bus.send_message(from_actor="B0", to_actors=["B1"], body="Test from B0")
  2. B1 Web: bus.poll(actor="B1") → should see the message

Test B: Cowork → B0 via bus

  1. B0 Cowork: bus.send_message(from_actor="B0_COWORK", to_actors=["B0"], body="Cowork online")
  2. B0 Chat: bus.poll(actor="B0") → should see the message

Test C: CLI → brains via bus

  1. CM0: bus.send_message(from_actor="CM0", to_actors=["ALL"], body="CM0 online")
  2. Any brain: bus.poll → should see broadcast

Test D: Full system status

  1. All surfaces call bus.presence_heartbeat with their actor + surface
  2. B0 calls bus.status → should show all online actors

Acceptance Criteria


STRUXIO.ai // Confidential & Proprietary // © 2026