HIPAA-compliant MCP server for redacting PHI from healthcare data
Server has 10 tools with complete input schemas and descriptions visible in src/index.ts. However, critical gaps limit production readiness: (1) Most tool descriptions lack actionable context, they state WHAT but not WHEN or WHY to use each tool. E.g., 'Verify that no data is stored locally' is vague; does it check runtime state, filesystem, or network logs? (2) No output schemas documented, LLMs cannot predict response structure for downstream chaining. (3) Tools 6 - 10 (verify_data_privacy, get_privacy_statement, audit_data_retention, generate_compliance_report, secure_wipe_session) appear to be meta/assurance tools rather than core redaction functionality, inflating the tool count without adding domain value. (4) Parameter descriptions lack format/constraint details, e.g., encryptionKey says '64-character hex string' but no validation guidance. (5) No error handling patterns visible, tools do not guide recovery (e.g., 'If encryption fails, try generate_encryption_key first'). Naming is solid (verb_noun pattern, clear intent), but composition and output design are weak.
Analyze healthcare data for PHI risk without redacting (for assessment purposes)
Audit and confirm zero data retention - verify no PHI data is persisted
Generate comprehensive HIPAA compliance report emphasizing local-first privacy design
Generate a HIPAA-compliant encryption key for secure data handling
Get comprehensive privacy and security statement for the local-first MCP server
List all available PHI detection patterns organized by category
Redact PHI from healthcare data (JSON, XML, or plain text) in compliance with HIPAA regulations
No output schemas documented. LLMs cannot predict response structure, breaking tool chaining. E.g., redact_healthcare_data returns what? A string? An object with {redacted_data, redaction_summary}? This forces agents to guess or fail.
Descriptions lack actionable context. 'Verify that no data is stored locally or transmitted externally' does not explain WHEN to call this, what it checks (runtime memory? filesystem? network logs?), or what success looks like. Descriptions should answer: What? When? Why? Prerequisites?
Parameter descriptions lack format/constraint details. encryptionKey says '64-character hex string' but no validation guidance or error recovery path. maskCharacter default is '*' but no mention of multi-char support or escaping rules.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Explicitly clear any temporary data or variables from memory (defensive privacy measure)
Validate the strength and format of an encryption key
Verify that no data is stored locally or transmitted externally - confirms zero data retention policy
No error handling patterns visible. Tools do not guide recovery. E.g., if redaction fails due to invalid format, does the tool return a structured error with the invalid portion? Does it suggest calling analyze_phi_risk first? Silent failures or generic errors block agent reasoning.
Tools 6 - 10 (verify_data_privacy, get_privacy_statement, audit_data_retention, generate_compliance_report, secure_wipe_session) are meta/assurance tools that do not directly redact data. They inflate the tool count and dilute focus. Consider consolidating into a single 'get_compliance_info' tool or moving to a separate 'compliance' resource.