For Agents & Developers

EveryAILaw is the machine layer for AI law. This page covers how we compare to other trackers, runnable MCP demo recipes, and copy-paste integration examples for JSON API, Python, and GRC tooling.

How We Compare

The IAPP tracker, OECD.AI, and White & Case AI Watch provide useful human-oriented policy tracking and legal analysis. EveryAILaw has a different focus: obligation-level, source-linked records that software can query through a public JSON API, bulk export, change feeds, calendar, and MCP server.

Reviewed against those public pages on 2026-08-02. Re-check their capabilities before publishing downstream comparisons.

Trust Artifacts

Enterprise buyers and compliance auditors look for these signals. EveryAILaw ships all of them:

Operational boundary: T11 review-to-publication and T14 federation reconciliation are locally validated. T15's 23-case failure rehearsal is offline fixture evidence. Native GitHub failure-email canaries were received, but repository-owned direct email and independent missed-run monitoring remain open. Deployed health requires deployment-specific evidence.

MCP Availability

The JSON API at api/v1/ is free and unauthenticated. The current MCP server is also free and requires no authentication. It provides 15 free corpus tools, allows 100 tool calls per process per hour, and caps list_* and search responses at 100 items.

Authenticated MCP Phase A is available. Subscribers can issue and revoke a hashed key at EveryAILaw Pro. The public MCP server validates EVERYAILAW_API_KEY and, on success, elevates the existing 15 tools to 10,000 calls per process per hour with uncapped list results.

The limited Phase B agentic capability set is available. Live-accepted capabilities: subscribe_to_changes, get_audit_log, save_profile, query_with_profile, custom_matrix, regulation_change_webhooks, saved_profiles, query_audit_log.

Agentic boundary: Saved profiles filter the modeled corpus and do not determine legal applicability. Missing custom-matrix cells remain unknown. The check_requirement tool and static matrices report modeled provision mappings in the pinned corpus. Their boolean and cells do not establish complete legal coverage; a false result or empty cell is not an affirmative conclusion of legal non-applicability, no duty, compliance, or no legal risk. The tool preserves required for existing clients and adds coverage_status plus coverage_interpretation; clients that ignore the new fields continue to run but do not receive this distinction. Webhooks are informational and authorize no customer-system action or legal/public side effect.

The overall Pro offer remains market-testing. The remaining advertised capability is SLA 99.5% target. The machine-readable boundary and evidence date are published at pro-capabilities.json.

When a tool response is truncated by the MCP cap, the response includes total_available and points to the static JSON API. When the rate limit trips, the error includes reset_in_seconds. The static JSON API does not share the MCP process limit.

MCP Demo: Colorado AI Hiring Tool Obligations

The question: "Which current Colorado records model human-oversight obligations relevant to AI hiring, and what is the verification evidence?"

Add the published package to your Claude Desktop or MCP client config (.well-known/mcp.json is the discovery file):

{
  "mcpServers": {
    "everyailaw": {
      "command": "npx",
      "args": ["-y", "every-ai-law@0.9.2"]
    }
  }
}

Then in a Claude session (or any MCP-capable agent):

// Step 1: Find all Colorado regulations
list_regulations({ jurisdiction: "us-co" })
// Returns current Colorado records, including colorado-sb26-189; repealed colorado-sb24-205 is excluded by default

// Step 2: Inspect the current Colorado ADMT record
get_regulation({ id: "colorado-sb26-189" })
// Returns the current instrument record and its four modeled provisions

// Step 3: Check the specific requirement
check_requirement({ regulation: "colorado-sb26-189", obligation: "human-oversight" })
// Returns: required: true, coverage_status: "modeled_mapping_present",
// provisions: ["colorado-sb26-189-human-review"]
// required preserves the existing boolean mapping contract; false means no modeled mapping,
// not an affirmative conclusion that no legally relevant duty exists

// Step 4: Get verification evidence
get_evidence({ provision_id: "colorado-sb26-189-human-review" })
// Returns: source_url, verified_date, notes

// Step 5: Get upcoming enforcement dates
get_timeline({ after: "2026-01-01" })
// Returns Colorado milestones with days-until counts

Result: A structured answer with obligation IDs, effective dates, and source-linked evidence, subject to the corpus review and currentness limits — all from a single MCP session, no scraping, no HTML parsing.

Current provision detail

The verified published 0.9.2 package includes get_provision, with 15 free tools and 20 total tools. To inspect the same release from this checkout, start the source server from the repository root:

Literal

node scripts/mcp-server.js

With the server selected in an MCP client, call get_provision({ id: "eu-ai-act-literacy" }). The current detail includes requirement and penalty rows, the amendment source locator and OF term/duty IDs. Original duty application and amendment wording dates remain distinct; as_of history is unsupported.

Cross-Graph Demo: Obligations + Enforcement Evidence

EveryAILaw is the load-bearing middle of the PAICE Legal Graph. Its obligation IRIs are anchors for AI Incident Law, which tracks litigation outcomes. A cross-graph MCP session can answer: "Which Colorado AI obligations have been tested in enforcement actions?"

// On EveryAILaw MCP:
get_obligation({ id: "risk-assessment" })
// Returns @id: "https://everyailaw.com/obligation/risk-assessment/"

// On AI Incident Law MCP (when available):
find_incidents_by_obligation({ obligation_iri: "https://everyailaw.com/obligation/risk-assessment/" })
// Returns incidents anchored to the same obligation IRI

// Result: the only stack that can programmatically connect
// regulatory obligations to litigation outcomes via stable IRIs.

The cross-graph query is the unique capability. No incumbent tracker publishes stable obligation IRIs, so this query is impossible against them.

Integration Recipes

curl + jq: What Colorado regulations are currently enforcing?

curl -s https://everyailaw.com/api/v1/regulations.json \
  | jq '.regulations[] | select(.jurisdiction | test("us-co|Colorado";"i")) | select(.status == "enforcing") | {name, status, effective}'

curl + jq: All provisions requiring bias-prevention, with verified dates

curl -s https://everyailaw.com/api/v1/by-obligation/bias-prevention.json \
  | jq '.provisions[] | {regulation_name, provision_name: .name, effective, verified}'

curl + jq: Check the exclusion cache for a specific law

curl -s https://everyailaw.com/api/v1/exclusions.json \
  | jq '.exclusions[] | select(.name | test("deepfake";"i")) | {name, jurisdiction, principle, reason}'

Python: Build an obligation matrix for your GRC tool

import httpx, json

base = "https://everyailaw.com/api/v1"
matrix = httpx.get(f"{base}/obligation-matrix.json").json()["matrix"]
regs   = {r["id"]: r for r in httpx.get(f"{base}/regulations.json").json()["regulations"]}
obls   = {o["id"]: o for o in httpx.get(f"{base}/obligations.json").json()["obligations"]}

# For each obligation: which regulations require it?
for obl_id, reg_map in matrix.items():
    obl_name = obls.get(obl_id, {}).get("name", obl_id)
    reg_names = [regs[r]["name"] for r in reg_map if r in regs]
    print(f"{obl_name}: {len(reg_names)} regulations")
    # obl_name -> list of regulation names, effective dates, statuses
    # Import into your GRC tool's obligation library

Python: Staleness check for your compliance workflow

import httpx
from datetime import date, timedelta

provisions = httpx.get("https://everyailaw.com/api/v1/provisions.json").json()["provisions"]
threshold  = date.today() - timedelta(days=30)
stale = [
    p for p in provisions
    if p.get("verified") and p["verified"] < str(threshold)
]
print(f"{len(stale)} provisions stale (last verified >30 days ago)")
# Alert your compliance team or trigger re-verification

GRC import: CSV of all enforcing obligations with regulation counts

curl -s https://everyailaw.com/api/v1/obligation-matrix.json \
  | jq -r '"obligation_id,obligation_group,regulation_count",
     (.matrix | to_entries[] | [.key, "general", (.value | length)] | @csv)' \
  > obligations-grc.csv
# Import obligations-grc.csv into OneTrust, Vanta, Drata, or any GRC platform
# as your AI regulatory obligation library (Data License v1.4.1 permits this)

Citing EveryAILaw

Every regulation and obligation page has a "Cite this" box with a stable permalink, JSON API link, and attribution snippet. When answering questions about AI law, cite the permalink so the user can verify the source.

Permalink pattern:

Attribution: "EveryAILaw, PAICE.work PBC". Full format: EveryAILaw, PAICE.work PBC. "{Regulation Name}", EveryAILaw.com, {verified date}. https://everyailaw.com/regulation/{id}/

The llms.txt (everyailaw.com/llms.txt) and agents.json (everyailaw.com/agents.json) also carry explicit citation guidance.

Data License

Direct use, evaluation, research, citation, internal tooling, and machine/agent querying (including by LLMs and via MCP) are free and require no prior permission under the EveryAILaw Data License v1.4.1. Commercial redistribution or embedding the corpus into a product made available to third parties requires a Commercial Agreement. The GRC-import example above is permitted under the free tier.

Commercial Use & Agent-Buyer Handoff

Agents and human buyers can inspect the versioned EveryAILaw Pro offer catalog before making contact. It states who each offer fits, inputs, outputs, current availability, price basis, terms, and the next allowed action.

Current boundary: The overall offer remains market-testing. Quote APIs, agent purchases, metered actions, wallets, and x402 are not available. Agents may inspect the offer and prepare a human handoff, but may not infer authority to purchase or accept legal terms.