search_provisions

Returns the provisions that best match a query, ranked, each with its pinpoint, heading, a short snippet and its verification label. Never full text: fetch a hit with get_provision_text once you know its pinpoint.

FactValue
Toolsearch_provisions
Partner scope requiredlegislation:read
Subscriber tier requiredAI Pro
Accepts as_atno

Parameters

NameTypeRequiredDefault
querystringyes
legislation_idstringnonull
register_idstringnonull
provision_typesarray of stringnonull
limitintegerno10
cursorstringnonull
modestringno"hybrid"

Notes

Request (search_provisions with {"query":"notifying individuals of an eligible data breach","legislation_id":"C2004A03712","provision_types":["section"],"limit":3})

Python SDK

import asyncio, os
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

async def main():
    headers = {"Authorization": f"Bearer {os.environ['LAWATLAS_API_KEY']}"}
    async with streamablehttp_client("https://advisor.lawatlas.ai/api/mcp-http/mcp", headers=headers) as (read, write, _):
        async with ClientSession(read, write) as session:
            await session.initialize()
            result = await session.call_tool("search_provisions", {
                "query": "notifying individuals of an eligible data breach",
                "legislation_id": "C2004A03712",
                "provision_types": [
                    "section"
                ],
                "limit": 3
            })
            print(result.content[0].text)

asyncio.run(main())

curl

curl -s https://advisor.lawatlas.ai/api/mcp-http/mcp \
  -H "Authorization: Bearer $LAWATLAS_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_provisions","arguments":{"query":"notifying individuals of an eligible data breach","legislation_id":"C2004A03712","provision_types":["section"],"limit":3}}}'

Response, as Advisor returned it on 10 October 2026. The tool's result is the JSON text of result.content[0].text; lists and long text are trimmed where marked "...".

{
  "schema_version": "3.5",
  "result": [
    {
      "provision_id": "74895e94-f52b-43b8-a3d3-f2d2981ccc64",
      "legislation_id": "eae28dff-3ff5-48eb-af3f-38686e6f650e",
      "pinpoint": "s 26WL",
      "heading": "Entity must notify eligible data breach",
      "snippet": "Entity must notify eligible data breach Scope\n(1)\tThis section applies if:\n(a)\tan entity is aware that there are reasonable grounds to believe that there has been an eligible data breach of the entity; and\n(b)\tthe entity has prepared a statement that",
      "snippet_type": "match",
      "rank": 1,
      "match_type": "both",
      "all_query_terms_present": true,
      "path_headings": [
        "Part IIIC",
        "Division 3",
        "Subdivision B"
      ],
      "anchor_state": "anchored",
      "anchor_qualifier": null,
      "label": "Verified",
      "similarity": 0.7884,
      "score": 0.0006,
      "title_id": "C2004A03712",
      "eid": "sec_26wl",
      "structure_path": "part_iiic/dvs_3/subdvs_b/sec_26wl",
      "contains_formula": false,
      "compilation": {
        "register_id": "C2026C00227",
        "compilation_no": 104,
        "state": "current",
        "check_date": "2026-10-09T16:47:33.513124Z"
      }
    },
    {
      "provision_id": "f4cc27bf-9901-40a6-8f19-5e6835f9ab44",
      "legislation_id": "eae28dff-3ff5-48eb-af3f-38686e6f650e",
      "pinpoint": "s 26WK",
      "heading": "Statement about eligible data breach",
      "snippet": "Statement about eligible data breach Scope\n(1)\tThis section applies if an entity is aware that there are reasonable grounds to believe that there has been an eligible data breach of the entity.\nStatement\n(2)\tThe entity must:\n(a)\tboth:\n(i)\tprepare a statement that",
      "snippet_type": "match",
      "rank": 2,
      "match_type": "both",
      "all_query_terms_present": false,
      "path_headings": [
        "Part IIIC",
        "Division 3",
        "Subdivision B"
      ],
      "anchor_state": "anchored",
      "anchor_qualifier": null,
      "label": "Verified",
      "similarity": 0.7807,
      "score": 0.0006,
      "title_id": "C2004A03712",
      "eid": "sec_26wk",
      "structure_path": "part_iiic/dvs_3/subdvs_b/sec_26wk",
      "contains_formula": false,
      "compilation": {
        "register_id": "C2026C00227",
        "compilation_no": 104,
        "state": "current",
        "check_date": "2026-10-09T16:47:33.513124Z"
      }
    },
    {
      "provision_id": "893fb7c4-2ae2-4afc-9972-bd8c58d1b383",
      "legislation_id": "eae28dff-3ff5-48eb-af3f-38686e6f650e",
      "pinpoint": "s 26WR",
      "heading": "Commissioner may direct entity to notify eligible data breach",
      "snippet": "Commissioner may direct entity to notify eligible data breach (1)\tIf the Commissioner is aware that there are reasonable grounds to believe that there has been an eligible data breach of an entity, the Commissioner may, by written notice given to the entity, direct",
      "snippet_type": "match",
      "rank": 3,
      "match_type": "both",
      "all_query_terms_present": true,
      "path_headings": [
        "Part IIIC",
        "Division 3",
        "Subdivision C"
      ],
      "anchor_state": "anchored",
      "anchor_qualifier": null,
      "label": "Verified",
      "similarity": 0.7692,
      "score": 0.0003,
      "title_id": "C2004A03712",
      "eid": "sec_26wr",
      "structure_path": "part_iiic/dvs_3/subdvs_c/sec_26wr",
      "contains_formula": false,
      "compilation": {
        "register_id": "C2026C00227",
        "compilation_no": 104,
        "state": "current",
        "check_date": "2026-10-09T16:47:33.513124Z"
      }
    }
  ],
  "page": {
    "returned": 3,
    "total": 194,
    "next_cursor": "eyJvIjogM30=",
    "truncated": false
  },
  "query": "notifying individuals of an eligible data breach",
  "legislation_id": "eae28dff-3ff5-48eb-af3f-38686e6f650e",
  "usage": "Search results only - snippets, not provision text. Retrieve the full text of any hit with get_provision_text using its provision_id."
}

Data currency: Advisor serves the text of titles that the Federal Register of Legislation records as in force. It does not return the text of a repealed, ceased or sunset title, for any date.

  • A title or a served provision carries a status block (status, or in_force in a list) with in_force, frl_status and confirmed_with_frl_at: when Advisor last confirmed the status with the Federal Register.
  • Served text and search hits carry a compilation block with register_id, compilation_no, check_date and state. state is one of four values:
    • current: the Federal Register's latest list names the compilation the text comes from.
    • not_current: the Federal Register lists a newer compilation. Tell the user, and use the frl_link in the response.
    • pending_compilation: amendments have commenced that are not yet compiled, so the text does not include them.
    • not_confirmed: the Federal Register lists no current compilation, or Advisor holds no record of one. Treat it as unknown.
  • TITLE_NOT_IN_FORCE and COMPILATION_NOT_CURRENT are answers, not failures. Show the user the Federal Register link in the response and do not fill the gap from another source.

Errors

CodeMeaningWhat to do
INVALID_ARGUMENTquery is empty, a mode or provision_types value is unknown, or an id is malformedCorrect the value; the message lists the valid ones
NOT_FOUNDNo title has this idFind the title with resolve_reference
TITLE_NOT_IN_FORCEThe title is not in forceShow the frl_link; do not supply its text
FORBIDDENThe account has no active AI Pro subscriptionRenew the subscription

Related tools