Skip to main content
Glama
jack-nolan-dev

legal-review-agent

Legal Review Agent

An AI-powered legal risk classifier for small business decisions. Describe what you're about to do in plain English — get back a structured GREEN/YELLOW/RED verdict with statute citations, reasoning, and the compliant way to do it.

Works as a CLI tool, a Claude Desktop tool (MCP), or a Claude Code tool — so you can get a legal gut-check right inside the conversation where you're planning the decision.

Built for small business owners who can't afford to run every decision past a lawyer, but also can't afford to get it wrong.

This tool provides legal research, not legal advice. It is not a substitute for a licensed attorney. Always consult a professional before acting on high-stakes decisions.

How It Works

You ask a question. The agent classifies it into one of three risk levels:

  • GREEN — Safe to proceed

  • YELLOW — Proceed only with specific conditions

  • RED — Do not proceed

Every verdict comes with the specific law behind it, a compliant alternative, and a call on whether you actually need a lawyer for this one.

Related MCP server: clio-mcp

Example

$ python legal_review.py --state MA "Can I record sales calls with prospects?"
⚠️  This tool provides legal research, not legal advice. Consult a licensed attorney before acting.

🔴 RED — Do not proceed

WHY: Massachusetts is a strict all-party-consent wiretap state (M.G.L. c. 272 §99).
Recording any call — including sales calls — without explicit verbal consent from ALL
parties is a criminal offense, not just a civil matter. Commonwealth v. Hyde (2001)
upheld criminal conviction for secret recording even of police officers.

COMPLIANT ALTERNATIVE:
1. At the start of every call, say: "Just so you know, this call may be recorded for
   quality purposes. Is that okay with you?"
2. Wait for a spoken "yes" before proceeding
3. If they decline, do not record — take written notes instead
4. Store consent logs (date, time, caller, confirmation)

NEEDS A REAL PROFESSIONAL? No — the rule is clear-cut. Just follow the script above.

Sources:
- M.G.L. c. 272 §99 — Massachusetts wiretap statute
- Commonwealth v. Hyde, 434 Mass. 610 (2001)

Installation

Requirements: Python 3.10+

# Clone the repo
git clone https://github.com/jack-nolan-dev/legal-review-agent.git
cd legal-review-agent

# Create a virtual environment and install dependencies
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt

For CLI mode only (MCP mode doesn't need an API key):

Get an API key from console.anthropic.com and set it:

# Option 1: environment variable
export ANTHROPIC_API_KEY=your-key-here

# Option 2: .env file (recommended — persists across sessions)
echo "ANTHROPIC_API_KEY=your-key-here" > .env

Usage

Single question

python legal_review.py "Can I scrape Google reviews and put them on my client's website?"

With state context

python legal_review.py --state CA "Can I hire a freelancer to work 40hrs/week exclusively for me?"

With business type

python legal_review.py --business-type "restaurant" "Do I need to post calorie counts on my menu?"

Interactive mode

python legal_review.py --interactive --state MA

Raw JSON output

python legal_review.py --raw "Can I send cold emails to local businesses?"

See the full system prompt

python legal_review.py --verbose "question"

Use a different model

# Use Opus for more complex analysis
python legal_review.py --model claude-opus-4-6 "complex multi-jurisdictional question"

Use with Claude Desktop or Claude Code (MCP)

This is the easiest way to use the tool — no API key needed. It works as an MCP server, which means you can add it as a tool inside Claude Desktop or Claude Code. Then you just ask Claude to review a business decision and it calls the tool automatically.

No API key required. The tool provides the legal knowledge base and analysis framework to the Claude session that's already running — your existing Claude Desktop or Claude Code subscription does the reasoning.

Setup (do this first)

git clone https://github.com/jack-nolan-dev/legal-review-agent.git
cd legal-review-agent
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt

Claude Desktop

Open your Claude Desktop config file:

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

Add the mcpServers block (or add to it if one already exists):

{
  "mcpServers": {
    "legal-review": {
      "command": "/absolute/path/to/legal-review-agent/.venv/bin/python",
      "args": ["/absolute/path/to/legal-review-agent/mcp_server.py"]
    }
  }
}

Replace /absolute/path/to/legal-review-agent with the actual path where you cloned the repo. Use absolute paths, not ~.

Restart Claude Desktop. Then just ask:

"Use the legal-review tool to analyze: Can I scrape Google reviews and put them on my client's website?"

Claude Code

claude mcp add legal-review -- /absolute/path/to/legal-review-agent/.venv/bin/python /absolute/path/to/legal-review-agent/mcp_server.py

Restart Claude Code, then ask about any legal question and it'll use the tool.

Architecture

legal-review-agent/
├── legal_review.py          # CLI entry point (Click)
├── mcp_server.py            # MCP server for Claude Desktop / Claude Code
├── agent/
│   ├── prompt.py            # System prompt construction
│   ├── client.py            # Anthropic SDK wrapper
│   └── formatter.py         # Terminal output formatting
├── knowledge/
│   └── legal_base.md        # Core legal knowledge base
├── examples/
│   └── sample_queries.md    # 10 example queries with expected verdicts
├── pyproject.toml           # Package config
└── requirements.txt         # anthropic, click, python-dotenv, mcp

How the prompt works:

  1. prompt.py loads the legal knowledge base from knowledge/legal_base.md

  2. It constructs a system prompt that instructs Claude to analyze the question, identify the legal domain, cite real statutes, and return a structured verdict

  3. Optional state and business-type context is injected into the prompt

  4. client.py sends the question to Claude via the Anthropic SDK

  5. formatter.py color-codes the terminal output based on the verdict

The knowledge base covers 12 legal areas common to small businesses: wiretapping, CAN-SPAM, TCPA, ROSCA, copyright, trademark, right of publicity, consumer protection (93A, UCL, etc.), entity/liability, contracts, data privacy, and employment classification.

Domain

Key Laws

Call Recording

18 U.S.C. §2511, state wiretap statutes

Cold Email

CAN-SPAM Act (15 U.S.C. §7701)

Cold Calls

TCPA (47 U.S.C. §227), FTC TSR

Subscriptions

ROSCA (15 U.S.C. §8401), state auto-renewal laws

Copyright

17 U.S.C. §101 et seq.

Trademark

Lanham Act (15 U.S.C. §1051)

Right of Publicity

State statutes (CA §3344, NY §50-51)

Consumer Protection

MA 93A, CA UCL, NY GBL §349

Business Entity

State LLC/partnership law

Contracts

UCC, common law

Data Privacy

CCPA/CPRA, COPPA, state privacy laws

Employment

IRS classification, DOL tests, CA AB 5

Limitations

  • Not legal advice. This is a research tool, not a lawyer. The disclaimer is there for a reason.

  • Not a substitute for an attorney. For entity formation, contracts, tax strategy, or anything with potential criminal liability — get a real professional.

  • Knowledge base is not exhaustive. It covers common small-business scenarios, not every area of law.

  • No web search. The tool cannot verify that statutes are current. It flags uncertainty when it's unsure about effective dates or recent amendments.

  • US-focused. Federal + state law only. No international coverage.

  • Model limitations. Claude can hallucinate citations. The prompt instructs it not to, and to flag uncertainty — but always verify citations independently before relying on them.

Tech Stack

  • Python 3.10+

  • Anthropic SDK — Claude API client

  • Click — CLI framework

  • python-dotenv — Environment variable loading

  • MCP SDK — Model Context Protocol server for Claude Desktop / Claude Code integration

  • Claude Sonnet 4.6 — Default model (swap to claude-opus-4-6 via --model for deeper analysis)

License

MIT — see LICENSE.

Available Tools

1 tool

Tool Schema Changelog

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

  1. 1 tool updatev0.1.0
    • First observedlegal_review

TDQS

A4.6/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusing it with another tool. The purpose of legal_review is clearly defined and distinct by default.

Naming Consistency5/5

A single tool named legal_review uses a clear, descriptive snake_case format. There are no other tools to create naming inconsistencies.

Tool Count4/5

One tool is on the thin side, but it is reasonably appropriate for a narrowly-scoped legal review agent. The tool is parameterized enough to handle different questions, states, and business types.

Completeness5/5

The tool fully covers the stated domain of evaluating legal risk for a business decision. It handles jurisdiction and business-type context and returns actionable next steps, so there are no obvious dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers