奥术MCP
一种用于控制的模型上下文协议(MCP)服务器 奥术 Docker管理。该服务器提供对Arcane API的全面访问,使人工智能助手能够通过MCP协议管理Docker容器、图像、卷、网络和撰写项目。
特性
- 容器管理:列出、创建、启动、停止、重新启动和删除容器
- 图像管理:列出、拉取、删除和修剪图像
- 卷管理:完整的卷生命周期,包括备份、恢复和文件浏览
- 网络管理:创建、列出和删除Docker网络
- 项目/撰写支持:部署和管理Docker Compose项目
- 环境管理:具有连接测试的多环境支持
- 系统监控:健康检查、版本信息和全系统操作
先决条件
- Node.js 18或更高版本
- 一个运行且可访问的奥术实例
- 用于身份验证的API密钥或用户名/密码凭据
安装
npm install
npm run build
配置
服务器是通过环境变量配置的:
| 变量 |
必填 |
描述 |
ARCANE_API_URL |
是 |
Arcane API的基本URL(例如。, https://arcane.example.com) |
ARCANE_API_KEY |
没有用于身份验证的* |
API密钥 |
ARCANE_USERNAME |
否* |
登录用户名 |
ARCANE_PASSWORD |
否* |
登录密码 |
*要么 ARCANE_API_KEY 或两者 ARCANE_USERNAME 和 ARCANE_PASSWORD 必须提供。
用法
对于热重载开发:
与MCP客户端集成
克劳德桌面
添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"arcane": {
"command": "node",
"args": ["/path/to/@4ears-me/arcane-mcp/dist/index.js"],
"env": {
"ARCANE_API_URL": "https://arcane.example.com",
"ARCANE_API_KEY": "your-api-key"
}
}
}
}
光标
添加到光标MCP设置中:
{
"mcpServers": {
"arcane": {
"command": "node",
"args": ["/path/to/@4ears-me/arcane-mcp/dist/index.js"],
"env": {
"ARCANE_API_URL": "https://arcane.example.com",
"ARCANE_API_KEY": "your-api-key"
}
}
}
}
与npx一起使用
{
"mcpServers": {
"arcane": {
"command": "npx",
"args": ["-y", "@4ears-me/arcane-mcp"],
"env": {
"ARCANE_API_URL": "https://arcane.example.com",
"ARCANE_API_KEY": "your-api-key"
}
}
}
}
可用工具
环境工具(6个工具)
| 工具 |
说明 |
arcane_list_environments |
列出所有具有可选搜索筛选器的环境 |
arcane_get_environment |
按ID获取特定环境的详细信息 |
arcane_create_environment |
创建新环境 |
arcane_update_environment |
更新现有环境 |
arcane_delete_environment |
按ID删除环境 |
arcane_test_environment |
测试与环境的连接 |
容器工具(8个工具)
| 工具 |
说明 |
arcane_list_containers |
列出环境中的容器 |
arcane_get_container |
获取特定容器的详细信息 |
arcane_create_container |
创建一个具有完整配置选项的新容器 |
arcane_start_container |
启动容器 |
arcane_stop_container |
停止容器 |
arcane_restart_container |
重新启动容器 |
arcane_delete_container |
删除/移除容器 |
arcane_get_container_counts |
获取环境的容器状态计数 |
图像工具(6个工具)
| 工具 |
说明 |
arcane_list_images |
列出环境中的图像 |
arcane_get_image |
获取特定图像的详细信息 |
arcane_pull_image |
从注册表中提取图像 |
arcane_remove_image |
从环境中删除图像 |
arcane_prune_images |
从环境中删除未使用的图像 |
arcane_get_image_counts |
获取环境的图像使用计数 |
卷工具(11个工具)
| 工具 |
说明 |
arcane_list_volumes |
列出环境中的所有卷 |
arcane_get_volume |
获取特定卷的详细信息 |
arcane_create_volume |
创建新卷 |
arcane_remove_volume |
从环境中删除卷 |
arcane_prune_volumes |
修剪环境中未使用的卷 |
arcane_browse_volume |
浏览卷中的文件 |
arcane_get_volume_file |
从卷中获取文件内容 |
arcane_get_volume_sizes |
获取所有卷的磁盘大小 |
arcane_list_volume_backups |
列出卷的备份 |
arcane_create_volume_backup |
创建卷的备份 |
arcane_restore_volume_backup |
从备份还原卷 |
网络工具(5个工具)
| 工具 |
说明 |
arcane_list_networks |
列出环境中的网络 |
arcane_get_network |
获取特定网络的详细信息 |
arcane_create_network |
创建新网络 |
arcane_remove_network |
从环境中删除网络 |
arcane_prune_networks |
从环境中删除未使用的网络 |
项目工具(11个工具)
| 工具 |
说明 |
arcane_list_projects |
在环境中列出Docker Compose项目 |
arcane_get_project |
获取特定项目的详细信息 |
arcane_create_project |
创建一个新的Docker Compose项目 |
arcane_update_project |
更新现有项目 |
arcane_delete_project |
删除/销毁项目 |
arcane_deploy_project |
部署项目(docker compose up) |
arcane_stop_project |
停止/终止一个项目 |
arcane_restart_project |
重新启动项目 |
arcane_redeploy_project |
重新部署项目 |
arcane_pull_project_images |
为项目提取图像 |
arcane_get_project_counts |
获取环境的项目状态计数 |
系统工具(5个工具)
| 工具 |
说明 |
arcane_get_system_info |
获取奥术系统信息 |
arcane_get_docker_info |
获取环境的Docker守护进程信息 |
arcane_prune_system |
在环境中执行系统范围的修剪 |
arcane_get_health |
检查Arcane API的运行状况 |
arcane_get_version |
获取奥术版本信息 |
发展
| 命令 |
描述 |
npm run build |
将TypeScript编译为JavaScript |
npm run dev |
使用tsx在开发模式下运行 |
npm start |
运行已编译的服务器 |
许可证
麻省理工学院