MCP Server Documentation

Use ARS-25 directly inside Claude, Cursor, or any MCP-compatible AI assistant

What is MCP?

Model Context Protocol (MCP) is an open standard that lets AI assistants use external tools — like how your browser uses extensions. Instead of copy-pasting statute text into a chat window, MCP lets Claude search and read Arizona family law statutes directly.

AI Assistant

Claude, Cursor, or any MCP client

MCP Protocol

ARS-25 Data

Statutes, search, and analysis

No coding needed
Runs locally on your machine
Your data never leaves your computer

Installation

1

Install prerequisites

You need Python 3.12+ and uv (a fast Python package manager).

macOS / Linux

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows (PowerShell)

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
2

Clone the repository

git clone https://github.com/mfbaig35r/ars-25-mcp.git
3

Install dependencies

cd ars-25-mcp && uv sync
4

Connect to Claude Desktop

Open your Claude Desktop config file and add the ARS-25 server:

macOS — ~/Library/Application Support/Claude/claude_desktop_config.json

Windows — %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "ars-25": {
      "command": "uv",
      "args": [
        "--directory", "/FULL/PATH/TO/ars-25-mcp",
        "run", "python", "-m", "ars25_mcp"
      ]
    }
  }
}

Replace /FULL/PATH/TO/ars-25-mcp with the actual path where you cloned the repository.

5

First run — build the database

Restart Claude Desktop, then ask Claude:

“Run ingest_statutes to build the statute database”

This is a one-time setup that takes about 3–5 minutes. It scrapes statutes from the Arizona Legislature website and builds a local search index.

6

Verify everything works

Once ingestion finishes, try asking Claude:

“What does section 25-403 say about custody factors?”

If you get back the statute text, you're all set!

Available Tools

The MCP server provides 6 tools that Claude can use. You don't need to call these directly — just ask Claude your question in plain English and it will pick the right tool automatically.

search_statutes

Semantic search across all Arizona family law statutes. Uses hybrid vector + full-text search to find relevant sections.

ParameterTypeDefaultDescription
querystringrequiredNatural language search query
top_knumber10Number of results to return

Example prompt

What are the factors for child custody in Arizona?

get_statute

Retrieve the full text of a specific statute section by its section number.

ParameterTypeDefaultDescription
section_numberstringrequiredSection number (e.g., "25-403")

Example prompt

Show me the full text of section 25-403

list_statutes

List all statute sections within a specific chapter, with titles and section numbers.

ParameterTypeDefaultDescription
chapternumberrequiredChapter number (1-8)

Example prompt

List all statutes in chapter 4

get_chapter_tree

Get the hierarchical structure of Title 25, showing chapters, articles, and section titles.

Example prompt

Show me the full structure of Title 25

ingest_statutes

One-time setup: scrapes statutes from the Arizona Legislature website, chunks them, generates embeddings, and builds the search database. Takes 3-5 minutes.

Example prompt

Build the statute database

get_ingestion_status

Check whether the statute database has been built and is ready for search.

Example prompt

Is the statute database ready?

How It Works

1. Scrape

Pull statute text from azleg.gov

2. Chunk

Split into searchable sections

3. Embed

Generate vector embeddings (all-MiniLM-L6-v2)

4. Search

Hybrid vector + full-text search via LanceDB

Everything runs on your machine — no API keys, no cloud services, no data ever leaves your computer.

Troubleshooting

Pinboard0

No statutes pinned yet. Pin statutes from browse, search, or chat to analyze them together.