Skip to main content
Glama

lawyer-mcp

MCP (Model Context Protocol) server for Legalize.dev: AI tools to query and understand legal frameworks across countries.

Goal: help an AI quickly answer questions about a country’s legal framework by querying Legalize.dev’s structured legislation API.

Status

Work in progress.

Related MCP server: Vaquill-AI/vaquill-mcp

Data source

Auth

Legalize.dev uses a bearer token in the Authorization header (see components.securitySchemes.ApiKeyAuth in the OpenAPI spec).

This server expects:

  • LEGALIZE_API_KEY env var (either the raw leg_... token or the full Bearer leg_... value)

TLS / certificates (Codex on Windows)

If you hit errors like certificate verify failed: certificate signature failure, your Python/Codex environment may be missing the right CA bundle.

Options:

  • Prefer installing/updating CA certificates in your environment (recommended).

  • Set LEGALIZE_SSL_CERT_FILE=/path/to/ca-bundle.pem to point to a CA bundle.

  • If certifi is installed, lawyer-mcp will automatically use it.

  • As a last resort (NOT recommended): LEGALIZE_SSL_INSECURE=1 disables certificate verification.

Tools (MCP)

Tools are derived from https://legalize.dev/openapi.json.

Toolset selection

By default we expose a full read-only toolset. If you want the smallest useful surface area (to reduce model confusion), set:

  • LEGALIZE_TOOLSET=minimal

Minimal toolset includes:

  • legalize_openapi_summary — public summary of the OpenAPI spec (no API key)

  • legalize_countries — list supported countries

  • legalize_jurisdictions — list jurisdictions within a country

  • legalize_laws — search/list laws within a country (single page)

  • legalize_laws_all — same, but auto-paginates (best-effort flattening)

  • legalize_law_meta — lightweight law metadata

  • legalize_law_get — full law payload

  • legalize_reforms — list reforms/diffs for a law

Full toolset additionally includes:

  • legalize_commits — list git commits for a law

  • legalize_law_at_commit — fetch law content at a commit SHA

  • legalize_rangos — list legal hierarchy/ranks (rangos)

  • legalize_stats — summary statistics per country (optional jurisdiction)

  • legalize_account — current API key account/usage/limits (does not count against quota)

Dangerous tool (opt-in)

  • legalize_rotate_key — rotate API key (invalidates current key). Disabled by default; enable with LEGALIZE_ENABLE_DANGEROUS_TOOLS=1.

Install

For now this is a single-file Python module (no external dependencies).

git clone https://github.com/pugafran/lawyer-mcp.git
cd lawyer-mcp

# required
export LEGALIZE_API_KEY="leg_..."   # or "Bearer leg_..."

python3 -m lawyer_mcp

Option B: pipx / pip (if you have pip available)

pipx install git+https://github.com/pugafran/lawyer-mcp.git
# or: python -m pip install git+https://github.com/pugafran/lawyer-mcp.git

export LEGALIZE_API_KEY="leg_..."
lawyer-mcp

Configure in Claude Desktop (MCP)

  1. Install the server (see Install above).

  2. Open Claude Desktop → Settings → Developer → Edit MCP config.

  3. Add a server entry like this:

{
  "mcpServers": {
    "lawyer": {
      "command": "python3",
      "args": ["-m", "lawyer_mcp"],
      "env": {
        "LEGALIZE_API_KEY": "leg_...",
        "LEGALIZE_TOOLSET": "minimal"
      }
    }
  }
}

Restart Claude Desktop. You should then see the legalize_* tools available.

Configure in OpenAI Codex / IDEs

Codex support depends on the client you are using (Codex CLI vs an IDE with MCP support).

If your Codex/IDE supports MCP servers via a JSON config, use the same command/env as above:

  • command: python3

  • args: -m lawyer_mcp

  • env: LEGALIZE_API_KEY=...

If you tell me which “Codex” you mean (Codex CLI, VS Code extension, Cursor, etc.), I’ll add an exact, copy/paste config snippet for that client.

Run

# required
export LEGALIZE_API_KEY="leg_..."   # or "Bearer leg_..."

# optional (useful for tests/self-hosted mirrors)
# export LEGALIZE_BASE_URL="https://legalize.dev"
# export LEGALIZE_HTTP_RETRIES=2
# export LEGALIZE_HTTP_TIMEOUT=30

# optional (DANGEROUS): exposes `legalize_rotate_key`
# export LEGALIZE_ENABLE_DANGEROUS_TOOLS=1

python3 -m lawyer_mcp

Available Tools

13 tools
legalize_accountA

Get account usage/limits info for the current API key (does not count against quota).

Inputs: no named parameters.

legalize_commitsB

List git commits for a law repository (lightweight history).

Inputs: law_id (required), country (required).

legalize_countriesB

List supported countries.

Inputs: no named parameters.

legalize_jurisdictionsB

List jurisdictions within a country.

Inputs: country (required).

legalize_law_at_commitA

Fetch the law content as it was at a specific git commit SHA.

Inputs: sha (required), law_id (required), country (required).

legalize_law_getC

Fetch a full law payload.

Inputs: law_id (required), country (required).

legalize_law_metaC

Get metadata for a law (lightweight endpoint).

Inputs: law_id (required), country (required).

legalize_lawsA

Search/list laws within a country (single page).

Inputs: country (required), q, page, year, +4 more.

legalize_laws_allB

Search/list laws within a country, automatically paging until exhaustion or max_pages. Returns raw page payloads plus a best-effort flattened list when the API returns an array or a {items|data|results} container.

Inputs: country (required), q, year, status, +5 more.

legalize_openapi_summaryA

Public: summarize the Legalize.dev OpenAPI spec (endpoints, versions). No API key required.

Inputs: no named parameters.

legalize_rangosB

List the legal hierarchy/ranks (rangos) for a country.

Inputs: country (required).

legalize_reformsB

List reforms (diffs) for a law, newest-first; useful for change tracking.

Inputs: law_id (required), country (required), limit, offset.

legalize_statsA

Get summary statistics for a country (optionally filtered by jurisdiction).

Inputs: country (required), jurisdiction.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 13 tools

    Disambiguation5/5

    Each tool targets a distinct resource or action: metadata vs full law, paginated vs single-page search, diffs vs git history. The pagination variant (laws_all) is clearly differentiated from laws, and the hierarchy/rank tool is unique. No two tools appear to do the same thing.

    Naming Consistency5/5

    All 13 tools share the consistent `legalize_` prefix and use snake_case. The suffix pattern is predictable: simple resource names (countries, laws) or resource_qualifier (law_get, law_at_commit). Even the paginated variant follows a clear `_all` suffix, making the naming scheme uniform and easy to navigate.

    Tool Count5/5

    13 tools is well within the ideal 3-15 range for a domain-specific API client. Each tool addresses a distinct need, from listing countries to retrieving historical law content, with no redundancy or bloat.

    Completeness5/5

    The tool set provides comprehensive read-only coverage of the Legalize.dev API: discovery (countries, jurisdictions, rangos), search (laws, laws_all), retrieval (law_get, law_meta), change tracking (reforms, commits, law_at_commit), and account management (account). No obvious gaps exist for the stated purpose of legal information retrieval.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers