-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
Two paths: use the MCP server in your AI tools, or hit the REST API directly with curl. They're the same data; the MCP is just structured for AI consumption.
claude mcp add --scope user --transport http arizona-statutes \
https://ars.cactus.watch/mcpRestart Claude Code. Verify with:
claude mcp listYou'll get 4 new tools: ars_get_section, ars_search, ars_list_titles, ars_list_sections.
Open ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) or the equivalent on Windows/Linux:
{
"mcpServers": {
"arizona-statutes": {
"url": "https://ars.cactus.watch/mcp"
}
}
}Quit and relaunch Claude Desktop.
Same URL, same Streamable HTTP transport. Wherever your client lets you add a remote MCP server, drop in https://ars.cactus.watch/mcp.
No client at all. The REST API is fully public:
curl https://ars.cactus.watch/api/ars/16-925ars_get_section(citation="16-925")
Returns the full text of A.R.S. § 16-925 (Advertising and fundraising disclosure statements) with section heading, body, source URL, and a "not authoritative" disclaimer.
Citation forms accepted:
16-925A.R.S. § 16-925§ 16-925-
16-925.01(decimal sections)
ars_search(query="campaign contribution")
Returns the top-ranked sections with snippets. Words are matched as prefix tokens with porter stemming.
ars_search(query="disclaimer", title=16)
Restricts to a single title. Title 16 = Elections, Title 13 = Criminal Code, Title 41 = State Government.
ars_list_titles()
Returns all 47 active titles with their names and section counts. Good for getting oriented.
ars_list_sections(title=16, limit=50)
Returns every section in Title 16 with its citation and name. Useful for "what's actually in this title".
- Read Examples and Recipes for real-world investigations
- Read Title Index for the full list of active titles
- Read Why MCP? if you're convincing someone (or yourself) to use this instead of curl