Token导航 LogoToken导航TokenDH.com
MCP Ansible Drupal logo
运维云端未说明官方级别未说明来源级核验

MCP Ansible Drupal

MCP Server

MCP-Ansible-Drupal是一个智能自动化服务器,通过Ansible实现Drupal部署工作流的自动化,支持从初始设置到生产发布的完整生命周期管理,并通过自然语言交互进行操作。

工具数

8

提示词数

0

GitHub Stars

0

资源数

0
自动化部署自然语言交互TypeScriptClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

webfer

提供方

webfer

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

🚀 MCP Ansible Drupal

使用Ansible自动化Drupal部署工作流的模型上下文协议(MCP)服务器

](https://www.npmjs.com/package/@webfer/mcp-ansible-drupal) ![License: MIT](https://opensource.org/licenses/MIT)

MCP Ansible Drupal 是一个智能自动化服务器,将AI助手与Ansible驱动的Drupal部署连接起来。它提供了一套全面的工具,通过自然语言交互来管理从初始设置到生产发布的整个部署生命周期。

🔗 与无缝协作 醉酒 -Drupal的基于Ansible的部署框架。这个MCP服务器提供了一个智能界面,通过人工智能助手控制DrupAnsible剧本,使DevOps工作流程变得对话式和可访问。

______________________________________________________________________

📋 目录

______________________________________________________________________

✨ 特性

🔄 部署管理

  • 安装/更新部署:对临时/生产执行初始安装或增量更新
  • 零停机释放:利用Ansistrano实现具有回滚功能的无缝部署
  • 资产同步:主题、图像和静态文件的可选资产部署
  • 数据库操作:自动导入、备份和更新数据库

🔐 保险库安全

  • 加密配置:用于安全凭证管理的Ansible Vault集成
  • 加密/解密工具:直接从您的AI助手进行安全的vault文件管理
  • 环境隔离:用于暂存和生产环境的单独vault文件

📊 监控和日志

  • 实时部署流媒体:部署执行期间的实时进度更新
  • 日志管理:自动日志轮换(保留最后3次部署)
  • 部署历史记录:查询最近的部署日志以进行故障排除

🎛️ 工作流程自动化

  • 存储库克隆:自动DrupAnsible存储库设置
  • 配置转移:将Ansible文件智能移动到项目根目录
  • 清理作业:自动删除临时文件和目录

🤖 AI原生设计

  • 自然语言控制:通过对话执行复杂的部署工作流
  • 交互式确认:破坏性操作的安全提示
  • 上下文感知响应:每一步都有详细的反馈

______________________________________________________________________

🎯 什么是MCP?

模型上下文协议(MCP) 是一个开放标准,使AI助手(如Claude、ChatGPT)能够安全地与外部工具和数据源进行交互。将其视为一个通用适配器,让AI模型:

  • 🔧 执行系统操作
  • 📁 访问文件系统
  • 🌐 与API交互
  • 🚀 触发部署管道

该项目实现了一个专门为Drupal/Ansible工作流设计的MCP服务器,使DevOps任务具有对话性和可访问性。

______________________________________________________________________

🏗️ 建筑

┌─────────────────────────────────────────────────────────────┐
│                     AI Assistant (Claude)                    │
│                  Natural Language Interface                  │
└────────────────────────┬────────────────────────────────────┘
                         │ MCP Protocol
┌────────────────────────▼────────────────────────────────────┐
│               MCP-Ansible-Drupal Server                      │
│  ┌──────────────────────────────────────────────────────┐   │
│  │  Tools Layer                                          │   │
│  │  • cloneRepository    • validateDeploy               │   │
│  │  • ansibleSetup       • executeDeployment            │   │
│  │  • decryptVaultFile   • encryptVaultFile             │   │
│  │  • getDeploymentLogs  • ansibleCleanup               │   │
│  └──────────────────────────────────────────────────────┘   │
│  ┌──────────────────────────────────────────────────────┐   │
│  │  Helpers Layer                                        │   │
│  │  • confirmFirstDeployment  • runAnsible               │   │
│  │  • generateSkipTags        • resolveProjectPaths      │   │
│  └──────────────────────────────────────────────────────┘   │
└────────────────────────┬────────────────────────────────────┘
                         │ Shell Commands
┌────────────────────────▼────────────────────────────────────┐
│                    Ansible Playbooks                         │
│  ┌──────────────────────────────────────────────────────┐   │
│  │  • stage-deploy.yml   • live-deploy.yml               │   │
│  │  • rollback.yml       • Ansistrano tasks              │   │
│  └──────────────────────────────────────────────────────┘   │
└────────────────────────┬────────────────────────────────────┘
                         │ SSH/rsync
┌────────────────────────▼────────────────────────────────────┐
│                 Drupal Application Server                    │
│              (Staging / Production Environment)              │
└─────────────────────────────────────────────────────────────┘

关键组件

1.服务器层 (src/server.ts)

  • MCP协议处理程序
  • 工具注册和布线
  • 请求/响应管理
  • 交互式确认流程

2.工具层 (src/tools/)

  • 部署工具: executeDeployment.ts, validateDeployTool.ts
  • Vault工具: decryptVaultTool.ts, encryptVaultTool.ts
  • 设置工具: cloneRepositoryTool.ts, ansibleSetupTool.ts
  • 实用工具: getDeploymentLogs.ts, generateSkipTags.ts

3.辅助层 (src/helpers/)

  • 部署确认工作流
  • 可执行的命令
  • 路径解析和验证

4.可靠的集成

  • 战术:位于 ansible/core/ 目录
  • 库存:中的环境特定配置 ansible/core/inventories/
  • Vault文件:每个环境的加密凭据

______________________________________________________________________

📦 安装

先决条件

  • Node.js 18+
  • TypeScript 5.2+
  • 安塞波 2.x
  • Git

快速开始

推荐:通过NPM从以下位置安装 以获得最佳体验和自动更新。
# 1. Install the package (RECOMMENDED)
npm install @webfer/mcp-ansible-drupal

# 2. Alternative: Build from source (for development only)
git clone https://github.com/webfer/MCP-Ansible-Drupal.git
cd MCP-Ansible-Drupal
npm install
npm run build

# 3. Configure your MCP client
# Add to your MCP settings (e.g., Claude Desktop config):

Claude桌面配置 (claude_desktop_config.json):

{
  "mcpServers": {
    "mcp-ansible-drupal": {
      "command": "node",
      "args": ["/path/to/MCP-Ansible-Drupal/dist/server.js"],
      "cwd": "/path/to/your/drupal-project"
    }
  }
}

______________________________________________________________________

🔧 配置

项目结构要求

你的Drupal项目应该有这样的结构:

your-drupal-project/
├── ansible/
│   ├── core/
│   │   ├── stage-deploy.yml
│   │   ├── live-deploy.yml
│   │   └── inventories/
│   │       ├── stage/
│   │       │   ├── inventory.yml
│   │       │   └── group_vars/
│   │       │       ├── server.yml (encrypted)
│   │       │       └── deploy_vars.yml
│   │       └── live/
│   └── tmp/
│       └── logs/
├── vault_pass.txt (git-ignored!)
├── composer.json
└── web/ (Drupal root)

Vault密码文件

创建 vault_pass.txt 在项目根目录中:

echo "your-secure-password" > vault_pass.txt
chmod 600 vault_pass.txt

⚠️ 重要:添加到 .gitignore!

Ansible Vault文件

加密敏感数据:

ansible-vault encrypt ansible/core/inventories/stage/group_vars/server.yml \
  --vault-password-file vault_pass.txt

______________________________________________________________________

🎮 可用工具

1️⃣ 存储库设置

cloneRepository

克隆DrupAnsible基础存储库以引导您的项目。

参数:

  • repoUrl (字符串):存储库URL(默认值: https://github.com/webfer/drupansible.git)

提示示例(正常工作):

Clone the DrupAnsible repository to get started with the setup.

______________________________________________________________________

ansibleSetup

将Ansible配置文件从临时目录移动到项目根目录。

参数:

提示示例(正常工作):

Run ansible setup to configure the project files.

______________________________________________________________________

ansibleCleanup

安装后删除临时文件和目录。

参数:

提示示例(正常工作):

Clean up the temporary deployment files.

______________________________________________________________________

2️⃣ 部署操作

validateDeploy

执行前验证部署配置。

参数:

  • environment (字符串): stage | live
  • action (字符串): install | update
  • withAssets (布尔值):包括资产同步

提示示例(正常工作):

Validate the deployment configuration for staging environment with install action.

______________________________________________________________________

executeDeployment

执行Ansible部署手册。

参数:

  • environment (字符串): stage | live | production
  • action (字符串): install | update
  • withAssets (boolean):部署资产(默认值: false)
  • confirmAnswer (字符串): yes | no (用于安装确认)

提示示例(正确工作):

Run initial deployment to staging environment.
Execute update deployment to production with assets included.

安装流量:

User: "Deploy fresh install to stage"
MCP:  "⚠️ This will overwrite existing code. Continue? (yes/no)"
User: "yes"
MCP:  "✅ Proceeding with deployment..."
      [Live deployment logs stream here]

______________________________________________________________________

3️⃣ 保管库管理

decryptVaultFile

解密Ansible Vault文件以供查看/编辑。

参数:

  • environment (字符串): stage | live

提示示例(正常工作):

Decrypt the stage server vault file so I can review the configuration.

______________________________________________________________________

encryptVaultFile

修改后重新加密Ansible Vault文件。

参数:

  • environment (字符串): stage | live

提示示例(正常工作):

Encrypt the stage vault file after my changes.

______________________________________________________________________

4️⃣ 监控

getDeploymentLogs

检索最近的部署日志。

参数:

  • lines (number):要返回的行数(默认值:50)

提示示例(正常工作):

Show me the last 100 lines of the deployment logs.

______________________________________________________________________

📚 使用示例

完整工作流示例

User: "Set up a new Drupal deployment environment"

1. MCP clones DrupAnsible repository
2. MCP moves configuration files to project root
3. MCP cleans up temporary directories

User: "Configure staging credentials"

4. MCP decrypts stage vault file
5. [User edits file with credentials]
6. MCP encrypts vault file

User: "Deploy to staging"

7. MCP validates configuration
8. MCP asks for confirmation
9. User confirms "yes"
10. MCP executes deployment with live streaming
11. Deployment completes successfully

User: "Show deployment logs"

12. MCP displays recent deployment logs

更新部署

User: "Update staging with latest code changes"

MCP: "✅ Executing update deployment..."
     [Streaming logs]:
     🔸 TASK [Rsync code to server]
     🟡 changed: [stage]
     🔸 TASK [Import configuration]
     🟡 changed: [stage]
     🔸 TASK [Run database updates]
     🟡 changed: [stage]
     🔸 TASK [Clear cache]
     🟡 changed: [stage]
     ✅ Deployment completed: 45 tasks, 18 changes

______________________________________________________________________

🔐 安全

最佳实践

  1. 从不提交保管库密码
   echo "vault_pass.txt" >> .gitignore
  1. 使用强保管库密码
   openssl rand -base64 32 > vault_pass.txt
  1. 定期轮换保管库密码
   ansible-vault rekey group_vars/server.yml
  1. 限制MCP服务器权限

- 以最低用户权限运行 - 限制文件系统访问 - 部署时使用SSH密钥身份验证

  1. 审核部署日志

- 日志存储在 ansible/tmp/logs/ - 安全事件审查 - 自动旋转(保持最后3个)

______________________________________________________________________

🛠️ 发展

项目结构

MCP-Ansible-Drupal/
├── src/
│   ├── server.ts              # MCP server entry point
│   ├── tools/                 # MCP tool implementations
│   │   ├── executeDeployment.ts
│   │   ├── validateDeployTool.ts
│   │   ├── decryptVaultTool.ts
│   │   ├── encryptVaultTool.ts
│   │   └── ...
│   ├── helpers/               # Utility functions
│   │   ├── confirmFirstDeployment.ts
│   │   ├── runAnsible.ts
│   │   └── ...
│   ├── prompts/               # User interaction prompts
│   └── types/                 # TypeScript type definitions
├── ansible/                   # Ansible playbooks & config
│   └── core/
│       ├── stage-deploy.yml
│       ├── live-deploy.yml
│       ├── inventories/
│       └── tasks/
├── dist/                      # Compiled JavaScript
├── package.json
├── tsconfig.json
└── README.md

建筑

# Compile TypeScript
npm run build

# Watch mode for development
npm run watch

# Run the server
npm start

添加新工具

  1. 在中创建工具文件 src/tools/:
export class MyCustomTool {
  name = 'myCustomTool';
  description = 'Does something useful';

  async run(args: any) {
    // Tool implementation
    return { content: [{ type: 'text', text: 'Result' }] };
  }
}
  1. 注册 src/server.ts:
import { MyCustomTool } from './tools/myCustomTool.js';

server.setRequestHandler(ListToolsRequestSchema, async () => ({
  tools: [
    {
      name: 'myCustomTool',
      description: 'Does something useful',
      inputSchema: {
        /* JSON Schema */
      },
    },
  ],
}));

测试

# Run tests (when available)
npm test

# Manual testing with Claude Desktop
# Check logs in:
# - macOS: ~/Library/Logs/Claude/mcp*.log
# - Windows: %APPDATA%\Claude\logs\mcp*.log

______________________________________________________________________

🤝 贡献

欢迎投稿!拜托:

  1. 复刻仓库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交更改(git commit -m 'Add amazing feature')
  4. 推送到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

代码规范

  • 遵循现有的TypeScript约定
  • 为公共API添加JSDoc注释
  • 包括错误处理
  • 更新README以获取新功能

______________________________________________________________________

📄 许可证

MIT许可证-请参阅 许可证 详细信息文件

由...开发 费尔南多·卡斯特罗(韦弗饰)

______________________________________________________________________

🔗 链接

______________________________________________________________________

💬 支持

  • 🐛 问题:
  • 💡 讨论:
  • 📧 联系: 领英

______________________________________________________________________

⭐ 如果你觉得这个项目有用,就把它当明星吧!

由...制作❤️ Drupal和DevOps社区

目录标签

目录标签

自动化部署自然语言交互TypeScriptClaude本地部署Drupal管理Ansible集成DevOps工具

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP