Unofficial MCP server over the legalize-dev law-as-git corpus - national legislation for 32 jurisdictions (21 EU) as version-controlled Markdown with ELI-style citations and verifiable provenance.
legalize-mcp demonstrates solid tool design with consistent naming (verb_noun pattern), comprehensive parameter descriptions, and well-documented schemas. All 6 tools follow the legalize_* prefix convention and include ISO-3166 country codes with clear descriptions. Input schemas are complete with types and defaults. However, output schemas are not explicitly documented in the visible code, and error handling, while structured with [code] prefixes, lacks recovery guidance for agents. Tool descriptions are adequate (100-200 chars) but could be more prescriptive about when to use each tool vs. alternatives. The server includes excellent domain-specific instructions but lacks per-tool composition guidance.
Declare what this connector covers, how it is sourced, and what it does not cover.
Fetch a law's metadata and full text by id (optionally at a historical commit).
Fetch a law's frontmatter metadata only (title, dates, source_url), without the full text. Prefer it over legalize_get_law when you only need to verify a citation or check whether a law exists.
List the jurisdictions available in the legalize-dev corpus.
Fetch the timeline of reforms (commits) to a law.
Search a jurisdiction's laws by keyword (GitHub code search; requires a token).
Output schemas not documented in visible code. Tools return structured objects (LawMeta, LawText, Reform, SearchHit) but LLMs cannot see field definitions, types, or which fields are required for downstream chaining.
Error messages lack recovery guidance. ToolError returns [code] + message but does not suggest next steps (e.g., 'not_found: No law found. Try legalize_search_laws() with a keyword.').
legalize_search_laws requires GITHUB_TOKEN but does not validate its presence before execution. Returns config_error at runtime instead of failing fast with clear setup instructions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Tool composition guidance is in server instructions but not in individual tool descriptions. LLMs must read INSTRUCTIONS to understand call order; per-tool descriptions should hint at dependencies (e.g., 'Call legalize_search_laws first to find a law_id').
legalize_coverage has empty input schema ({}). While correct, its description does not explain what it returns or when to call it (e.g., 'Call when a search returns no results to understand what this corpus covers').