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密钥
- 登录aaPanel web界面
- 首选 设置 → API
- 生成或复制API密钥
- 添加到
~/.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文件。
支持
对于问题和疑问:
- 查看故障排除指南
- 查看API文档
- 检查aaPanel日志:
/www/server/panel/logs/
贡献
欢迎投稿!请确保:
- 代码遵循Python PEP 8风格
- 所有方法都有记录
- 错误处理全面
- 包括对新功能的测试
______________________________________________________________________
版本: 1.0.0\ 最后更新时间: 2025年11月
