Ansible Development Tools MCP Server 是一个把 Ansible 工具链暴露给 AI 助手的协议服务器。配置完成后,Claude / Copilot / Cursor / Gemini 就能直接帮你跑 lint、建脚手架、执行 Playbook,告别手动粘贴报错。


背景:AI 助手的"工具盲区"

用过 AI 编程助手的人都有一个体感:它能生成还算像样的 Ansible Playbook,但对你本地环境的状态一无所知。版本对不上?报错信息要你自己贴过去?lint 要自己跑完再复制输出?

这些摩擦点的根源在于:AI 只会"看",不会"摸"——它没有直接操作工具的通道。

Model Context Protocol(MCP) 就是为了打通这个通道而生的。它是一套开放协议,定义了 AI 应用如何与外部工具、数据源标准化交互。而 Ansible Development Tools MCP Server(以下简称 ADT MCP Server)就是 Ansible 官方基于这套协议实现的工具集成层。


ADT MCP Server 能做什么?

配置好之后,你的 AI 助手会获得以下能力:

📖 信息与文档

  • 查询 Ansible 设计哲学(Zen of Ansible)
  • 获取 最佳实践指南
  • 列出所有可用的 MCP 工具

🛠 环境管理

  • 检查当前环境的 Python / Ansible / ADT 版本
  • 自动配置虚拟环境并安装依赖
  • 安装和验证 Ansible Development Tools

🏗 项目脚手架

  • 生成符合规范结构的新 Playbook
  • 创建完整的 Collection 骨架

✅ 代码质量

  • 运行 ansible-lint 并支持自动修复
  • 创建和验证 Execution Environment 定义

▶️ Playbook 执行

  • 通过 ansible-navigator 执行 Playbook,带智能环境检测和容器管理

架构一览

ADT MCP Server 以子进程方式运行,通过 stdio 传输与 AI 客户端通信,协议为 JSON-RPC 2.0:

┌─────────────────┐
│  AI 助手 / IDE  │
└────────┬────────┘
         │ MCP Protocol
         │ (JSON-RPC 2.0)
┌────────▼──────────────────┐
│  Ansible Dev Tools        │
│     MCP Server            │
└────────┬──────────────────┘
         │
    ┌────┴────┐
    │         │
┌───▼───┐ ┌──▼──────┐
│Ansible│ │ Ansible │
│ Tools │ │  APIs   │
└───────┘ └─────────┘

AI 助手发出请求 → MCP Server 翻译成对 Ansible 工具链的实际调用 → 返回结构化结果给 AI → AI 解读后给出回答或操作。


快速上手

⚠️ ADT MCP Server 目前处于 Technical Preview 阶段。

环境要求

组件 最低版本
Python 3.11+
Node.js(npm 方案) 24+
Docker / Podman(容器方案) 任意近期版本

两种运行方式

方案 A:npm 包(推荐,有 Node.js 时最简单)
npx -y @ansible/ansible-mcp-server --stdio
方案 B:容器镜像(无需 Node.js)
docker run --rm -i \
  -v /your/ansible/project:/workspace \
  -e WORKSPACE_ROOT=/workspace \
  ghcr.io/ansible/devtools-mcp-server:latest --stdio

支持的镜像 tag:latest、语义版本(1.2.31.2)、Git SHA。


各 AI 客户端配置详解

Claude Desktop

配置文件位置:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux:~/.config/Claude/claude_desktop_config.json

npm 方案:

{
  "mcpServers": {
    "ansible": {
      "command": "npx",
      "args": ["-y", "@ansible/ansible-mcp-server", "--stdio"],
      "env": {
        "WORKSPACE_ROOT": "/path/to/your/ansible/project"
      }
    }
  }
}

容器方案:

{
  "mcpServers": {
    "ansible": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-v", "/path/to/your/ansible/project:/workspace",
        "-e", "WORKSPACE_ROOT=/workspace",
        "ghcr.io/ansible/devtools-mcp-server:latest",
        "--stdio"
      ]
    }
  }
}

把 docker 换成 podman 即可使用 Podman。如果只需只读访问,可在 volume 后加 :ro


Claude Code(命令行)

# npm 方案
claude mcp add ansible -- npx -y @ansible/ansible-mcp-server --stdio

# 容器方案
claude mcp add ansible -- docker run --rm -i \
  -v /path/to/your/ansible/project:/workspace \
  -e WORKSPACE_ROOT=/workspace \
  ghcr.io/ansible/devtools-mcp-server:latest --stdio

不传 WORKSPACE_ROOT 时默认使用当前目录。


VS Code(Copilot Chat)

在用户或工作区的 settings.json 中添加:

npm 方案:

{
  "mcp": {
    "servers": {
      "ansible": {
        "command": "npx",
        "args": ["-y", "@ansible/ansible-mcp-server", "--stdio"],
        "env": {
          "WORKSPACE_ROOT": "${workspaceFolder}"
        }
      }
    }
  }
}

${workspaceFolder} 会自动解析为当前打开项目的根目录,无需硬编码路径。


Cursor IDE

使用 Ansible VS Code 扩展时最省事: MCP Server 会自动启动,只需在设置中开启:

{
  "ansible.mcpServer.enabled": true
}

不使用扩展时(独立配置): 在项目根目录创建 .cursor/mcp.json

{
  "mcpServers": {
    "ansible": {
      "command": "npx",
      "args": ["-y", "@ansible/ansible-mcp-server", "--stdio"],
      "env": {
        "WORKSPACE_ROOT": "."
      }
    }
  }
}

Gemini CLI

在 .gemini/settings.json 中添加:

{
  "mcpServers": {
    "ansible": {
      "command": "npx",
      "args": ["-y", "@ansible/ansible-mcp-server", "--stdio"],
      "env": {
        "WORKSPACE_ROOT": "/path/to/your/ansible/project"
      }
    }
  }
}

IBM Bob IDE / Shell

全局配置 ~/.bob/mcp_settings.json 或项目级 .bob/mcp.json,格式与上面相同。


环境变量参考

变量 说明 默认值
WORKSPACE_ROOT Ansible 项目目录路径 .(当前目录)
NODE_OPTIONS 额外的 Node.js 标志(仅 npm 方案)

验证服务器是否正常启动

配置完成后,可用下面的命令手动测试:

npm 方案:

echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0.1"}}}' \
  | npm exec -- ansible-mcp-server --stdio

容器方案:

echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0.1"}}}' \
  | docker run --rm -i ghcr.io/ansible/devtools-mcp-server:latest --stdio

如果响应包含 "serverInfo" 且其中 "name": "ansible-mcp-server",则服务器工作正常。


实际能带来哪些改变?

对比传统 Ansible 开发流程和接入 MCP 后的体验:

场景 传统方式 接入 ADT MCP Server
lint 报错 手动跑 ansible-lint,复制输出粘贴给 AI AI 直接调用 lint 工具,拿到结构化结果自动分析
新建 Collection 记命令、查文档 让 AI 直接生成规范骨架
环境问题排查 手动 ansible --version,逐一粘贴 AI 自动检查整个环境状态并给出建议
执行 Playbook 手动跑、看输出、再问 AI AI 执行并实时解读输出
了解最佳实践 翻文档 直接问 AI,AI 可查询官方规范回答

小结

ADT MCP Server 的意义不只是"又一个 AI 插件"——它代表了一种方向:AI 助手从"问答式"升级为"操作式"

当 AI 能直接感知你的项目状态、执行工具、读取真实输出,它给出的建议就不再是空中楼阁,而是立足于你的实际环境。对 Ansible 用户来说,这意味着更少的上下文切换、更快的问题定位、更高质量的自动化代码。

目前该功能处于 Technical Preview,配置和 API 可能还会变动,但现在就值得上手体验。


参考链接:

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐