mcp_btpanel

这是一个基于MCP协议开发的宝塔面板API接口工具,可以通过MCP协议与宝塔面板API进行交互

GitHubスター

5

ユーザー評価

未評価

お気に入り

0

閲覧数

11

フォーク

1

イシュー

0

README
宝塔面板 MCP 接口

这是一个基于MCP协议开发的宝塔面板API接口工具,可以通过MCP协议与宝塔面板API进行交互。

功能特性
  • 获取面板系统信息和网络状态
  • 查询PHP网站列表
  • 创建新的PHP网站
  • 查询MySQL数据库列表
  • Docker容器管理
    • 查看容器列表
    • 查看容器详细信息
  • Docker镜像管理
    • 查看本地镜像列表
  • 邮箱管理
    • 添加邮箱账户
    • 查看邮件列表
  • 获取面板公共配置信息
  • 更多功能持续开发中...
环境要求
  • Go 1.18+
  • 宝塔面板API访问权限
  • 宝塔面板API令牌
安装
从源码安装
# 克隆仓库
git clone https://cnb.cool/btpanel/mcp_btpanel.git
cd mcp_btpanel

# 安装依赖
go mod tidy

# 构建项目
make build
配置
环境变量配置

程序通过环境变量进行配置:

# 设置宝塔面板地址
export BT_BASE_URL="http://your-panel-address:8888"

# 设置宝塔面板API令牌
export BT_API_TOKEN="your-api-token"
Cursor配置方式

在Cursor中使用时,可以通过以下步骤配置:

  1. 打开Cursor设置 > 扩展 > MCP工具
  2. 添加新的MCP工具
  3. 按照以下格式填写配置:
{
    "mcpServers": {
        "mcp-btpanel": {
            "command": "C:\\Users\\Administrator\\实际目录\\mcp_btpanel\\build\\mcp-btpanel.exe",
            "env": {
                "BT_BASE_URL": "http://192.168.xx.xx:8888/",
                "BT_API_TOKEN": "xxxxxxxxxxxxxxxxxxxxxxxx"
            }
        }
    }
}
使用方法
启动服务
./build/mcp-btpanel
MCP协议调用示例
// 获取网站列表
mcp.tool("get_sites_list")

// 创建新网站
mcp.tool("add_site", {
  "domains": "example.com,www.example.com"
})

// 获取MySQL数据库列表
mcp.tool("get_mysql_list")
开发指南
项目结构
mcp_btpanel/
├── main.go              # 主程序入口
├── modules/             # 模块目录
│   ├── databases/       # 数据库相关模块
│   │   └── mysql.go     # MySQL数据库操作
│   ├── sites/           # 网站相关模块
│   │   └── sites.go     # 网站操作
│   └── system/          # 系统相关模块
│       └── system.go    # 系统信息操作
└── utils/               # 工具函数
    └── panelHttpController.go  # 宝塔面板HTTP请求控制器
添加新功能
  1. 在相应的模块目录下创建或修改文件
  2. 定义新的工具常量和工具对象
  3. 实现处理函数
  4. 在main.go的registerTools函数中注册工具
许可证

本项目采用MIT许可证,详情请参阅LICENSE文件。

贡献

欢迎提交问题和功能请求!如果您想做出贡献,请:

  1. Fork本仓库
  2. 创建您的特性分支 (git checkout -b feature/amazing-feature)
  3. 提交您的更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 开放一个Pull Request