Skip to content
Agent Ops BriefAgent Ops Brief5 signals. 1 config. Weekdays.

← Agent Ops Brief

Sample Issue #0

Agent Ops Brief — Sample Issue #0

Theme: MCP is code. Headless runs don't get a trust prompt.

Date: Fri Oct 23, 2026 (America/New_York)
Stack coverage: Cursor · Claude Code · MCP · agent CI

Five operator signals from the last ~48 hours. Free readers get the brief. Operators get the paste-ready drop at the bottom.

1. An MCP server entry is a command (and three October CVEs prove it)

What happened. SpanDock walked through three advisories published mid-October: JetBrains Junie CLI (CVE-2026-111091), Z.ai ZCode (CVE-2026-88755), and Anthropic's Claude Agent SDK (GHSA-h4mw-j7qp-8mwm / CVE-2026-96620). Same mechanism: a stdio MCP entry is a program + args that the tool launches on your machine. In headless / -p / Agent SDK / CI runs, the interactive "approve this project's MCP servers" prompt often never appears.

Why operators care. If your CI agent checks out a PR branch and loads .mcp.json (or an SDK resume ID you don't control), you may be running attacker-chosen commands with your credentials. The Claude Agent SDK fix shipped in July; the CVE published in October — CVE-chasers were months behind.

Action. Inventory every non-interactive agent job. Upgrade Claude Agent SDK to Python ≥0.2.124 / TypeScript ≥0.3.208. For Claude Code on untrusted branches, use --strict-mcp-config with an explicit allowlist (or --setting-sources that excludes project MCP). Treat every command in an MCP config like a script in the PR.

Sources: SpanDock write-up · Claude Code MCP docs


2. Claude Code 2.1.310 (Oct 23): Monitor tool + enterprise Remote Control gates

What happened. Claude Code 2.1.310 shipped today. Highlights for operators: Monitor tool and plugin monitors land on Bedrock/Vertex/Foundry (and when telemetry is off); long foreground sleeps are blocked there too. Cloud sessions / Remote Control permissions are now attachable to Enterprise custom roles. MCP tool timeouts in non-interactive sessions that leave an elicitation unanswered now tell Claude not to retry the call.

Why operators care. Enterprise teams can finally gate Remote Control / cloud sessions by role instead of org-wide on/off. The elicitation timeout fix stops headless agents from hammering a stuck MCP consent loop and burning tokens.

Action. Run claude --version. If you're on Enterprise, map Remote Control + cloud session perms into the roles that should actually have them. In CI, prefer fail-closed MCP behavior over silent reconnect thrash.

Source: Claude Code changelog


3. Cursor CLI v2026.10.22: nested AGENTS.md finally applies on edit

What happened. Cursor CLI v2026.10.22 (Oct 22) fixed a rules gap operators kept hitting: when the agent edits or creates a file in a subdirectory, it now sees that directory's AGENTS.md and nested always-apply rules — even if it never read a file there first. Same release: agent env deploy --env <public-id> redeploys an environment file onto an existing Cloud Agent environment; custom subagents whose pinned model is blocked now fall back to the parent model instead of hard-failing; MCP servers no longer hide all tools when one schema is invalid.

Why operators care. Monorepo rules that lived under packages/foo/AGENTS.md were easy to ignore mid-edit. Redeploying cloud envs without recreating them unblocks scripted fleet updates. Soft model fallback means one admin model-policy change doesn't brick every Task subagent overnight.

Action. Put package-local conventions in nested AGENTS.md (or .cursor/rules with globs). Pin Cloud Agent env public IDs in your deploy scripts and try agent env deploy --env …. Upgrade CLI: agent update.

Source: Cursor CLI changelog


4. Claude Code 2.1.309: sandbox can no longer rewrite your --mcp-config

What happened. In 2.1.309 (Oct 22), Claude Code fixed sandboxed commands being able to modify the MCP config file passed with --strict/--mcp-config. Same build: claude ultrareview now requires workspace trust (or --trust-workspace / an escape hatch env); dangerous rm/rmdir in bypass-permissions Desktop/VS Code is denied with a rewrite hint so unattended sessions keep moving.

Why operators care. If you thought the sandbox contained MCP allowlists, it didn't — until yesterday. Ultracode / ultrareview without trust is a footgun on cloned forks.

Action. Patch to ≥2.1.309 before the next unattended batch. Re-check any CI that mounts writable paths next to your MCP config. Prefer deny-by-default over bypass-permissions for overnight runs.

Source: Claude Code changelog — 2.1.309


5. Anthropic: formal verification at OSS-Fuzz scale (HN front page)

What happened. Anthropic published that Claude + Theorem produced machine-checked no-crash proofs for 239 OSS-Fuzz entry points across 123 libraries (modeled Linux / RISC-V, inputs under 64 MB, single-threaded assumptions). HN put it near the top of Oct 23 (~440 points). Claude also found and patched bugs, including CVE-2026-56132.

Why operators care. Not a "paste this tomorrow" feature — but it reframes what you ask agents to do on security-critical paths: prefer machine-checked claims over vibes when the harness exists. Also a reminder that agent-found CVEs are shipping in the wild; your dependency update loop should treat agent PRs like any other security PR.

Action. If you maintain C/C++ or fuzzed libraries, skim the post and decide whether a Theorem-style gate belongs after your agent proposes a fix, not instead of review. Don't outsource merge authority.

Sources: Anthropic research post · HN discussion


Operator config drop (paid teaser — full file below for Sample #0)

Week's theme file: headless Claude Code + Cursor rules that refuse project MCP unless you explicitly allow it.

Paste into .cursor/rules/mcp-headless-hygiene.mdc (Cursor) and mirror the shell wrapper for Claude Code CI.

---
description: MCP and headless agent hygiene — treat server entries as code
alwaysApply: true
---

# MCP / headless hygiene

- Treat every MCP `command` / args list as executable code. Review it in PRs like a shell script.
- Never tell the agent to "trust all project MCP servers" on a fork, PR branch, or untrusted checkout.
- Prefer an explicit allowlist of MCP servers for CI and `-p` / headless runs.
- If a task needs a new MCP server, stop and ask the human operator — do not invent `.mcp.json` entries.
- When editing files under a package directory, obey that package's `AGENTS.md` and nested rules.
- Do not modify MCP config files, credential stores, or `--mcp-config` targets from sandboxed or agent shell commands.

Claude Code CI wrapper (drop as scripts/claude-ci.sh):

#!/usr/bin/env bash
# Headless Claude Code on untrusted / PR checkouts — strict MCP only.
set -euo pipefail

# Only the servers YOU pass here load. Project .mcp.json is ignored under --strict-mcp-config.
STRICT_MCP_CONFIG="${STRICT_MCP_CONFIG:-$HOME/.config/claude/ci-mcp.json}"

if [[ ! -f "$STRICT_MCP_CONFIG" ]]; then
  echo "Missing $STRICT_MCP_CONFIG — create an allowlisted MCP config before CI agents run." >&2
  exit 1
fi

exec claude -p \
  --strict-mcp-config "$STRICT_MCP_CONFIG" \
  --setting-sources user \
  "$@"

Create ~/.config/claude/ci-mcp.json with only the servers your org actually wants in CI (often empty mcpServers: {} until you need one). Upgrade path checklist: Claude Code ≥2.1.309, Claude Agent SDK ≥0.2.124 / 0.3.208, Cursor CLI ≥2026.10.22.


Sample Issue #0 — Agent Ops Brief. Free weekday signals; Operator tier ($9 founding / $15) unlocks the week's paste-ready configs every issue.

Get the free weekday brief

Same signal format as Sample #0. Config Drops stay on Operator.

Weekdays. No card. Unsubscribe anytime. Config Drops stay on Operator.

Want the paste-ready Config Drop every weekday? Founding checkout opens when ready.

Get the free brief