{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-06T17:19:20.051Z","url":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp","markdownUrl":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp.md","server":{"slug":"visubramaniam-raidcom-mcp","name":"Hitachi raidcom command builder (Community)","registryName":"io.github.visubramaniam/raidcom-mcp","description":"Builds and checks Hitachi raidcom commands and scripts. Build-only: never contacts a storage system.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"raidcom-mcp","type":"npm","identifier":"raidcom-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp","version":"0.1.8","transport":"stdio","scoredAt":"2026-11-06T00:15:56.307Z"},"score":{"total":85,"tier":"high trust","status":"scored","weekDelta":3,"history":[{"date":"2026-11-06","total":85},{"date":"2026-11-05","total":85},{"date":"2026-11-04","total":84},{"date":"2026-11-03","total":84},{"date":"2026-11-02","total":83},{"date":"2026-11-01","total":83},{"date":"2026-10-31","total":82},{"date":"2026-10-30","total":82},{"date":"2026-10-29","total":81},{"date":"2026-10-28","total":81}]},"categories":[{"name":"Supply Chain Security","score":98,"verdict":"partial","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","No install/post-install scripts declared.","30 of 92 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.none","args":{}},{"code":"dephealth.assessed","args":{"deps":"92","unhealthy":"30"}}]},{"name":"Provenance & Transparency","score":100,"verdict":"pass","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to visubramaniam/raidcom-mcp).","Clear OSI-approved license (MIT).","Actively maintained (last published 8 days ago).","Publishes a security disclosure policy (SECURITY.md)."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"visubramaniam/raidcom-mcp"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"8"}},{"code":"disclosure.present","args":{}}]},{"name":"Schema Quality & AI Usability","score":76,"verdict":"fail","reasons":["100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).","AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 2509 tokens (~228/item across 11 items; 8 tools + 3 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.descriptions","args":{"pct":"100"}},{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"228","items":"11","tools":"8","tokens":"2509","resources":"3"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":30,"verdict":"partial","reasons":["Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"9"}}]},{"name":"Tool Coverage","score":99,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","97% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"97"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"8"}},{"code":"toolsafety.manipulation_clean","args":{"units":"10","judged":"10"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"raidcom-mcp","type":"npm","identifier":"raidcom-mcp","withdrawn":false,"score":85,"current":true,"url":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp","markdownUrl":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"raidcom-mcp"},{"label":"Version","value":"0.1.8"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"raidcom_list_commands","title":"Find raidcom commands","description":"Find raidcom commands. Use this first when you do not know the exact command name. With no arguments, lists every object (ldev, lun, host_grp, pool, ...) with the actions available on it. With `query` (plain words, e.g. \"map a volume to a host group\", \"grow a pool\", \"show free ldev ids\"), ranks matching commands and rates the confidence of the top result. With `action` and/or `object`, lists exactly those commands. Then call raidcom_describe_command, or raidcom_build_command if you already know the options.","inputs":[{"name":"action","type":"string","required":false,"description":"Only this action: add, delete, get, modify, extend, initialize, set, reset, ..."},{"name":"limit","type":"integer","required":false,"description":"Maximum results for a query (default 10)."},{"name":"object","type":"string","required":false,"description":"Only this object: ldev, lun, host_grp, hba_wwn, pool, dp_pool, port, parity_grp, ..."},{"name":"query","type":"string","required":false,"description":"What you want to do, in plain words."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":226},{"name":"raidcom_describe_command","title":"Describe a raidcom command","description":"Everything needed to build one raidcom command: what it does, which models support it, whether it is read-only, destructive or asynchronous, each syntax form, every option with the number and kind of values it takes (and the words it accepts, where it accepts only a few), and examples. Call it before raidcom_build_command when you are unsure which options a command needs or which of its syntax forms fits the request.","inputs":[{"name":"command","type":"string","required":true,"description":"Command name, e.g. \"add lun\" or \"raidcom get ldev\"."},{"name":"option","type":"string","required":false,"description":"Only describe this option, e.g. \"-ldev_id\"."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":140},{"name":"raidcom_build_command","title":"Build a raidcom command","description":"Build one raidcom command from structured arguments and validate it. Nothing is executed and no storage system is contacted: you get command text to review and run elsewhere. Unknown options, wrong value counts, missing required options, bad port names and out-of-range LDEV, LUN, pool and serial numbers are reported as errors with a fix. Example: {\"command\": \"add ldev\", \"options\": {\"-pool\": 0, \"-ldev_id\": 256, \"-capacity\": \"100G\"}, \"model\": \"vsp-one-b28\", \"global\": {\"instance\": 0}} → `raidcom add ldev -pool 0 -ldev_id 256 -capacity 100G -I0`. For many similar commands use raidcom_build_script, not repeated calls. When the user asks for a command, show them the `command` from the result.","inputs":[{"name":"command","type":"string","required":true,"description":"Command name: action and object, e.g. \"add lun\", \"get ldev\", \"modify host_grp\"."},{"name":"global","type":"object","required":false,"description":"Settings that apply to the whole command, not to one raidcom option."},{"name":"model","type":"string","required":false,"description":"Storage model, so values are checked against its limits: vsp-one-b24, vsp-one-b26, vsp-one-b28, vsp-5000, vsp-e590, vsp-e790, vsp-e990, vsp-e1090. Aliases such as B28 or E990 work. Omit it to check a…"},{"name":"options","type":"object","required":false,"description":"raidcom options and their values, keyed by option name with or without the leading dash. A value is a string or number; an option that takes several values (for example -port takes a port and an opti…"},{"name":"strict","type":"boolean","required":false,"description":"Default true. The command catalogue is parsed from the manual, whose syntax lines are occasionally incomplete, so a \"needs <option>\" error can be a false alarm. If one looks wrong after reading raidc…"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":522},{"name":"raidcom_check_command","title":"Check a raidcom command line","description":"Validate and explain a raidcom command line the user already has (for example one pasted from a runbook). It is parsed, not executed: shell operators such as ; | & > are refused. Returns the normalised command, what each option means, and every problem found. Credentials after -login are dropped.","inputs":[{"name":"command_line","type":"string","required":true,"description":"One raidcom command, e.g. \"raidcom add lun -port CL1-A-0 -ldev_id 200 -lun_id 1\"."},{"name":"model","type":"string","required":false,"description":"Storage model, so values are checked against its limits: vsp-one-b24, vsp-one-b26, vsp-one-b28, vsp-5000, vsp-e590, vsp-e790, vsp-e990, vsp-e1090. Aliases such as B28 or E990 work. Omit it to check a…"},{"name":"strict","type":"boolean","required":false,"description":"Default true. The command catalogue is parsed from the manual, whose syntax lines are occasionally incomplete, so a \"needs <option>\" error can be a false alarm. If one looks wrong after reading raidc…"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":271},{"name":"raidcom_build_script","title":"Build a raidcom script","description":"Build a shell script of raidcom commands from steps. Each step is a command with options, optionally repeated with `foreach` (every combination) or `zip` (values advance together), so \"create LDEVs 100 to 109 in pool 0, then map each to port CL1-A\" is two steps. Every expanded command is validated; the script is returned only if all of them are valid, otherwise you get the errors per step. The script checks each command's exit status, adds `raidcom get command_status` after asynchronous commands, and can lock the resource group and log in (credentials are read from RAIDCOM_USER and RAIDCOM_PASSWORD in the user's shell, never written into the script). Nothing is executed.","inputs":[{"name":"description","type":"string","required":false,"description":"A one-line comment for the top of the script."},{"name":"global","type":"object","required":false,"description":"Settings that apply to the whole command, not to one raidcom option."},{"name":"lock_resource","type":"boolean","required":false,"description":"Wrap the commands in raidcom lock resource / unlock resource. Recommended for changing commands."},{"name":"login","type":"boolean","required":false,"description":"Add raidcom -login / -logout using $RAIDCOM_USER and $RAIDCOM_PASSWORD."},{"name":"model","type":"string","required":false,"description":"Storage model, so values are checked against its limits: vsp-one-b24, vsp-one-b26, vsp-one-b28, vsp-5000, vsp-e590, vsp-e790, vsp-e990, vsp-e1090. Aliases such as B28 or E990 work. Omit it to check a…"},{"name":"steps","type":"array","required":true,"description":null},{"name":"strict","type":"boolean","required":false,"description":"Default true. The command catalogue is parsed from the manual, whose syntax lines are occasionally incomplete, so a \"needs <option>\" error can be a false alarm. If one looks wrong after reading raidc…"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":415},{"name":"raidcom_list_recipes","title":"List raidcom recipes","description":"Ready-made workflows: provision volumes to an FC, iSCSI or NVMe/TCP host, create or grow a pool, create a mainframe (3390) pool, extend or delete volumes, create a command device, reclaim zero pages, read-only inventory, copy groups. With no arguments lists them. With `recipe`, shows its parameters and steps. With `query`, ranks recipes by keyword. Use raidcom_build_recipe to turn one into a script.","inputs":[{"name":"query","type":"string","required":false,"description":"Words describing the task, e.g. \"new ESXi host\"."},{"name":"recipe","type":"string","required":false,"description":"Recipe ID to show in detail, e.g. provision-fc-volumes."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":147},{"name":"raidcom_build_recipe","title":"Build a raidcom recipe script","description":"Build the script for a recipe from its parameters (see raidcom_list_recipes). Lists such as ldev_ids accept ranges: [\"100-109\"]. Example: recipe provision-fc-volumes with {\"pool\": 0, \"ldev_ids\": [\"100-103\"], \"capacity\": \"100G\", \"ports\": [\"CL1-A\", \"CL2-A\"], \"host_grp\": \"esx01\", \"host_mode\": \"VMWARE_EX\", \"wwns\": [\"210000e08b0256f8\"]}. Returns the script and the individual commands. Nothing is executed.","inputs":[{"name":"global","type":"object","required":false,"description":"Settings that apply to the whole command, not to one raidcom option."},{"name":"lock_resource","type":"boolean","required":false,"description":"Wrap the commands in raidcom lock resource / unlock resource."},{"name":"login","type":"boolean","required":false,"description":"Add raidcom -login / -logout using $RAIDCOM_USER and $RAIDCOM_PASSWORD."},{"name":"model","type":"string","required":false,"description":"Storage model, so values are checked against its limits: vsp-one-b24, vsp-one-b26, vsp-one-b28, vsp-5000, vsp-e590, vsp-e790, vsp-e990, vsp-e1090. Aliases such as B28 or E990 work. Omit it to check a…"},{"name":"params","type":"object","required":true,"description":"Recipe parameters."},{"name":"recipe","type":"string","required":true,"description":"Recipe ID."},{"name":"strict","type":"boolean","required":false,"description":"Default true. The command catalogue is parsed from the manual, whose syntax lines are occasionally incomplete, so a \"needs <option>\" error can be a false alarm. If one looks wrong after reading raidc…"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":376},{"name":"raidcom_model_limits","title":"Show storage model limits","description":"Valid parameter ranges for a storage model (serial number, LDEV ID, pool ID, LU number, port names), taken from the Command Reference appendices. Without `model`, lists the models.","inputs":[{"name":"model","type":"string","required":false,"description":"Storage model, so values are checked against its limits: vsp-one-b24, vsp-one-b26, vsp-one-b28, vsp-5000, vsp-e590, vsp-e790, vsp-e990, vsp-e1090. Aliases such as B28 or E990 work. Omit it to check a…"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":136}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T00:15:56.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":92,"partial":false,"deprecated":null,"stale":30,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-28","recent":[{"id":"chg_01a1a919-79f9-7efe-b960-414d62ac99ff","kind":"score.total_changed","summary":"Trust score (84 → 85)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp#chg-chg_01a1a919-79f9-7efe-b960-414d62ac99ff"},{"id":"chg_01a19eb9-3442-72c4-b252-a1c6fac2fdb3","kind":"score.total_changed","summary":"Trust score (83 → 84)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp#chg-chg_01a19eb9-3442-72c4-b252-a1c6fac2fdb3"},{"id":"chg_01a1946a-d4da-7c1a-90b5-24634b5bcd4e","kind":"score.total_changed","summary":"Trust score (82 → 83)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp#chg-chg_01a1946a-d4da-7c1a-90b5-24634b5bcd4e"},{"id":"chg_01a18a1d-b164-7e6e-b635-43ac2deef1e2","kind":"score.total_changed","summary":"Trust score (81 → 82)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp#chg-chg_01a18a1d-b164-7e6e-b635-43ac2deef1e2"},{"id":"chg_01a184be-b33b-722a-b8a9-2e81ef3abc4a","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp#chg-chg_01a184be-b33b-722a-b8a9-2e81ef3abc4a"},{"id":"chg_01a184be-0db9-701e-a020-b8f1d7023fcc","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp#chg-chg_01a184be-0db9-701e-a020-b8f1d7023fcc"},{"id":"chg_01a18307-5ce7-71d0-921e-a37a6d70398e","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp#chg-chg_01a18307-5ce7-71d0-921e-a37a6d70398e"},{"id":"chg_01a18306-88cd-715c-90e7-ae14ff4bf39d","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp#chg-chg_01a18306-88cd-715c-90e7-ae14ff4bf39d"},{"id":"chg_01a18284-c0ca-725e-9b1c-f10928875afb","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp#chg-chg_01a18284-c0ca-725e-9b1c-f10928875afb"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp","markdown":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp.md","changelogJson":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/visubramaniam-raidcom-mcp/raidcom-mcp.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/raidcom-mcp"},{"label":"Socket report","href":"https://socket.dev/npm/package/raidcom-mcp"},{"label":"Repository","href":"https://github.com/visubramaniam/raidcom-mcp"}]}}