truenas mcp
TrueNAS SCALE最全面的MCP服务器。 18个类别的278项行动 覆盖整个TrueNAS REST API 单层次工具 这不会使LLM的上下文窗口膨胀。
为什么是这个?
| truenas mcp | 其他 | |
|---|---|---|
| 行动 | 278 | 5–80 |
| 代币足迹 | 约200个代币(1个工具) | 5000-30000个代币(50-80个工具) |
| 发现 | 分层——询问你需要什么 | 扁平化——所有内容都预先加载 |
| MCP资源 | 12个只读仪表板 | 0 |
| 安装 | npx truenas-mcp | 从源代码/pip构建 |
| 安全 | 破坏性行动需要 confirm: true | 变化多样 |
快速开始
# Using npx (no install needed)
TRUENAS_URL=https://truenas.local TRUENAS_API_KEY=1-abc123 npx truenas-mcp
# Or install globally
npm install -g truenas-mcp环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
TRUENAS_URL | 是 | TrueNAS实例URL(例如。 https://truenas.local) |
TRUENAS_API_KEY | 是 | TrueNAS UI中的API密钥: 设置>API键>添加 |
TRUENAS_VERIFY_SSL | 否 | 设置为 false 跳过SSL验证(自签名证书) |
Claude桌面配置
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"truenas": {
"command": "npx",
"args": ["-y", "truenas-mcp"],
"env": {
"TRUENAS_URL": "https://truenas.local",
"TRUENAS_API_KEY": "1-your-api-key-here",
"TRUENAS_VERIFY_SSL": "false"
}
}
}
}克劳德代码
claude mcp add truenas -- npx -y truenas-mcp \
--env TRUENAS_URL=https://truenas.local \
--env TRUENAS_API_KEY=1-your-api-key-here \
--env TRUENAS_VERIFY_SSL=false它是如何工作的——分层工具设计
该服务器没有注册278个单独的工具(这将在LLM系统提示符中消耗约30000个令牌),而是公开 一个工具 称为 truenas 有三种使用模式:
1.发现类别
truenas()返回所有18个类别及其描述和操作计数(约200个标记)。
2.探索一个类别
truenas({ category: "storage" })返回该类别中的所有操作及其必需/可选参数。
3.执行一个动作
truenas({ category: "storage", action: "pool_list" })
truenas({ category: "storage", action: "dataset_create", params: { name: "tank/media", compression: "LZ4" } })这意味着LLM只支付其实际使用的代币成本。
分类
| 类别 | 动作 | 封面 |
|---|---|---|
system | 24 | 系统信息、配置、服务、邮件、API密钥、NTP |
storage | 32 | 池、数据集、快照、定期快照任务 |
sharing | 36 | SMB/CIFS、NFS导出、iSCSI目标/扩展数据块/入口/启动器 |
network | 15 | 接口、全局配置、静态路由、IPMI、分阶段更改 |
account | 16 | 用户、组、权限/角色 |
disk | 7 | 物理磁盘、SMART测试、温度 |
vm | 16 | 虚拟机、VM设备(磁盘、NIC、显示器、PCI) |
app | 17 | Docker应用程序,容器运行时配置 |
update | 14 | 系统更新、引导环境、引导池 |
certificate | 8 | TLS证书、ACME/Let’s Encrypt、DNS身份验证器 |
alert | 10 | 警报、通知服务(Slack、电子邮件、PagerDuty) |
data_protection | 49 | 复制、云同步、云备份、cron、rsync、初始化脚本、SSH密钥 |
filesystem | 7 | stat、listdir、mkdir、权限、ACL、chown |
reporting | 3 | 指标配置、图表、时间序列数据 |
directory | 8 | 活动目录、LDAP、Kerberos |
service_config | 12 | SSH、FTP、SNMP、UPS、系统可调 |
audit | 3 | 审核日志、审核配置 |
api | 1 | 任何端点的原始API逃生图案填充 |
MCP资源(12)
仪表板的只读资源——无需调用工具:
| 资源 | URI | 描述 |
|---|---|---|
| 系统信息 | truenas://system/info | 版本、主机名、正常运行时间、硬件 |
| 游泳池 | truenas://storage/pools | 所有具有容量和健康状况的游泳池 |
| 数据集 | truenas://storage/datasets | 所有具有属性的数据集 |
| 服务项目 | truenas://services | 服务状态概述 |
| 警报 | truenas://alerts | 当前系统警报 |
| 网络 | truenas://network/summary | 接口、IP、DNS、网关 |
| 股份 | truenas://sharing | 所有SMB、NFS和iSCSI共享 |
| 虚拟机 | truenas://vms | 具有状态的虚拟机 |
| 应用程序 | truenas://apps | 已安装的应用程序 |
| 磁盘 | truenas://disks | 物理磁盘信息 |
| 靴子环境 | truenas://boot/environments | 启动环境 |
| 更新 | truenas://system/update | 更新配置 |
对话示例
“我有什么游泳池,它们健康吗?”
→ truenas({ category: "storage", action: "pool_list" })“为/mnt/tank/media创建NFS共享”
→ truenas({ category: "sharing", action: "nfs_share_create", params: { path: "/mnt/tank/media", comment: "Media share" } })“检查系统更新”
→ truenas({ category: "update", action: "update_check" })“sda上运行了哪些SMART测试?”
→ truenas({ category: "disk", action: "disk_smart_test_list", params: { disk: "sda" } })安全
所有破坏性操作都需要 confirm: true 在参数中:
- 池创建/导出/磁盘替换
- 数据集/快照删除、快照回滚
- VM删除、应用程序删除/回滚
- 系统重新启动/关闭,应用更新
- 磁盘擦除、启动磁盘连接/分离
- 证书删除,启动环境删除
- 目录服务离开,ACL设置
没有 confirm: true,这些操作会返回一条错误消息,解释会发生什么。
API兼容性
专为 TrueNAS比例尺 REST API 2.0版。与TrueNAS SCALE 22.x至25.x兼容。
发展
git clone https://github.com/spranab/truenas-mcp
cd truenas-mcp
npm install
npm run build
npm run dev # watch mode许可证
麻省理工学院
