Open-source Model Context Protocol server for PrismHR — PEO workflow tools + Microsoft 365 connectors for Claude and other MCP-aware agents.
25 tools with consistent naming (verb_noun pattern: commercial_*) and detailed descriptions (100-300 chars, well above 20-char minimum). All tools have input schemas with typed parameters and descriptions. However, NO output schemas are documented anywhere in the codebase, LLMs cannot predict return structure. Parameter descriptions are good but lack format constraints (e.g., date format YYYY-MM-DD stated in description but not in schema pattern). No error handling guidance visible. All tools are READ_ONLY (safe), but no tool annotations (readOnlyHint) present in schema.
Absence journal audit — orphan entries, balance mismatches, overlap.
Bonus gross-up audit — tax impact + withholding verification.
COBRA eligibility sweep — flags terminations + qualifying events.
Dependents aging out of coverage (typically 26). Flags before premium mis-bills.
Final paycheck compliance — termination + accrual settlement.
1099-NEC preflight — contractor status + threshold tracking.
No output schemas documented. LLMs cannot predict return structure, field names, or types. Each tool description mentions what it returns (e.g., 'per-step critical/warning tally + ready_to_proceed flag') but no formal schema is visible in code.
Tool definitions inferred from imports and function signatures; actual MCP tool registration code not shown.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present in schemas. All tools are READ_ONLY but this is not declared in the tool definition, forcing LLMs to infer safety from descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Form 940 reconciliation — FUTA liability + deposit tracking.
Form 941 reconciliation — FICA + income tax liability + deposit tracking.
Per-employee garnishment ledger with CCPA + remit-to-agency tie-out. Use when: reviewing garnishment compliance, auditing court-ordered deductions, catching orphan garnishments.
Month-end close pack — batch health + classification + GL template + journal preflight. Returns per-step critical/warning tally + ready_to_proceed flag.
New-client go-live readiness pack.
Off-cycle payroll audit — one-off vouchers + GL impact.
Sweep open payroll batches at a client for stuck states. Flags batches stuck in INIT, stuck awaiting approval, with zero vouchers, past pay date but not posted, or containing negative net pay. Use when: daily ops review, pre-close readiness.
Pre-payroll sanity — classification + batch health + GL + journal preflight. Run before hitting 'Process' on a payroll.
PTO reconciliation — accrual vs. usage balance audit.
Quarter-end close pack — 941 + state WH + tax remittance + state filings orchestrator.
Reciprocal withholding audit — multi-state tax compliance.
Retirement loan status — active loans + repayment tracking.
Retirement NDT (Non-Discrimination Testing) — plan compliance.
State filings orchestrator — SUI + PFL + other state-specific filings.
State new-hire audit — SUI + reporting compliance.
State withholding reconciliation — per-state liability + deposit tracking.
Tax remittance tracking — federal + state deposit verification.
Audit a client's vouchers for classification errors before journal export. Catches FICA exempt misflags (the class of 941-balancing bug where an active W-2 employee has the FICA Exempt checkbox ticked), contractor-on-W2-pay-code, union code misuse, SS wage-base cap handling, additional-Medicare threshold, and state-SUTA mismatch for single-state employees. Use when: before closing a payroll period, running a 941, or onboarding a new client. Returns per-voucher findings with severity + remediation hints.
Year-end close pack — W-2 readiness + 1095-C + AIR + 1099-NEC + retirement NDT.
Date parameters documented as YYYY-MM-DD in descriptions but no JSON Schema format constraint (e.g., 'format': 'date') present. LLMs cannot validate format without explicit schema constraints.
No error handling guidance visible. Tools return findings/flags but no documented error cases, recovery paths, or actionable error messages for LLM retry logic.