MCP Servers No Longer Need a Second Flag to Do Anything
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:
| Old | New |
|---|---|
tools.allowed_tools | tools.allowed |
tools.restricted_tools | tools.restricted |
tools.blocked_tools | tools.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 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.
