Skip to main content

MCP Servers No Longer Need a Second Flag to Do Anything

· 3 min read
Erik Osterman
Founder @ Cloud Posse

You set mcp.enabled: true, ran atmos mcp start, and got: failed to initialize AI components: tools are disabled. MCP was on. Why did anything else need to be "enabled" for a command whose entire job is exposing tools?

The Problem

ai.tools.enabled was designed for atmos ai chat/ask/exec — Atmos's own assistant deciding whether it's allowed to call tools during a conversation. atmos mcp start reused that same flag as a hard gate, even though the MCP server has nothing to do with Atmos's own chat loop: its only job is exposing Atmos tools to external clients like Claude Desktop or Cursor. mcp.enabled: true was already the explicit, purpose-built opt-in for that — requiring a second, differently-named flag on top of it just to get a non-empty server was pure friction, not safety.

The Fix

atmos mcp start no longer checks ai.tools.enabled at all. Once mcp.enabled: true, tools register unconditionally — ai.tools.enabled now only governs atmos ai chat/ask/exec's own tool-use loop, which is what it was always meant for.

While in there, we also renamed three related settings for consistency. They're already nested under tools:, so the _tools suffix was redundant:

OldNew
tools.allowed_toolstools.allowed
tools.restricted_toolstools.restricted
tools.blocked_toolstools.blocked

tools.allowed also picked up a second job. Previously it only skipped the confirmation prompt — every tool was still registered and callable, just some needed a "yes" first. Now, when non-empty, it also controls which tools exist at all: unlisted tools aren't registered, aren't visible in tools/list, and aren't offered to the AI. An empty or unset list still means "everything is registered, subject to normal confirmation rules" — unchanged.

How to Use It

atmos.yaml
mcp:
enabled: true

ai:
enabled: true
tools:
# Optional -- omit entirely for a fully-populated MCP server.
# When set, ONLY these are registered, and they skip confirmation:
allowed:
- atmos_describe_*
- atmos_list_*
blocked:
- execute_bash_command
atmos mcp start

No ai.tools.enabled required.

Breaking Change

tools.allowed_tools, tools.restricted_tools, and tools.blocked_tools are no longer read — there's no fallback or deprecation warning, just the new names. If your atmos.yaml sets any of these under ai.tools, rename them before upgrading. If you were relying on allowed_tools to skip confirmation for a subset of tools while still allowing everything else to run with a prompt, note the semantics changed: an unlisted tool is no longer registered at all. Move it to an empty allowed (or drop the list) and lean on restricted/blocked instead.

See AI Tools Configuration for the full reference.