mcpField
H
Hitachi raidcom command builder (Community)

Hitachi raidcom command builder (Community)

Local
github.com/visubramaniamOther0Updated today

About Hitachi raidcom command builder (Community)

A community MCP server for building and validating Hitachi `raidcom` commands and scripts. It is for storage administrators who want reviewed command text without connecting to or operating a storage system.

Key features

  1. 01Searches a 178-command catalogue
  2. 02Builds validated commands and scripts
  3. 03Provides 14 workflow recipes
  4. 04Checks pasted commands without execution
  5. 05Reports model-specific limits

Use cases

  1. 01Drafting volume provisioning commands
  2. 02Checking a command before running it
  3. 03Generating scripts for repeated operations

MCP support

Exposes read-only search, build, validation, recipe, and model-limit tools to MCP clients. It returns command text and never executes commands or contacts storage systems.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"visubramaniam-raidcom": {
"command": "npx",
"args": [
"-y",
"raidcom-mcp"
],
"env": {
"RAIDCOM_TRANSPORT": "<RAIDCOM_TRANSPORT>",
"RAIDCOM_HTTP_TOKEN": "<RAIDCOM_HTTP_TOKEN>"
}
}
}
}
Run commandnpx -y raidcom-mcp
Environment variables to set
RAIDCOM_TRANSPORTstdio (default) or http
RAIDCOM_HTTP_TOKENSecretBearer token for the HTTP transport (at least 32 characters)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmraidcom-mcp0.1.7

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

raidcom-mcp: build Hitachi raidcom commands from plain-language requests

npm Release CI

Hitachi raidcom command builder (Community) MCP server

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_commands ranks 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_command takes 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_script repeats steps over ranges (foreach, zip), adds get command_status after asynchronous commands, optionally locks the resource group, and returns a script that stops at the first failure.
  • Ready-made workflows. raidcom_list_recipes and raidcom_build_recipe cover 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_command parses a pasted command line (never executing it; shell operators are refused) and reports every problem.
  • Knows the model limits. raidcom_model_limits gives 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.

Use the hosted server

A public instance runs at https://raidcom-mcp.onrender.com/mcp. It needs no sign-in.

  • Claude (desktop or web): Settings → Connectors → Add custom connector, paste the URL, leave the advanced (OAuth) settings empty.
  • Claude Code: claude mcp add --transport http raidcom https://raidcom-mcp.onrender.com/mcp
  • Microsoft 365 Copilot (Copilot Studio): your agent → Tools → Add a tool → New tool → Model Context Protocol; paste the URL, authentication None.
  • GitHub Copilot (VS Code): add { "servers": { "raidcom": { "type": "http", "url": "https://raidcom-mcp.onrender.com/mcp" } } } to .vscode/mcp.json, then use Copilot Chat in Agent mode.

To run it yourself instead, see Setup.

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, values containing spaces or#are quoted, and values starting with- are refused so they can't add options. Global options (instance, pair_type, serial`, ...) are checked before anything is written. See SECURITY.md.
  • LDEV IDs can be decimal, 0x hex or mainframe CU:LDEV (dd:0f); recipes and scripts expand ranges such as 100-109 and dd:00-dd:0f.
  • Because the manual's syntax lines are occasionally incomplete, strict: false turns 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, and raidcom -login/-logout lines as commands of their own (scripts can add them with login: true, reading $RAIDCOM_USER and $RAIDCOM_PASSWORD from the shell).

Setup

You need Node.js 22.19 or later. The server is on npm, so most clients can start it with npx:

Claude Code
claude mcp add raidcom -- npx -y raidcom-mcp
Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "raidcom": { "command": "npx", "args": ["-y", "raidcom-mcp"] }
  }
}
From source
git clone https://github.com/visubramaniam/raidcom-mcp.git
cd raidcom-mcp
npm ci
npm run build

Then use node /path/to/raidcom-mcp/dist/index.js as the command in the examples above.

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 the version and, behind a proxy, the address the server takes as the caller's, to check the proxy settings.

Clients that add servers as connectors (Claude, Microsoft 365 Copilot) can't send a fixed bearer token: they connect without authentication or through OAuth, which this server doesn't implement. For them, run without a token and with RAIDCOM_HTTP_OPEN=true, as the public instance does. Behind Cloudflare (Render, for example), set RAIDCOM_HTTP_CLIENT_IP_HEADER=cf-connecting-ip so the rate limits apply per user. See INSTALL.md and README.docker.md.

Configuration

VariableDefaultMeaning
RAIDCOM_TRANSPORTstdiostdio or http
RAIDCOM_HTTP_HOST127.0.0.1Address to listen on
RAIDCOM_HTTP_PORT8361Port (0 picks a free one)
RAIDCOM_HTTP_TOKENnoneBearer token, at least 32 characters. Required unless RAIDCOM_HTTP_OPEN=true
RAIDCOM_HTTP_OPENfalseServe anyone who can reach the port, without a token
RAIDCOM_HTTP_TLS_CERT, RAIDCOM_HTTP_TLS_KEYnonePEM files; the server then speaks HTTPS
RAIDCOM_HTTP_BEHIND_TLS_PROXYfalseA proxy or load balancer ends TLS. Needed for non-loopback addresses without TLS
RAIDCOM_HTTP_ALLOWED_HOSTSnoneExtra Host values to accept (* for any)
RAIDCOM_HTTP_ALLOWED_ORIGINSnoneOrigin values to accept (* for any)
RAIDCOM_HTTP_RATE_LIMIT120Requests per minute per client (0 for none)
RAIDCOM_HTTP_CLIENT_IP_HEADERnoneA 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_CLIENTtrue/healthz also shows the forwarding headers it received (the caller's own request), to choose the two settings above. Set to false to turn it off
RAIDCOM_HTTP_TRUST_PROXYfalseTake the client address from X-Forwarded-For: true for one proxy in front, or the number of proxies (see INSTALL.md)
MCPRUSH_TOKENnoneToken issued by the mcprush marketplace. Adds a second endpoint (below) that answers only requests carrying it in x-mcprush-token; /mcp is unchanged
RAIDCOM_HTTP_MCPRUSH_PATH/mcprushPath of that endpoint
RAIDCOM_CATALOG, RAIDCOM_LIMITS, RAIDCOM_RECIPES, RAIDCOM_EXAMPLESbundledUse another spec file (an empty RAIDCOM_EXAMPLES turns the example questions off)

Values are trimmed, and true/false settings accept any case; any other value for them stops the server with a message. At startup the server warns about RAIDCOM_ variables it doesn't recognise (a misspelt name, or one with a stray space), and over HTTP logs one line with its effective settings.

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, and a check that results rated high-confidence are right at least 85% of the time). npm run package builds the release packages and npm run smoke tests the npm package as installed.

Documentation

The wiki has a quick start, deployment guide, tools and recipe reference, troubleshooting and more.

Contributing

See CONTRIBUTING.md. Security problems: SECURITY.md. Privacy: PRIVACY.md.

License

MIT, see LICENSE. "Hitachi", "raidcom" and "VSP" are trademarks of their owners; this project is not affiliated with or endorsed by Hitachi.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.