Agent-based data auditing over the Model Context Protocol
DataSentinel defines 8 tools with clear, domain-specific names (list_datasets, profile_dataset, check_missing, etc.) that follow verb_noun conventions. All tools have descriptions (avg ~100 chars, within baseline 34-392 range). Input schemas are present and typed. However, parameter descriptions are sparse or missing for several tools (e.g., list_datasets has empty input {}), and output schemas are not documented. Error handling returns structured {error, message} but lacks recovery guidance. No tool annotations (readOnlyHint, etc.) despite all being READ_ONLY. Resource support is present but minimal.
Count fully duplicated rows and, if key_columns is given, duplicated business keys.
Report null percentage per column; flags columns above warn/fail thresholds.
Detect numeric outliers per column using the Tukey IQR rule.
Scan text columns for probable PII (emails, Singapore NRIC/FIN, phone numbers, card numbers). Returns counts only, never values.
List dataset files available for auditing (relative to the data directory).
Return row/column counts, dtypes and memory footprint for a dataset.
Run every check on a dataset and return the combined findings with a 0-100 quality score and PASS/WARN/FAIL verdict.
list_datasets has empty input schema ({}). No parameters documented, violates pattern:tool-description requirement that every parameter needs a description.
Output schemas not documented for any tool. LLMs cannot plan downstream calls or extract fields without knowing response structure. Violates pattern:tool requirement.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all 8 tools being READ_ONLY. Misses current spec pattern for tool metadata.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2025-06-18+ | v2 |
Validate columns and dtypes against an expected {column: dtype} map (dtypes: integer, float, string, boolean, datetime).
Error handling returns {error, message} but lacks recovery guidance. Per pattern:recovery-guide, errors should tell LLM what to do next (e.g., 'Try search_users() first').
STDIO transport only. Hard cap at 50 for protocol readiness, not remotely accessible, cannot be used by hosted MCP clients.