Justicelibre vs LienDeadline

A side-by-side look at the Justicelibre and LienDeadline MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Justicelibre logoJusticelibreLegalFree access to ~1M French administrative court decisions via MCP55GoodAuth: no auth requiredLienDeadline logoLienDeadlineLegalStatute-cited lien and notice deadlines for material suppliers; lien guides for 50 states and DC.57GoodAuth: not declared

Verdict: choose Justicelibre for legal work; choose LienDeadline for legal. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Justicelibre logoChoose Justicelibre when

  • You need dedicated capabilities in the Legal domain.
  • Its auth model fits you: No auth required.
  • You want tools like search_doctrine, get_law_article, search_decisions_citing.
Explore Justicelibre

LienDeadline logoChoose LienDeadline when

  • You need dedicated capabilities in the Legal domain.
  • You want tools like calculate_supplier_deadlines, get_supplier_questions, calculate_supplier_deadlines_v3.
Explore LienDeadline

Feature & specification comparison

Rows where the two servers differ are marked.

SpecJusticelibre logoJusticelibreLienDeadline logoLienDeadline
CategoryLegalLegal
Quality signal55/100 · Good57/100 · Good
Install commandNot confirmed yetNot confirmed yet
Transport——
AuthNo auth requiredNot declared
PricingFreeNot declared
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars121
Directory activity 2 views 0 installs 0 upvotes 1 views 0 installs 0 upvotes
Tools197

Tools & capabilities

Justicelibre tools 19

  • search_doctrineOpinions of the CADA (access to administrative documents), decisions of the Défenseur des droits, conclusions of the CE's rapporteurs publics, BOFiP (tax guidance), Code du travail numérique, CNIL deliberations. These are NOT court decisions: an opinion does not bind the judge. Keywords in French. Read a document: get_decision(id=…). For conclusions (ariane_crp), the case number is `numero`; `doc_id` is an internal identifier. Example: search_doctrine(query="communication dossier médical", source="cada")
  • get_law_articleArticle of a French code or statute, as in force on a date (default: today). `code`: abbreviation ("CT", "cc"), name ("code du travail"), LEGITEXT or statute ("loi 91-647", "loi du 1er juillet 1901"); list: about(topic="codes"). European texts: "CEDH" (protocols: num="P1-1"), "CHARTE_UE", "TUE", "TFUE"; treaties: "CIDE", "GENEVE1951", "HAYE1980"… (with French status); EU acts: "RGPD", "directive 93/13", "UE-<CELEX>" (repealed: flagged). To cite an older decision, pass its date: the article is served as it stood then. `view="versions"`: its history; `view="map"`: wordings, citing texts, implementing orders. `etat`/`note` flag a lag behind Légifrance; `info_numero`, a renumbering. `num` also accepts a LEGIARTI (`code` may then be omitted). Without `num`, a LEGITEXT (outside codes), a European text or a treaty gives the whole text, 120 articles per page (`suite`: offset=…). Examples: get_law_article(code="CIDE", num="3"); get_law_article(code="code civil", num="1382", date="2015-06-01")
  • search_decisions_citingCourt decisions that EXPLICITLY cite an article ("article 1240 du code civil", "art. L. 1152-1 du code du travail"). Does not find indirect references or citations without an article number: searching by concept is for `search`. Example: search_decisions_citing(code="CC", num="1240")
  • searchSearches all sources (French and European case law, codes and statutes, Journal officiel, collective agreements, doctrine), expanding to legal synonyms. Entry point for an open question; for one specific court, use `search_case_law`. A citation ("Cass. soc. 11 mai 2022", an ECLI, an appeal number) is recognised and searched as such. Singular and plural are searched together; "in double quotes": the exact word. Query in French: the data is French (some ECHR/CJEU texts are English only). Example: search(query="harcèlement moral fonctionnaire") Args: query: keywords or a citation; OR/AND/NOT/NEAR in UPPERCASE between two words are operators (NEAR = within 10 words); lowercase words are plain words sources: dila, jade, legi, cedh, cjue, kali, jorf, doctrine (empty: all) sort: relevance | date_desc | date_asc date_min: YYYY-MM-DD (all sources) date_max: YYYY-MM-DD limit: results (max 100) expand_synonyms: expand to legal synonyms (default true)
  • search_case_lawDecisions of one court or court family, by relevance or by date (latest decisions: `search_recent_admin_decisions`). Keywords in French. ECHR, CJEU: texts sometimes in English only. Example: search_case_law(query="licenciement inaptitude", court="CASS") Args: query: keywords (optional with numero_rg), plural included except "in double quotes"; OR/AND/NOT/NEAR in UPPERCASE between two words are operators (NEAR = within 10 words); lowercase words are plain words court: ADMIN (CE+CAA+TA) | CE | CAA | TA | ARIANEWEB | JUDICIAIRE | CASS | CA | TJ | TCOM | CONSTIT | CEDH | CJUE | CNDA court_name: "TA Lille", "CAA Douai" (ADMIN, CE, CAA, TA) sort: relevance | date_desc | date_asc (ADMIN, CE, CAA, TA, CNDA) date_min: YYYY-MM-DD (not ARIANEWEB, CEDH, CJUE) date_max: same numero_rg: RG number (CA, JUDICIAIRE) nature: QPC, DC… (CONSTIT) limit: per page (max 50) offset: pagination (pass next_offset as is)
  • search_recent_admin_decisionsLatest decisions from the administrative courts' open data (daily mirror), sorted by date: what a court has just decided (by relevance: `search_case_law`). All words required (singular or plural); "in double quotes": exact form; OR/AND/NOT/NEAR in UPPERCASE between two words are operators (NEAR = within 10 words); lowercase words are plain words. Keywords in French: judgments spell out the full expression, rarely the acronym ("OQTF"). Example: search_recent_admin_decisions(query='"obligation de quitter le territoire"', court="TA59") Args: query: keywords; empty = all decisions of the court court: CE | CE-CAA (CE + CAA) | code of a TA or CAA ("TA59", "CAA69") | ALL_TA (the 40 TA) | ALL_CAA (the 9 CAA) limit: results (one court; max 100) limit_per_court: results per court (ALL_TA, ALL_CAA; max 100) total_limit: overall cap (ALL_TA, ALL_CAA; 0 = no cap) date_min, date_max: YYYY-MM-DD, date of the decision (optional)
  • get_decisionFull text of a decision, by `id` or by `numero` (+ `court`). Several decisions with that number: list `decisions` (ECHR/CJEU: the one judgment is served, the rest in `autres_documents`). An administrative number alone ("2200433") is refused; CE: see `homonymes`. Also reads doctrine (cada:…, ddd:…), JORFTEXT and KALIARTI ids. Examples: get_decision(id="CETATEXT000007641393") get_decision(numero="497566", court="CE") get_decision(numero="23/05688", court_name="CA Douai") # RG get_decision(numero="24-14.641") # Cour de cassation appeal; likewise 2024L02643 (commercial court), 6538/74 (ECHR), C-72/24 (CJEU) Args: id: id from a search (JURITEXT, CETATEXT, 001-…, CELEX, JORFTEXT…) or a judicial/European case number numero: case, appeal (pourvoi), RG, commercial court, ECHR or CJEU number court: CE | CAA | TA | CONSTIT | CASS | CA | TJ | TCOM | CPH | CEDH | CJUE | CNDA court_name: "TA Lyon", "CA Douai" nature: DC, QPC… (CONSTIT, shared number)
  • search_legislationKeyword search in French codes and statutes (LEGI), the Journal officiel (JORF), agreements (KALI) or EU law. Known article: `get_law_article`. Keywords in French. Example: search_legislation(query="harcèlement moral", code="CT") Agreement (corpus="kali"): idcc="1486" without query → table of contents; query="Syntec" → agreements, texts; KALI id → sections or text. Args: query: keywords (all required; "in double quotes": exact form), or a KALI id; optional for kali with idcc; OR/AND/NOT/NEAR in UPPERCASE between two words are operators (NEAR = within 10 words); lowercase words are plain words corpus: legi | jorf | kali | europe (CEDH, treaties) | ue (EU acts) code: code abbreviation or name ("CT", "code du travail", "CEDH", "RGPD") nature: jorf: LOI, DECRET, ARRETE… idcc: kali: IDCC number date_min: YYYY-MM-DD (legi, jorf) date_max: YYYY-MM-DD (legi, jorf) limit: per page (max 50) offset: offset tout: kali: repealed texts too
  • resolve_referenceTurns a reference into an identifier and an official link: statute or decree number ("91-647", "loi n° 78-17") → the text; identifier (LEGIARTI, LEGITEXT, JORFTEXT, CETATEXT, JURITEXT, ECLI, CELEX of a judgment or of a text, HUDOC) → URL at the source; CNDA reference ("CNDA, 12 mars 2024, n° 23012345") → id and link; European article ("art. 8 CEDH", "267 TFUE", "P1-1", "art. 17 RGPD", "article 3 de la directive 93/13") → official link and the get_law_article call. A decision number is read with get_decision instead (the error gives the exact call). Examples: resolve_reference(reference="loi n° 91-647") resolve_reference(reference="LEGIARTI000032041571") Args: reference: text number or identifier legitext: parent LEGITEXT (for a LEGIARTI of a text outside the codes) date: YYYY-MM-DD (article version in the URL)
  • get_legislative_historyLegislative history (travaux préparatoires) of a French statute or bill (Assemblée nationale files since 2012; key dates only before). Each step of `parcours` lists its documents (bill, reports, opinions, adopted or rejected texts: number, date, authors, official URL), votes, minutes, the Constitutional Council decision and the Official Journal; `issue` says adopted or rejected. Cite documents by number and URL. Example: get_legislative_history(loi="2016-1547") Args: query: keywords from the file title (French); OR/AND/NOT in UPPERCASE between two words are operators; lowercase words are plain words loi: statute number ("2016-1547") limit: number of files (max 20) steps: include the stages of the shuttle between the two chambers
  • search_directoryPublic addresses and contacts in France: courts, court registries (greffes), town halls, CCAS, prefectures, public services. Example: search_directory(query="tribunal judiciaire Dunkerque") Args: query: name, town or type of office (French); OR/AND/NOT in UPPERCASE between two words are operators ("Lille OR Douai"); lowercase words are plain words category: directory category (optional) source: directory source (optional) limit: number of results (max 200)
  • aboutWhat JusticeLibre covers (sources, volumes, freshness, terms of use), the list of administrative courts and their codes, or the list of codes and statutes accepted by get_law_article. Example: about(topic="codes") Args: topic: service | courts | codes
  • +7 more on the listing page

LienDeadline tools 7

  • calculate_supplier_deadlinesCalculates a construction material supplier's preliminary notice and lien filing deadlines from delivery events (contract supplier-events-v2), for questions that need deadline dates. Available baselines cover Florida and Kansas private projects; other states and public projects return review_required, which is a valid result, not an error. How the parameters depend on each other: last_delivery_date is required when deliveries_complete is true. Florida (FL) takes florida_final_payment_status and florida_termination_status; Kansas (KS) takes kansas_extension_status; these are rejected for other states. Each takes yes, no or unknown: an omitted or unknown answer keeps the affected deadline under review, and a blanket review flag is not accepted. The Florida final-payment answer holds the notice for suppliers not hired by the owner. A Florida event date is accepted only with the matching yes answer. Delivery dates are furnishing dates, not invoice dates. Returns JSON with an overall status (calculated or review_required), preliminary_notice and lien_filing (each with its own status: calculated, not_required, review_required or awaiting_final_delivery, plus deadline, days_from_now, description and statute source_url), critical_warnings, statute_citations, an exact echo of the submitted inputs and a disclaimer. Invalid or contradictory facts return an error naming the field before any API call. Requires a customer key and consumes one plan calculation unit. No project is saved, notice sent or lien filed. Not legal advice.
  • get_supplier_questionsReturns the current supplier-events-v3 scope support, jurisdiction-specific yes/no/unknown event questions, date policies, optional recurring_notice_intake descriptor, sources and exact rule/question identities for a material supplier. Requires a customer key; no delivery dates needed. Discovery does not consume calculation quota. A 503 means the reviewed source is unavailable. Approval of research alone does not activate a scope.
  • calculate_supplier_deadlines_v3Evaluates supplier-events-v3 project facts against the exact discovered rule and question identities. Returns independent notice and lien outcomes with sources and an exact nested input echo. When RI discovery asks ri_mailed_within_200_days after ri_mailed=yes, confirm whether mailing occurred within 200 days of first delivery. No, Unknown or omitted confirmation requires review; recording alone does not establish a 40-day target. Only calculated outcomes contain calculated deadline dates. Report every candidate_deadlines entry with its ID, date and sources under the API explanation. For NH review fallbacks, first_furnishing is a conservative checkpoint and final_furnishing is informational pending contract grouping and qualifying completion; passing the first checkpoint does not itself establish expiry. A calculated contract_completion outcome uses only the returned deadline, without substituting the first checkpoint or recomputing a date. Review candidates do not establish filing deadlines, completion or scheduled reminders. An optional preliminary_notice.notice_duties collection contains independently required named notices, each with its own calculated date, explanation and sources; the legacy preliminary date is only their earliest summary. Report every validated duty without inferring duties from candidates or treating one notice as satisfying all duties. A separate optional preliminary_notice.planned_notice_targets collection contains qualified intent planning targets with their target dates, assumed filing dates, full ten- or thirty-day intervals, explanations and sources. Planning targets do not establish statutory expirations, actual filing, notice completion or scheduled notifications. An optional verified action_by is a Conservative action date planning target under qualified review; the statutory deadline and countdown remain unresolved, with explanation, sources and warnings. Optional recurring_notice_facts supplies actual Tennessee furnished months or New Hampshire account records. Tennessee recurring_notice_periods cover entered periods only, including paid and unknown states; known unpaid duties remain independent. New Hampshire recurring_notice_checkpoints are advisory check-ins with unresolved legal status, not legal deadlines, service, completion or scheduled reminders; they do not reset earlier gaps. Never infer intervening months or blanket completion. Stale identities return 409, unavailable reviewed sources return 503. Requires a customer key and consumes one plan calculation unit. No project is saved, notice sent or lien filed.
  • calculate_lien_deadlineCustomer API tool: requires LIENDEADLINE_API_KEY, a dedicated LienDeadline customer key; without one it returns a configuration error and makes no request. Calculates the preliminary notice and lien filing deadlines for one construction invoice from its invoice or delivery date and state. Returns JSON with state, invoice_date, project_type, preliminary_notice_deadline, lien_deadline, waiver_due_date, prelim_deadline_days, lien_deadline_days, warnings such as weekend or holiday rollover, notes and a disclaimer. A date, day count or project_type the API does not return is null; missing warnings is [] and missing notes is an empty string. API denials (401 key, 403 scope, 429 rate limit) return a tool error. Successful calculations consume one API plan unit. Not legal advice.
  • list_supported_statesCustomer API tool: requires LIENDEADLINE_API_KEY with the states:read scope. Returns count and the two-letter codes of the jurisdictions the customer invoice calculation accepts. It does not list editorial guides or the states with reviewed supplier baselines. Takes no parameters. Read-only.
  • get_state_lien_guideReturns LienDeadline's editorial mechanics lien and preliminary notice guide for one state or DC: rules (rule summary with statute citations), deadline_rows (deadline table), faqs (common questions) and source_url (the guide's web page), roughly 4 KB of JSON. For questions about how a state's lien or notice rules work, why a deadline falls where it does, or which statute applies. An unknown state code returns an error. The guide is an editorial reference, not a calculation: its day counts are summaries, not computed deadlines. Public and read-only; no key needed.
  • list_state_lien_guidesLists every published state lien guide in one response, without pagination: count plus state_code, title and slug for all 50 states and DC, in alphabetical order by state name. It lists editorial guides only and does not indicate which states have calculated deadlines. Takes no parameters. Public and read-only; no key needed.

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Justicelibre

No confirmed install command for Justicelibre yet — follow the setup steps linked from its listing page rather than a guessed package name.

LienDeadline

No confirmed install command for LienDeadline yet — follow the setup steps linked from its listing page rather than a guessed package name.

Frequently asked questions

Justicelibre is categorized under Legal and uses an install path we have not confirmed yet. LienDeadline belongs to Legal and uses an install path we have not confirmed yet. Pick Justicelibre for legal work and LienDeadline for legal.

Neither server has a confirmed install command yet, so we don't publish a guessed config. Follow each project's own setup instructions, linked from its listing page.

Justicelibre is listed as free. Auth: no auth required. LienDeadline has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add justicelibre and liendeadline as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Justicelibre has a quality signal of 55/100 (Good) with 2 views, 0 installs and 12 GitHub stars. LienDeadline has 57/100 (Good) with 1 views, 0 installs and 1 GitHub stars.