Claude Code 2.1.318: IDE extension stops auto-installing, MCP denylist tightens
2.1.318 stops Claude Code from auto-installing the IDE extension in integrated terminals, closes a gap in deniedMcpServers URL matching, and fixes 47 bugs.
Claude Code 2.1.318, released November 4, 2026, packs eleven additions, eleven changes, fifteen improvements and forty-seven bug fixes. Two changes stand out because they hit your daily workflow directly: Claude Code stops installing or updating the IDE extension on its own when you start it from an integrated terminal, and URL-based MCP server blocking now reaches connectors that cloud sessions and self-hosted runners could previously only block by name, a weaker guarantee. The rest of the release, mostly reliability fixes around network home directories and cloud sessions, fits in one paragraph.
The IDE extension no longer installs itself
Until now, starting claude from your editor's integrated terminal could install or update the IDE extension along the way. 2.1.318 removes that automatic install and update when Claude Code starts from an integrated terminal, and the IDE integrations doc now spells it out: "Starting claude doesn't install the extension. Without it, /ide in the integrated terminal reports 'No available IDEs detected' and /status shows the IDE as 'Not connected'." The normal path the doc describes therefore assumes the extension is already there: "Integrated terminal: install the extension, then start claude. The CLI connects automatically."
To connect the session, you now need an external terminal and /ide, which installs the extension if VS Code is running without it, unless you've turned off autoInstallIdeExtension, or you install it by hand from your editor's extensions view. If your habit was to open the integrated terminal and just type claude, expect this extra step the first time on each machine.
deniedMcpServers closes a gap on connectors
The deniedMcpServers setting blocks an MCP server by URL, command, or name, and applies to every source, including claude.ai connectors and servers an organization provides. But the doc is blunt about name-based entries: "the name is the label a user assigns when running claude mcp add or editing a config file, not the underlying server, so a user can call any server github." Blocking by URL is the robust version, immune to a rename.
2.1.318 extends URL matching to two cases. A serverUrl entry now also blocks Anthropic-provided servers whose upstream URL matches. And in cloud sessions and on self-hosted runners, where the session is given the connector's own URL, a serverUrl entry now blocks that connector. Outside those contexts, the changelog is explicit: "otherwise deny a connector by name." If your organization relies on deniedMcpServers to shut off specific servers from cloud sessions or self-hosted runners, check that your entries are serverUrl ones and not just serverName: that's the robust method in those two contexts. Everywhere else, keep the name-based entry the changelog recommends for each connector you want blocked.
Everything else
Four bug fixes are worth naming. --continue no longer loses the earlier conversation after a malformed tool call's retries run out, a regression from 2.1.314. macOS sessions running many Bash commands in parallel no longer stall as memory grows. A key pressed just after sending a message, or before a slow permission prompt appears, no longer answers that prompt, which could approve an action you never actually saw. And workflows resuming after a usage limit no longer re-run agents that had already finished.
On shared network home directories, ~/.claude.json, settings files and the stored login are less often deleted, emptied or replaced by an older copy, and /logout or claude mcp remove no longer report success when the config file couldn't be written. On the networking side, every connection used to fail when the NODE_EXTRA_CA_CERTS file was empty, not valid PEM, or started with a damaged certificate: Claude Code now uses the readable certificates, with a warning on stderr, instead of blocking everything. In cloud sessions, you can now start without picking a repository, and tools other than Playwright, like Puppeteer, can find the built-in Chromium through the usual Chrome names. claude auth status and claude -p JSON results now show when a stored claude.ai sign-in expires, with a warning ten days out in -p mode, so you don't get logged out by surprise. When "Switch models when a message is flagged" is set to "Ask each time", subagents now stop instead of switching models, and a background subagent moves its shell command to the background after three minutes so it doesn't lose the prompt cache. The rest, enterprise Claude apps gateway, self-hosted runners, Remote Control, VS Code, Claude Tag, is administrative or narrowly scoped.
Pierre Rondeau
Developer and indie builder. I build products and automations with AI. Creator of Claude Hub.
LinkedIn