What changed
Previous versions matched MCP permission rules permissively โ mcp__a in a permission entry could implicitly allow servers whose names contained a as a segment (e.g., a__b). v2.1.299 changes this: allow rules now reach only the server they explicitly name. In addition, MCP connections over HTTP no longer follow HTTP redirects (connector redirects unaffected), and the default MCP protocol version for cloud/Remote Control connectors is now 2026-07-28 (opt out with MCP_PROTOCOL_NEGOTIATION=legacy). Tool descriptions from Anthropic first-party MCP servers at api.anthropic.com are no longer truncated at 4,096 characters.
TL;DR
Claude Code v2.1.299 (Oct 14) makes MCP permission scoping strict-by-default, removes HTTP redirect following from MCP transports, upgrades default protocol negotiation to 2026-07-28, and ships ~15 sandbox security fixes โ any project relying on loose MCP permission wildcards will silently break.
Developer signal
Audit your settings.json and .claude/settings.json today. Look for any allowedTools, mcpServers, or permissions entries containing mcp__<name> patterns. Under the old behavior, mcp__myserver in a permission rule could match myserver__tool or myserver_other via substring logic. After v2.1.299, it only matches the server literally named myserver. To match all tools on a server, you must now use mcp__<server>__* with the full normalized server name. The protocol upgrade to 2026-07-28 is opt-out (MCP_PROTOCOL_NEGOTIATION=legacy), but any MCP server that doesn't support the newer protocol version will need to be tested. The HTTP redirect removal is a security hardening measure โ if your MCP server relies on HTTP redirects for load-balancing or routing, you'll see connection failures. Separately, multiple sandbox security fixes close real attack surfaces: glob rules with braces/parentheses/backslashes were being parsed differently by Claude Code's policy checker vs. the actual sandbox (meaning intended-deny rules weren't enforced), and allowRead/allowWrite globs weren't re-checked when their base directory was replaced by a symlink. These were exploitable by a malicious tool or sandboxed command.