{"serverId":"mcp-registry/com.lebaneselegislation/mcp","tools":[{"name":"get_article","fixed":{"name":"get_article","description":"Get one article's verbatim Arabic text as in force today (and French, when the Centre published it and no amendment has replaced it), its in-force status, amendment history, and the canonical and source URLs. When an amendment replaced the wording, text_ar is the new wording and centre_text_ar the earlier one the Centre's site still shows. centre_error, when present, notes an error in the Centre's own text (one article repeating another, a stray letter); the text itself is left as published. The","inputSchema":{"type":"object","required":["law_id","number"],"properties":{"law_id":{"type":"integer","description":"the law's id (see get_law)"},"number":{"type":"string","description":"the article's printed number, e.g. \"212\", \"12 مكرر\" or \"586-1\" (an article numbered under another; \"586 (1)\" works too)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":239,"tokensAfter":239},{"name":"get_gazette_issue","fixed":{"name":"get_gazette_issue","description":"Get one Official Gazette issue by id: its number, publication date, and the laws, decrees and decisions it published. Not legal advice.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"the issue's numeric id, from search_legislation"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":93,"tokensAfter":93},{"name":"get_law","fixed":{"name":"get_law","description":"Get a law, decree or similar text's metadata (kind, number, date, status), its table of contents (the chapters: id, parent_id, depth, heading), its articles in order (number, and the section_id of the chapter each sits under) and the texts it amended or was amended by (amended_by / amended: one entry per text and relation, with articles listing the articles of this law it touches, or of the other law for amended; no articles means the whole law). Use get_article to read one article's verbatim te","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"the law's numeric id, from search_legislation or its URL"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":194,"tokensAfter":194},{"name":"get_law_texts","fixed":{"name":"get_law_texts","description":"Get the verbatim texts of a law's articles in order, a page at a time: for each article its number, section_id, note, and the same text fields as get_article (text_ar in force today, text_fr, centre_text_ar when an amendment replaced the wording, version, repealed). Follow next_offset until it is absent to read the whole law. Amendment history stays in get_article. Not legal advice.","inputSchema":{"type":"object","required":["law_id"],"properties":{"limit":{"type":"integer","default":50,"maximum":200,"minimum":1,"description":"articles per page, at most 200"},"law_id":{"type":"integer","description":"the law's numeric id"},"offset":{"type":"integer","default":0,"minimum":0,"description":"how many articles to skip (next_offset of the previous page)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":223,"tokensAfter":223},{"name":"get_links","fixed":{"name":"get_links","description":"Get the graph edges into or out of one item: a law, an article, a ruling, an opinion, a research study or a Gazette issue. Use this to walk citations and amendments directly, instead of only what get_law and get_article attach automatically. For a law key (\"law/<id>\") the default scope \"all\" includes the edges of its articles too (each link keeps its real to_key, e.g. \"law/244611/art/37\"); scope \"law\" is the law itself only. Newest first by the date of the text each edge comes from; page with of","inputSchema":{"type":"object","required":["key"],"properties":{"key":{"type":"string","description":"the item's key: \"law/<id>\", \"law/<id>/art/<number>\", \"ruling/<id>\", \"opinion/<id>\", \"research/<id>\" or \"gazette/<id>\""},"limit":{"type":"integer","default":50,"maximum":200,"minimum":1,"description":"at most this many edges. quote is cut to 600 characters when longer (quote_truncated: true); get_article has the full wording"},"order":{"enum":["newest","oldest"],"type":"string","default":"newest","description":"by the date of the text the edge comes from (Gazette date, else issue date)"},"scope":{"enum":["all","law"],"type":"string","description":"for a law key only: \"all\" (default) adds the edges to or from its articles, \"law\" is the law itself only"},"offset":{"type":"integer","default":0,"minimum":0,"description":"how many edges to skip (next_offset of the previous page)"},"relation":{"type":"string","description":"narrow to one relation (e.g. \"cites\", \"amend\", \"repeal\"); omit for all"},"direction":{"enum":["to","from"],"type":"string","default":"to","description":"\"to\" (edges that name this item as their target) or \"from\" (edges this item itself carries)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":487,"tokensAfter":487},{"name":"get_ruling","fixed":{"name":"get_ruling","description":"Get one court ruling (judgment) by id: court, number, date, panel, and its verbatim text when the Centre holds it as typed text. When available, pages returns the scanned judgment's machine reading, with low_confidence: true on hard-to-read pages where errors are expected. pdf_url is the full judgment's scan on the Lebanese University's site: always give it to the user with any answer about the ruling, so they can open the original. Not legal advice.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"the ruling's numeric id, from search_legislation"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":180,"tokensAfter":180},{"name":"list_gazette_issues","fixed":{"name":"list_gazette_issues","description":"List Official Gazette issues by publication date, newest first, with the number of texts each carries (text_count) and where the issue comes from: source \"centre\" (the Lebanese University's Centre, whose issues stop about a year back) or \"scans\" (issues seen in Gazette scans, ids from 2000000000, which cover recent months). since and until accept YYYY, YYYY-MM or YYYY-MM-DD, inclusive; \"everything since January 2025\" is since \"2025-01\". Page with offset and next_offset. get_gazette_issue reads o","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","default":50,"maximum":100,"minimum":1,"description":"issues per page, at most 100"},"order":{"enum":["newest","oldest"],"type":"string","default":"newest","description":"by publication date"},"since":{"type":"string","description":"first date, inclusive: YYYY, YYYY-MM or YYYY-MM-DD"},"until":{"type":"string","description":"last date, inclusive: YYYY, YYYY-MM or YYYY-MM-DD"},"offset":{"type":"integer","default":0,"minimum":0,"description":"how many issues to skip (next_offset of the previous page)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":315,"tokensAfter":315},{"name":"list_legislation","fixed":{"name":"list_legislation","description":"List laws, decrees and decisions by date, newest first: for \"everything published since January 2025\" call with since \"2025-01\". The date is the publication date: the Official Gazette date, else the issue date (each entry's date, with gazette_number, gazette_date and gazette_issue_id). Recent texts come from machine readings of Gazette scans (ids from 2000000000, unofficial) because the Lebanese University's Centre lags about a year, so a recent period lists mostly those. since and until accept ","inputSchema":{"type":"object","properties":{"kind":{"type":"string","description":"the kind of text, Arabic or English (e.g. \"قانون\" or \"Law\", \"Decree\")"},"limit":{"type":"integer","default":50,"maximum":100,"minimum":1,"description":"texts per page, at most 100"},"order":{"enum":["newest","oldest"],"type":"string","default":"newest","description":"by publication date"},"since":{"type":"string","description":"first date, inclusive: YYYY, YYYY-MM or YYYY-MM-DD (e.g. \"2025-01\")"},"until":{"type":"string","description":"last date, inclusive: YYYY, YYYY-MM or YYYY-MM-DD"},"offset":{"type":"integer","default":0,"minimum":0,"description":"how many texts to skip (next_offset of the previous page)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":350,"tokensAfter":350},{"name":"search_legislation","fixed":{"name":"search_legislation","description":"Search Lebanese legislation (laws, decrees, decisions), their articles, court rulings, or Official Gazette issues, by keyword: Arabic words, French words (articles the Centre published in French, and the codes' French or English names), or a law's numeric id. Returns verbatim snippets from the Lebanese University's database, never an AI-written summary. A ruling hit's pdf_url is its full judgment's scan on the Lebanese University's site: always pass it on with any answer that cites the ruling. E","inputSchema":{"type":"object","required":["query"],"properties":{"kind":{"enum":["laws","articles","rulings","gazette"],"type":"string","description":"narrow to one category; omit to search all four"},"year":{"type":"integer","description":"only laws issued this year; for the gazette category, only issues published this year"},"limit":{"type":"integer","default":10,"maximum":20,"minimum":1,"description":"results per category, at most 20"},"query":{"type":"string","description":"words to search for, Arabic, English or French, or a law's id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":305,"tokensAfter":305}],"toolsChanged":9,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}