MCP server for US WARN Act mass-layoff notices — 48 states, 1988 to today, rebuilt daily. No key, no dependencies.
Six read-only tools with complete JSON Schema input definitions and clear descriptions (avg 85 chars). All parameters are typed and described. Tool names follow verb_noun convention (search_, get_, list_). Output schemas are documented in code comments. Main gaps: no error handling guidance, no pagination metadata in responses, no tool annotations (readOnlyHint), and descriptions could be more LLM-optimized (10-20 chars shorter). Naming is strong; schema completeness is good; descriptions are adequate but generic.
Get the log of notices a state agency edited or withdrew after publication. Observed change log built by diffing consecutive daily builds.
Get dataset coverage and freshness information, including as-of dates for each state.
Get all WARN Act notices ever filed by a specific employer, back to 1988.
Get the most recent WARN Act notices filed in the last N days.
Search WARN Act notices by employer name, state, and date range. Whole-token match on company name.
Get aggregate WARN Act notice counts and affected employee totals by state and month.
No tool annotations (readOnlyHint). All six tools are read-only but lack explicit readOnlyHint annotation in schema, forcing LLMs to infer safety from descriptions.
No error recovery guidance. Tools lack descriptions of failure modes (e.g., 'If state code is invalid, returns empty list' or 'If company not found, try search_layoff_notices with partial name'). LLMs cannot self-correct.
Pagination not documented. Tools accept 'limit' but no 'offset' or 'cursor' parameter, and responses do not indicate total count or whether more results exist. Large result sets may be truncated silently.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Output schema not formally documented in tool definitions. Code comments describe CSV structure, but tool registration does not include explicit 'outputSchema' field. LLMs cannot plan downstream operations.
Descriptions are generic and lack LLM-optimized context. E.g., 'Get the most recent WARN Act notices filed in the last N days' (60 chars) could be 'Fetch latest mass-layoff notices from past N days to track emerging workforce reductions' (90 chars, more actionable). Avg description length 75 chars vs baseline 194 chars suggests underutilization.