[FEATURE] Configurable subscribe_pr_activity wake-message text (settings or hook)
Summary
When a Claude Code session calls mcp__github__subscribe_pr_activity, the next turn receives a <github-webhook-activity> event whose body is a fixed, ~600-character templated instruction block. There is no documented way to suppress, shorten, or override this text. Requesting a settings.json key or env var to make it configurable.
What gets injected
After the tool returns its own confirmation (Subscribed to activity on <owner>/<repo>#<N>. ...), this separate event arrives in the next turn:
<github-webhook-activity>
You are now subscribed to PR activity for <owner>/<repo>#<N>. You'll now receive events for CI failures and review comments. For each one, investigate whether it's tractable and what a fix would look like — then either make the fix if you're confident and it's small, ask me first if it's ambiguous or architecturally significant, or skip it if no action is needed. To start, check the current CI status and if there are any unresolved review comments. If so, address any that require attention.
</github-webhook-activity>
Followed by IMPORTANT: After completing your current task, you MUST address the user's message above. Do not ignore it.
The text is identical across subscriptions; only the PR ref varies.
Why this is a problem in practice
Three concerns, in increasing order of severity:
- Context bloat. Every subscribe call costs ~600 chars of conversation context for information the model already has (the tool's own response confirms subscription). In sessions that subscribe to several PRs, this compounds.
- Behavioral steering that can contradict project discipline. The "To start, check the current CI status and if there are any unresolved review comments" instruction is a polling nudge. Some teams have explicit project-level discipline that says the opposite — trust the subscription stream, do not poll after subscribing, because polling immediately after subscribe causes double-fetches and adds noise that the subscription itself is designed to deliver only on real events. When the injected text disagrees with
CLAUDE.md, the model has to either ignore the injected nudge (and the model's training pushes back on ignoringIMPORTANTsystem instructions) or violate project norms.
- No control surface. Exhaustive search of
https://code.claude.com/docs/en/{settings,env-vars,hooks,channels-reference}finds no setting, env var, hook event, or MCP config that affects this text.CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=1shortens the static system prompt but does not touch dynamic webhook-activity injection. Hooks (per the hooks reference) cannot intercept server-pushed events at all —PreToolUse/PostToolUseoperate on tool invocations,MessageDisplayis display-only (transcript retains the original), and there is noWebhookActivityInjectionevent.
Requested
Any one of these would be sufficient:
- A.
settings.jsonkey (e.g.githubMcp.subscriptionWakeMessage: "off" | "minimal" | "full" | "<custom string>") controlling the injected content. - B. Env var (e.g.
CLAUDE_CODE_GITHUB_MCP_DISABLE_WAKE_MESSAGE=1) for the same. - C. Hook coverage of server-pushed
<github-webhook-activity>events so projects can write their own interceptor — closes the broader gap, not just this one. - D. A
disable-default-instructionsflag onsubscribe_pr_activity's tool input so callers opt out per-invocation.
Preference order is A > C > B > D; A is the least intrusive change and the easiest to discover. C is the most powerful and would close the same gap for any future server-pushed event.
Adjacent issues (none track this specifically)
- #62561 — subscribe drops
check_runcompletion events. Names the confirmation event; doesn't discuss its text. - #62928 — PR monitoring no-op on commit-status-only repos.
- #50555 — subscription permissions, stale.
- #56563 — system prompt forces
ghCLI even when github MCP is active. Closest in spirit (static system-prompt text contradicting user preferences); about a different text block. - #62381 — undocumented server-side system-prompt experiments; mentions
CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT.
Reproducer
In any Claude Code session with the github MCP server enabled:
- Call
mcp__github__subscribe_pr_activityon any PR. - Observe the tool returns
Subscribed to activity on <owner>/<repo>#<N>. .... - On the next turn, a
<github-webhook-activity>event arrives containing the templated text above. - There is no way to prevent step 3.
Environment
- Claude Code version: 2.1.159
- Surface: web container (cloud_default)
Affects all surfaces that bundle the github MCP server.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗