A deterministic MCP server for legal intake triage that provides tools for triaging incoming legal inquiries, including practice area enumeration, conflict screening, matter validation, and follow-up email templating.
Server provides 5 tools with complete input schemas and descriptions. Naming follows verb_noun convention (list_, screen_, validate_, generate_, log_). Descriptions are adequate (50-150 chars) but lack LLM-optimized guidance on WHEN to use each tool or dependencies between them. Parameters are typed and mostly described, but lack constraints (enums, ranges, patterns) that would guide LLM input. Output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal; no recovery guidance. The validate_matter tool accepts a large object with 24 optional fields but provides no guidance on which are critical vs. optional, forcing LLMs to guess. log_triage_record is a write operation but lacks confirmation/dry-run pattern.
Produce a deterministic follow-up email template with merge slots for missing or incomplete intake fields.
Enumerate the firm's practice areas from bundled sample data.
Append a triage record to a local JSONL log, gated on conflicts status (only logs if conflicts are cleared or waived).
Screen party names against a bundled conflicts dataset to identify potential conflicts of interest.
Validate and normalize a structured matter summary, checking for required fields and data consistency.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Responses are free-form text or JSON without declared schema.
validate_matter accepts 24 optional fields with no guidance on which are required, recommended, or context-dependent. LLMs cannot determine completeness without trial-and-error.
log_triage_record is a write operation (appends to JSONL) but lacks confirmation/dry-run pattern. No protection against accidental logging of incomplete or incorrect records.
Descriptions lack dependency hints and WHEN-to-use guidance. E.g., screen_parties should note 'Call this before validate_matter to check conflicts.' No guidance on tool sequencing.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | <=2025-11-25 | v2 |
response_format parameter appears in 4 tools but is not constrained as enum in schema (only in description). LLMs may pass invalid values like 'xml' or 'yaml'.