用 MCP 让 AI 真正“懂“ Ansible:ADT MCP Server 完全指南
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.3、1.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 可能还会变动,但现在就值得上手体验。
参考链接:
- 官方文档:Ansible Development Tools MCP Server - Ansible VS Code Extension
- npm 包:@ansible/ansible-mcp-server
- 容器镜像:
ghcr.io/ansible/devtools-mcp-server - MCP 协议:What is the Model Context Protocol (MCP)? - Model Context Protocol
更多推荐



所有评论(0)