Skip to content

A trigger-woken session runs without MCP connectors — the only channel in strips the channel out #339

Description

@bdelanghe

Surfaced while working #337/#338. It reframes the dogfood result, so it wants its own number rather than a paragraph inside either.

The finding

create_trigger is the only way we can reach another live session — it pushes a prompt into it and wakes it (persistent_session_id). A session woken that way runs without any mcp__<server>__* tools.

The tool said so itself, unprompted, on the return of a create_trigger call:

this trigger stores no MCP connectors, so the sessions it fires will run without connector (mcp__<server>__*) tools. Connectors on triggers created via this tool are limited to those the calling session itself holds; this call had none to pass through (no session context, or no passable connector grants). If the routine needs connectors, create it from a session that holds them, or ask the user to create it from the claude.ai routines UI.

Why it matters

#337 recorded that a checkout-less session could not report its findings to GitHub, and attributed it to the session being bare. That attribution is wrong, or at least incomplete. The missing GitHub tool is a property of being woken by a trigger, not of having no repos attached.

Measured, both sessions in #337:

v1 session_015MHtz7BxTVDRuvvG5o7rGi v2 session_01EhoqH39bRLv1c4NLiRFyvT
asked to comment on #337 yes, via trigger trig_012uTx3LpJZ5mXhpTsFtWLfF yes, in its seed prompt
trigger fired run_once_fired, last_fired_at 2026-09-01T13:21:08Z n/a
woke and worked yes — output tokens 2,549 → 6,862 yes
comment posted none none
its own status line measured 5 questions: session ID, repos, env vars, network tools, GitHub access cannot post findings; no GitHub tool + no relay bearer

v1 spent a full turn on the follow-up and produced nothing on the issue. Its status line changed to name the five questions it had measured — so it did the work, and the answers went nowhere.

The shape

The one channel in guarantees no channel out.

  • We can only reach a session by pushing (create_trigger); there is no pull (read_code_session: a Claude Code session URL should read like a share link #338).
  • A pushed session has no connectors, so it cannot post, comment, or call any MCP door.
  • Its entire outbound bandwidth is post_turn_summary.status_detail — measured at roughly 44–80 characters, and it is a generated summary, not text the session controls.

That is a closed loop, and it is why #337's report channel could never have worked, regardless of what the session was told to do.

What this changes

Open questions

  • The warning says connectors can ride a trigger when "created from a session that holds them" — this session holds the GitHub connector and the pass-through still came back empty. Why? Is it a created_via: meta_mcp limitation specifically?
  • Does the claude.ai routines UI genuinely attach connectors where the MCP tool cannot? The warning asserts it; unverified.
  • Is post_turn_summary steerable at all — can a session shape it reliably enough to be a deliberate (if tiny) return channel, or is it purely generated? A test is armed as of filing.

Related: #337, #338.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions