Standalone MCP server exposing HelixID platform-operator workflows (DID/wallet/status-list/VC lifecycle) as tools for an MCP client or agent — the MCP analogue of @helixid/cli.
Server has 6 tools with complete input schemas and descriptions. Naming follows verb_noun pattern (did_create, issuer_init, status_list_create, vc_issue, revoke, wallet_inspect). Descriptions are present and substantive (100-200 chars), explaining WHAT each tool does and prerequisites (HELIX_WALLET_PASSPHRASE requirement). However, parameter descriptions lack actionable constraints (format, range, examples). Output schemas are not documented, LLMs cannot predict return structure for chaining. Error handling is minimal; no recovery guidance or categorization. Security is strong (secrets via env var, not params), but no tool annotations (readOnlyHint, destructiveHint) to guide agent planning.
Create a new DID (did:web, did:key, or did:hedera) and its encrypted wallet file. did:web also creates its initial status list unless statusList is set to false. Requires the HELIX_WALLET_PASSPHRASE environment variable.
Load an issuer wallet and report its DID and public key. Requires HELIX_WALLET_PASSPHRASE.
Revoke a credential by flipping its status list bit. Requires HELIX_WALLET_PASSPHRASE.
Create a signed BitstringStatusList credential file for VC revocation tracking. Requires HELIX_WALLET_PASSPHRASE.
Issue a HelixAgentCredential to an agent DID, consuming the next available status list index. Requires HELIX_WALLET_PASSPHRASE.
Inspect wallet contents — DID, public key, and stored credentials. Never returns the private key. Requires HELIX_WALLET_PASSPHRASE.
Output schemas not documented. LLMs cannot predict return structure (fields, types, nested objects) for downstream tool chaining or data extraction.
Parameter descriptions lack actionable constraints. E.g., 'expires' accepts '90d, 24h' but format is not formally specified; 'scopes' is comma-separated but no enum or pattern constraint; 'network' enum is present but other params lack similar rigor.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Agents cannot distinguish safe reads (issuer_init, wallet_inspect) from destructive writes (did_create, revoke) without parsing descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Error handling is minimal. No recovery guidance (e.g., 'If wallet not found, call issuer_init first'). No error categorization (retryable vs user-fixable vs fatal). Agents cannot self-correct on failure.
No confirmation/dry-run pattern for irreversible operations (did_create, vc_issue, revoke). Agents can accidentally create DIDs or revoke credentials without a safety gate.