MCP server giving any AI agent 571,582 provisions of US federal, state and municipal law with verbatim citations — plus LLC/nonprofit formation intake. Thin client of corpuslaw.us.
Five tools with mixed quality. search_law, lookup_naics, and format_checklist have reasonable descriptions (40-80 chars) and basic schemas, but lack parameter descriptions and output schema documentation. finalize_handoff and formation.handoff have enums and contact fields but no output schema docs. No tool has error handling guidance, recovery hints, or idempotency markers. Parameter descriptions are sparse or missing entirely (e.g., 'limit' in search_law lacks range/default guidance). No tool documents what it returns or how to chain results to downstream tools. Naming is verb-forward (search_, lookup_, format_, finalize_) but descriptions don't explain WHEN to use each tool vs. alternatives.
Validate the collected draft and produce the prefilled corpuslaw.us/formation handoff URL. Call once the founder confirms entity type and state.
Render checklist items as consistently formatted, citation-linked markdown.
Hosted tool that validates formation draft and produces prefilled handoff URL with attribution tracking via API key.
Find NAICS activity codes for a plain-English business description.
Search the Corpus law database (statutes, municipal codes). Returns cited excerpts.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., does search_law return citations, full text, or summaries?). Breaks tool chaining.
Parameter descriptions missing or incomplete. 'limit' in search_law has no default or range (should be '1-50, default 6'). 'jurisdiction' lacks format guidance (is 'MS' or 'US-MS' correct?). 'items' in format_checklist lacks structure details.
No error handling or recovery guidance. Tools do not document what happens on invalid jurisdiction, missing NAICS code, or API failures. LLMs cannot self-correct or retry intelligently.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
finalize_handoff and formation.handoff are near-duplicates with different parameter names ('jurisdiction' vs 'state'). Naming inconsistency forces LLM to reason about which to call and risks parameter mismatches.
No idempotency or confirmation hints on write operations (finalize_handoff, formation.handoff). Agents cannot know if retrying is safe or if it will create duplicate handoffs. Missing confirmation-request pattern.