关于 Hitachi raidcom command builder (Community)
这是一个社区维护的 MCP 服务,用于生成并验证 Hitachi `raidcom` 命令和脚本,面向需要审核命令文本的存储管理员。它只构建命令,不连接或操作存储系统。
主要功能
- 01搜索包含 178 条命令的目录
- 02生成经过验证的命令和脚本
- 03提供 14 种工作流配方
- 04检查粘贴的命令但不执行
- 05提供特定型号的限制范围
适用场景
- 01起草卷配置命令
- 02运行前检查命令
- 03为重复操作生成脚本
MCP 相关
向 MCP 客户端提供只读的搜索、构建、验证、配方和型号限制工具。它只返回命令文本,不执行命令,也不连接存储系统。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
raidcom-mcp:根据自然语言请求构建 Hitachi raidcom 命令
这是一个社区 MCP 服务,可将“将池 0 中的 4 个 100 GB 卷呈现给 CL1-A 和 CL2-A 上的主机 esx01”之类的请求转换为经过验证的 raidcom 命令。它仅负责构建:不会连接存储系统、运行命令或持有凭据。它会返回命令文本(或 Shell 脚本),供用户审核后在安装了 CCI 的主机上运行。因此,可以安全地在线托管,供任何人使用。
这是一个独立项目,并非 Hitachi Vantara 的官方产品。
功能
- 查找合适的命令。
raidcom_list_commands会根据问题对目录中的 178 个命令进行排序(结合 BM25、同义词和动词意图),并说明匹配置信度。 - 构建单条命令。
raidcom_build_command接受命令名称和结构化选项,根据手册中的语法和存储模型限制进行检查,然后返回命令行。 - 批量构建。
raidcom_build_script会针对范围重复执行步骤(foreach、zip),在异步命令后添加get command_status,可选择锁定资源组,并返回一个在遇到首个错误时停止运行的脚本。 - 现成的工作流。
raidcom_list_recipes和raidcom_build_recipe涵盖 14 种常见任务:FC、iSCSI 和 NVMe/TCP 配置、DP 池、大型机(3390)池、扩展和删除卷、命令设备、零页回收、清单、复制组。 - 检查现有命令。
raidcom_check_command会解析粘贴的命令行(绝不执行;拒绝 Shell 运算符),并报告所有问题。 - 了解模型限制。
raidcom_model_limits提供 VSP One Block 24/26/28、VSP 5000 系列和 VSP E 系列的 LDEV、LUN、池、序列号和端口范围。
全部 8 个工具都标记为只读。没有任何工具可以执行操作。
使用托管服务
公共实例运行于 https://raidcom-mcp.onrender.com/mcp。无需登录。
- Claude(桌面端或网页版): Settings → Connectors → Add custom connector,粘贴 URL,并将高级(OAuth)设置留空。
- Claude Code:
claude mcp add --transport http raidcom https://raidcom-mcp.onrender.com/mcp - Microsoft 365 Copilot(Copilot Studio): 你的 Agent → Tools → Add a tool → New tool → Model Context Protocol;粘贴 URL,并将身份验证设为 None。
- GitHub Copilot(VS Code): 将
{ "servers": { "raidcom": { "type": "http", "url": "https://raidcom-mcp.onrender.com/mcp" } } }添加到.vscode/mcp.json,然后在 Agent 模式下使用 Copilot Chat。
如需自行运行,请参阅设置。
目录的生成方式
spec/raidcom-catalog.json 由 scripts/generate-catalog.mjs 根据 Command Control Interface Command Reference(MK-90RD7009)的文本生成。对于每条命令,它都会保留名称、支持的型号、一行摘要、每种语法形式(以小型语法表示)、每个选项的值形状及简短说明,以及手册示例中的命令行。不会复制 Hitachi 的说明文字、表格和输出示例。手册本身不在此仓库中;如需使用自己的副本重新生成目录:
pdftotext -layout CCI_Command_Reference.pdf cci-reference.txt
npm run generate-catalog -- cci-reference.txt
tests/unit/catalog.test.mjs 会将手册中的每个示例通过解析器和验证器重放(约 96% 通过;其余情况是手册的语法行与示例不一致)。
验证
- 未知选项、值数量错误、值不在选项允许的范围内,以及缺少必需选项(根据语法规则检查)都会报错并给出修正建议。
- LDEV ID、LUN ID、池 ID、序列号和端口名称(
CL1-A、CL3-B-12)会根据你提供的型号或任一型号的最大范围进行检查。 - 可能被 shell 误读的值(
; | & $ \> < ' "等)会被拒绝;包含空格或#的值会加引号;以-开头的值会被拒绝,以免添加选项。写入任何内容之前,都会检查全局选项(instance、pair_type、serial` 等)。参见 SECURITY.md。 - LDEV ID 可以使用十进制、
0x十六进制或大型机 CU:LDEV 格式(dd:0f);配方和脚本会展开100-109和dd:00-dd:0f之类的范围。 - 由于手册中的语法行偶尔不完整,
strict: false会将 缺少选项 错误转换为警告。未知选项和超出范围的值仍会报错。 - 不在支持范围内:Quick Reference 中的
pair*命令(paircreate、pairdisplay 等),以及作为独立命令的raidcom -login/-logout行(脚本可以通过login: true添加这些命令,并从 shell 读取$RAIDCOM_USER和$RAIDCOM_PASSWORD)。
设置
你需要 Node.js 22.19 或更高版本。此服务发布在 npm 上,因此大多数客户端都可以使用 npx 启动:
Claude Code
claude mcp add raidcom -- npx -y raidcom-mcp
Claude Desktop
添加到 claude_desktop_config.json:
{
"mcpServers": {
"raidcom": { "command": "npx", "args": ["-y", "raidcom-mcp"] }
}
}
从源代码构建
git clone https://github.com/visubramaniam/raidcom-mcp.git
cd raidcom-mcp
npm ci
npm run build
然后,在上述示例中将 node /path/to/raidcom-mcp/dist/index.js 用作命令。
Claude Desktop 独立程序包
每个版本都包含 Claude Desktop 扩展(.mcpb)、适用于 macOS、Linux 和 Windows 且内置 Node.js 的独立程序包、npm 程序包,以及技能 zip 文件。参见 INSTALL.md。
Claude Code 插件
/plugin install raidcom-community --marketplace visubramaniam/raidcom-mcp
参见 README.plugin.md。
通过 HTTP 托管
RAIDCOM_TRANSPORT=http RAIDCOM_HTTP_HOST=0.0.0.0 RAIDCOM_HTTP_TOKEN=$(openssl rand -hex 32) \
RAIDCOM_HTTP_BEHIND_TLS_PROXY=true RAIDCOM_HTTP_ALLOWED_HOSTS=raidcom.example.com node dist/index.js
端点为 /mcp(无状态 Streamable HTTP)。/healthz 会报告版本;如果位于代理之后,还会报告服务所识别的调用方地址,以便检查代理设置。
将服务添加为连接器的客户端(Claude、Microsoft 365 Copilot)无法发送固定的 bearer token:它们会在无身份验证的情况下连接,或通过 OAuth 连接,而此服务未实现 OAuth。对于这些客户端,请在不使用 token 的情况下运行,并设置 RAIDCOM_HTTP_OPEN=true,如同公共实例所做的那样。在 Cloudflare 后面(例如 Render),请设置 RAIDCOM_HTTP_CLIENT_IP_HEADER=cf-connecting-ip,以便按用户应用速率限制。参见 INSTALL.md 和 README.docker.md。
配置
| 变量 | 默认值 | 含义 |
|---|---|---|
RAIDCOM_TRANSPORT | stdio | stdio 或 http |
RAIDCOM_HTTP_HOST | 127.0.0.1 | 监听地址 |
RAIDCOM_HTTP_PORT | 8361 | 端口(0 表示自动选择空闲端口) |
RAIDCOM_HTTP_TOKEN | none | Bearer 令牌,至少 32 个字符。除非 RAIDCOM_HTTP_OPEN=true,否则必填 |
RAIDCOM_HTTP_OPEN | false | 允许任何能访问该端口的人使用,无需令牌 |
RAIDCOM_HTTP_TLS_CERT、RAIDCOM_HTTP_TLS_KEY | none | PEM 文件;随后服务将使用 HTTPS |
RAIDCOM_HTTP_BEHIND_TLS_PROXY | false | 由代理或负载均衡器终止 TLS。非环回地址未启用 TLS 时必须设置 |
RAIDCOM_HTTP_ALLOWED_HOSTS | none | 额外接受的 Host 值(* 表示任意值) |
RAIDCOM_HTTP_ALLOWED_ORIGINS | none | 接受的 Origin 值(* 表示任意值) |
RAIDCOM_HTTP_RATE_LIMIT | 120 | 每个客户端每分钟的请求数(0 表示不限制) |
RAIDCOM_HTTP_CLIENT_IP_HEADER | none | 代理设置的、用于标识客户端地址的请求头,例如在 Cloudflare 后方使用 cf-connecting-ip(Render 使用 Cloudflare)。其优先级高于 X-Forwarded-For |
RAIDCOM_HTTP_DEBUG_CLIENT | true | /healthz 还会显示收到的转发请求头(调用方自身请求中的请求头),以便选择上述两个设置。设为 false 可关闭 |
RAIDCOM_HTTP_TRUST_PROXY | false | 从 X-Forwarded-For 获取客户端地址:前方有一个代理时设为 true,或者设为代理数量(参见 INSTALL.md) |
MCPRUSH_TOKEN | none | mcprush 市场签发的令牌。添加一个额外端点(见下文),该端点只响应在 x-mcprush-token 中携带此令牌的请求;/mcp 不变 |
RAIDCOM_HTTP_MCPRUSH_PATH | /mcprush | 该端点的路径 |
RAIDCOM_CATALOG、RAIDCOM_LIMITS、RAIDCOM_RECIPES、RAIDCOM_EXAMPLES | bundled | 使用其他规格文件(将 RAIDCOM_EXAMPLES 设为空值可关闭示例问题) |
值会先去除首尾空格,true/false 设置接受任意大小写;这些设置的其他值会导致服务停止并显示提示。启动时,服务会对无法识别的 RAIDCOM_ 变量发出警告(名称拼写错误或多出空格),并在 HTTP 模式下记录一行包含实际生效设置的日志。
测试
npm test
运行单元测试(tests/unit)和搜索评估(tests/search-eval.mjs:40 个调优请求和 30 个留出请求,每个请求都有不可降低的 top-1 和 top-3 最低分数,并检查高置信度评分的结果至少有 85% 正确)。npm run package 会构建发布包,npm run smoke 会测试安装后的 npm 包。
文档
wiki 提供快速入门、部署指南、工具和配方参考、故障排除等内容。
贡献
参见 CONTRIBUTING.md。安全问题:SECURITY.md。隐私:PRIVACY.md。
许可证
MIT,参见 LICENSE。“Hitachi”、“raidcom”和“VSP”是其所有者的商标;本项目与 Hitachi 无关联,也未获其认可。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。