奥术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 必须提供。
用法
npm start
对于热重载开发:
npm run dev
与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 | 运行已编译的服务器 |
许可证
麻省理工学院