Hitachi raidcom command builder (Community)
Builds and checks Hitachi raidcom commands and scripts. Build-only: never contacts a storage system.
What can you do with Hitachi raidcom command builder (Community)?
- Finds the right command.
raidcom_list_commandsranks the 178 commands in the catalogue against a question (BM25 with synonyms and verb intent) and says how confident it is. - Builds one command.
raidcom_build_commandtakes a command name and options as structured data, checks them against the manual's syntax and the storage model's limits, and returns the command line. - Builds many.
raidcom_build_scriptrepeats steps over ranges (foreach,zip), addsget command_statusafter asynchronous commands, optionally locks the resource group, and returns a script that stops at the first failure. - Ready-made workflows.
raidcom_list_recipesandraidcom_build_recipecover 14 common jobs: FC, iSCSI and NVMe/TCP provisioning, DP pools, mainframe (3390) pools, extending and deleting volumes, command devices, zero-page reclaim, inventory, copy groups. - Checks an existing command.
raidcom_check_commandparses a pasted command line (never executing it; shell operators are refused) and reports every problem. - Knows the model limits.
raidcom_model_limitsgives the LDEV, LUN, pool, serial and port ranges of VSP One Block 24/26/28, VSP 5000 series and VSP E series.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
raidcom-mcpclaude mcp add hitachi-raidcom-command-builder-communit -e 'RAIDCOM_TRANSPORT=stdio' -e 'RAIDCOM_HTTP_TOKEN=<your raidcom_http_token>' -- npx -y raidcom-mcp@0.1.5
{
"mcpServers": {
"hitachi-raidcom-command-builder-communit": {
"command": "npx",
"args": [
"-y",
"raidcom-mcp@0.1.5"
],
"env": {
"RAIDCOM_TRANSPORT": "stdio",
"RAIDCOM_HTTP_TOKEN": "<your raidcom_http_token>"
}
}
}
}
Environment variables
RAIDCOM_TRANSPORTstdio (default) or httpRAIDCOM_HTTP_TOKENsecret Bearer token for the HTTP transport (at least 32 characters)
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
raidcom-mcp: build Hitachi raidcom commands from plain-language requests
A community MCP server that turns a request such as "present four 100 GB volumes from pool 0 to host esx01 on CL1-A and CL2-A" into validated raidcom commands. It is build-only: it never connects to a storage system, never runs a command and holds no credentials. It returns command text (or a shell script) for a person to review and run on a host with CCI installed. That makes it safe to host online for anyone to use.
It is an independent project, not an official Hitachi Vantara product.
What it does
- Finds the right command.
raidcom_list_commandsranks the 178 commands in the catalogue against a question (BM25 with synonyms and verb intent) and says how confident it is. - Builds one command.
raidcom_build_commandtakes a command name and options as structured data, checks them against the manual's syntax and the storage model's limits, and returns the command line. - Builds many.
raidcom_build_scriptrepeats steps over ranges (foreach,zip), addsget command_statusafter asynchronous commands, optionally locks the resource group, and returns a script that stops at the first failure. - Ready-made workflows.
raidcom_list_recipesandraidcom_build_recipecover 14 common jobs: FC, iSCSI and NVMe/TCP provisioning, DP pools, mainframe (3390) pools, extending and deleting volumes, command devices, zero-page reclaim, inventory, copy groups. - Checks an existing command.
raidcom_check_commandparses a pasted command line (never executing it; shell operators are refused) and reports every problem. - Knows the model limits.
raidcom_model_limitsgives the LDEV, LUN, pool, serial and port ranges of VSP One Block 24/26/28, VSP 5000 series and VSP E series.
All eight tools are marked read-only. There is no tool that executes anything.
How the catalogue is made
spec/raidcom-catalog.json is generated by scripts/generate-catalog.mjs from the text of the Command Control Interface Command Reference (MK-90RD7009). For every command it keeps the name, supported models, a one-line summary, each syntax form (as a small grammar), each option's value shape and a short description, and the command lines of the manual's examples. Hitachi's prose, tables and output samples are not copied. The manuals themselves are not part of this repository; to regenerate the catalogue with your own copy:
pdftotext -layout CCI_Command_Reference.pdf cci-reference.txt
npm run generate-catalog -- cci-reference.txt
tests/unit/catalog.test.mjs replays every example in the manual through the parser and validator (about 96% pass; the rest are places where the manual's syntax line and its examples disagree).
Validation
- Unknown options, wrong number of values, values outside an option's allowed words, and missing required options (checked against the syntax grammar) are errors with a suggested fix.
- LDEV IDs, LUN IDs, pool IDs, serial numbers and port names (
CL1-A,CL3-B-12) are checked against the model you give, or the widest range of any model. - Values that a shell could misread (
; | & $ \> < ' "` and so on) are refused, and names with spaces are quoted. - Because the manual's syntax lines are occasionally incomplete,
strict: falseturns missing option errors into warnings. Unknown options and out-of-range values stay errors. - Out of scope: the
pair*commands (paircreate, pairdisplay, ...) from the Quick Reference, andraidcom -login/-logoutlines as commands of their own (scripts can add them withlogin: true, reading$RAIDCOM_USERand$RAIDCOM_PASSWORDfrom the shell).
Setup
You need Node.js 22.19 or later.
git clone https://github.com/visubramaniam/raidcom-mcp.git
cd raidcom-mcp
npm ci
npm run build
Claude Code
claude mcp add raidcom -- node /path/to/raidcom-mcp/dist/index.js
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"raidcom": { "command": "node", "args": ["/path/to/raidcom-mcp/dist/index.js"] }
}
}
Claude Desktop, standalone packages
Each release has a Claude Desktop extension (.mcpb), standalone packages for macOS, Linux and Windows with Node.js bundled, the npm package, and a skill zip. See INSTALL.md.
Claude Code plugin
/plugin install raidcom-community --marketplace visubramaniam/raidcom-mcp
See README.plugin.md.
Hosted over 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
The endpoint is /mcp (stateless Streamable HTTP); /healthz reports liveness. See INSTALL.md and README.docker.md.
Configuration
| Variable | Default | Meaning |
|---|---|---|
RAIDCOM_TRANSPORT | stdio | stdio or http |
RAIDCOM_HTTP_HOST | 127.0.0.1 | Address to listen on |
RAIDCOM_HTTP_PORT | 8361 | Port (0 picks a free one) |
RAIDCOM_HTTP_TOKEN | none | Bearer token, at least 32 characters. Required unless RAIDCOM_HTTP_OPEN=true |
RAIDCOM_HTTP_OPEN | false | Serve anyone who can reach the port, without a token |
RAIDCOM_HTTP_TLS_CERT, RAIDCOM_HTTP_TLS_KEY | none | PEM files; the server then speaks HTTPS |
RAIDCOM_HTTP_BEHIND_TLS_PROXY | false | A proxy or load balancer ends TLS. Needed for non-loopback addresses without TLS |
RAIDCOM_HTTP_ALLOWED_HOSTS | none | Extra Host values to accept (* for any) |
RAIDCOM_HTTP_ALLOWED_ORIGINS | none | Origin values to accept (* for any) |
RAIDCOM_HTTP_RATE_LIMIT | 120 | Requests per minute per client (0 for none) |
RAIDCOM_HTTP_CLIENT_IP_HEADER | none | A header your proxy sets to the client's address, e.g. cf-connecting-ip behind Cloudflare (Render uses Cloudflare). Takes precedence over X-Forwarded-For |
RAIDCOM_HTTP_DEBUG_CLIENT | false | /healthz also shows the forwarding headers it received, to choose the two settings above |
RAIDCOM_HTTP_TRUST_PROXY | false | Take the client address from X-Forwarded-For: true for one proxy in front, or the number of proxies (see INSTALL.md) |
RAIDCOM_CATALOG, RAIDCOM_LIMITS, RAIDCOM_RECIPES, RAIDCOM_EXAMPLES | bundled | Use another spec file (an empty RAIDCOM_EXAMPLES turns the example questions off) |
Tests
npm test
runs the unit tests (tests/unit) and the search evaluation (tests/search-eval.mjs: 40 tuning and 30 held-out requests, each with a minimum top-1 and top-3 score that may only go up).
Contributing
See CONTRIBUTING.md. Security problems: SECURITY.md.
License
MIT, see LICENSE. "Hitachi", "raidcom" and "VSP" are trademarks of their owners; this project is not affiliated with or endorsed by Hitachi.
Frequently asked questions
What is Hitachi raidcom command builder (Community)?
Builds and checks Hitachi raidcom commands and scripts. Build-only: never contacts a storage system.
How do I install Hitachi raidcom command builder (Community)?
It runs on your machine. In Claude Code: claude mcp add hitachi-raidcom-command-builder-communit -e 'RAIDCOM_TRANSPORT=stdio' -e 'RAIDCOM_HTTP_TOKEN=<your raidcom_http_token>' -- npx -y raidcom-mcp@0.1.5. For other clients, paste the JSON configuration from this page into their MCP settings.
Does Hitachi raidcom command builder (Community) need an API key?
Yes. It expects RAIDCOM_HTTP_TOKEN, which you set in its configuration.
Is Hitachi raidcom command builder (Community) open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains Hitachi raidcom command builder (Community)?
It is published by visubramaniam. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.