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.

Try it out​

Copy the example into a new directory and make it your own:

atmos init examples/mcp-for-ai-coding-assistants
cd mcp-for-ai-coding-assistants

Inspect the MCP configuration before exporting it to your coding assistant. The README covers server dependencies and client setup.

atmos mcp export

See AI Tools Configuration for the full reference.

For usage and configuration, see MCP.