服务器管理协议服务

aaPanel MCP Server是一个通过AI助手管理aaPanel/BT Panel服务器的模型上下文协议服务,提供Docker管理、PM2管理、SSL证书管理、数据库管理、系统监控和服务管理等功能。

  • by ReputationRx
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ReputationRx/mcp-aapanel

使用说明

aaPanel MCP服务器

模型上下文协议(MCP)服务器,用于通过AI助手管理aaPanel/BT Panel服务器。

特性

  • 🐳 Docker管理 -启动、停止、重新启动和监视容器
  • 📦 PM2管理 -管理Node.js应用程序
  • 🔒 SSL证书管理 -列出、检查状态和续订证书
  • 💾 数据库管理 -创建数据库,列出数据库,设置Drupal
  • 📊 系统监控 -资源使用情况、系统信息、服务状态
  • 🔧 服务管理 -对所有服务进行统一控制
  • 🌐 网站管理 -列出并管理网站

安装

先决条件

  • Python 3.7+
  • aa已安装面板或BT面板
  • Docker(可选,用于容器管理)
  • PM2(可选,用于Node.js应用程序管理)

快速安装

# Clone or download this package
cd mcp-aapanel

# Run installer
chmod +x install.sh
./install.sh

手动安装

# 1. Install Python dependencies
pip3 install requests

# 2. Create config directory
mkdir -p ~/.aapanel

# 3. Configure API access
cat > ~/.aapanel/config.json <<EOF
{
  "url": "http://localhost:7800",
  "api_key": "YOUR_AAPANEL_API_KEY"
}
EOF

# 4. Get API key from aaPanel
# Settings → API → Generate/Copy API Key

# 5. Make server executable
chmod +x aapanel-mcp-server.py

配置

获取aaPanel API密钥

  1. 登录aaPanel web界面
  2. 首选 设置 → API
  3. 生成或复制API密钥
  4. 添加到 ~/.aapanel/config.json

环境变量(备选)

您可以使用环境变量代替配置文件:

export AAPANEL_URL="http://localhost:7800"
export AAPANEL_API_KEY="your_api_key_here"

用法

使用Cursor/Claude

添加到MCP配置中(通常 ~/.cursor/mcp.json 或类似):

{
  "mcpServers": {
    "aapanel": {
      "command": "python3",
      "args": ["/path/to/mcp-aapanel/aapanel-mcp-server.py"],
      "env": {
        "AAPANEL_URL": "http://localhost:7800",
        "AAPANEL_API_KEY": "your_api_key"
      }
    }
  }
}

直接使用

# Test the server
echo '{"method": "aapanel/get_system_info"}' | python3 aapanel-mcp-server.py

# Get resource usage
echo '{"method": "aapanel/get_resource_usage"}' | python3 aapanel-mcp-server.py

# List Docker containers
echo '{"method": "aapanel/get_docker_status"}' | python3 aapanel-mcp-server.py

可用方法

系统和资源

  • aapanel/get_system_info -获取系统信息(内存、磁盘、正常运行时间)
  • aapanel/get_resource_usage -获取当前资源使用情况(CPU、内存、磁盘、Docker)
  • aapanel/get_dashboard -获取全面的仪表板信息

Docker管理

  • aapanel/get_docker_status -获取Docker容器状态
  • aapanel/stop_container -停止Docker容器
  • aapanel/start_container -启动Docker容器
  • aapanel/restart_container -重启Docker容器

PM2管理

  • aapanel/get_pm2_status -获取PM2应用程序状态
  • aapanel/pm2_start -启动PM2应用程序
  • aapanel/pm2_stop -停止PM2应用程序
  • aapanel/pm2_restart -重新启动PM2应用程序
  • aapanel/pm2_logs -获取PM2应用程序日志

SSL管理

  • aapanel/get_ssl_list -获取SSL证书列表
  • aapanel/get_ssl_status -获取域的SSL证书状态
  • aapanel/renew_ssl -续订SSL证书

数据库管理

  • aapanel/create_database -创建MySQL数据库和用户
  • aapanel/list_databases -列出所有MySQL数据库
  • aapanel/setup_drupal_database -完成Drupal数据库设置

服务管理

  • aapanel/get_sites -获取网站列表
  • aapanel/restart_service -重新启动系统服务
  • aapanel/get_logs -从服务获取日志
  • aapanel/get_all_services_status -获取所有服务的状态
  • aapanel/service_manager -统一服务管理器

示例

创建数据库

{
  "method": "aapanel/create_database",
  "params": {
    "db_name": "my_database",
    "db_user": "my_user",
    "db_pass": "secure_password"
  }
}

设置Drupal数据库

{
  "method": "aapanel/setup_drupal_database"
}

这会自动:

  • 创建数据库 drupal_slideindm
  • 创建用户 drupal_user
  • 配置Drupal settings.php
  • 返回凭据

管理Docker容器

{
  "method": "aapanel/stop_container",
  "params": {
    "container_name": "my-container"
  }
}

获取PM2状态

{
  "method": "aapanel/get_pm2_status"
}

文件结构

mcp-aapanel/
├── README.md                 # This file
├── aapanel-mcp-server.py     # Main MCP server
├── install.sh                # Installation script
├── config.example.json       # Example configuration
├── setup.sh                  # Setup script
├── LICENSE                   # License file
└── docs/                     # Additional documentation
    ├── API.md               # API reference
    ├── EXAMPLES.md          # Usage examples
    └── TROUBLESHOOTING.md   # Troubleshooting guide

故障排除

“未配置API密钥”

请确保已在中设置API密钥 ~/.aapanel/config.json 或者作为环境变量。

“连接被拒绝”

检查aaPanel是否正在运行,并且可以在配置的URL上访问。

“权限被拒绝”

确保脚本可执行: chmod +x aapanel-mcp-server.py

Docker命令失败

确保Docker已安装,并且用户有权运行Docker命令。

安全说明

  • 确保API密钥的安全
  • 不要承诺 config.json 到版本控制
  • 在生产中使用环境变量
  • 如果可能,限制aaPanel中的API密钥权限

许可证

有关详细信息,请参阅LICENSE文件。

支持

对于问题和疑问:

  1. 查看故障排除指南
  2. 查看API文档
  3. 检查aaPanel日志: /www/server/panel/logs/

贡献

欢迎投稿!请确保:

  • 代码遵循Python PEP 8风格
  • 所有方法都有记录
  • 错误处理全面
  • 包括对新功能的测试

版本: 1.0.0
最后更新时间: 2025年11月