Calculate preliminary notice and mechanics lien deadline baselines for US construction material suppliers from delivery dates and project facts using the LienDeadline MCP server or public API. Available calculations cover Florida and Kansas private projects with explicit event answers; other states, public projects and unresolved events return review-required results. Includes statute-cited guides for all 50 states and DC.
68
85%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Calculation coverage: the existing supplier-events-v2 interface calculates Florida and Kansas private-project baselines. The additive supplier-events-v3 interface discovers live support for an exact project scope before collecting its event facts. Only the API decides which jurisdictions it calculates. Report dates only when the API returns them for the submitted facts; a state guide or other reference is not a calculated result.
supplier-events-v3)get_supplier_questions and calculate_supplier_deadlines_v3, prefer discovery for the state, project_type, and hired_by before collecting dates. An authorized direct HTTP tool may instead GET https://secure-api-v1.liendeadline.com/api/v1/supplier-deadlines/questions with those fields plus contract_version=supplier-events-v3 and role=supplier. Availability comes from this response alone.rules_source and questions_identity. For a supported scope, ask the discovered questions in order, including their source-backed help and conditional applies_when rules. Events are { "event_id": { "answer": "yes|no|unknown", "date": "YYYY-MM-DD" } }; omit the date unless the answer is yes and the question permits it. Delivery facts also come from these discovered questions: when present, first_furnishing and final_furnishing carry their answers and dates inside events (for example, events.first_furnishing.date). Never send the v2 top-level first_delivery_date, last_delivery_date or deliveries_complete fields to v3. Unknown or missing facts remain unknown. Changing an ancestor answer removes facts for questions that no longer apply. Do not invent event IDs, amounts, classifications or dates.events to calculate_supplier_deadlines_v3, or POST the same object plus contract_version=supplier-events-v3 and role=supplier to https://secure-api-v1.liendeadline.com/api/v1/supplier-deadlines/v3. Accept only an exact nested input echo, matching scope, rule/question identities, source-attributed outcomes and a countdown consistent with as_of_date.preliminary_notice and lien_filing independently. no_lien_right is distinct from not_required; awaiting_final_delivery has no lien date. A review_required result may include candidate_deadlines: these are unresolved raw statutory candidates, not calculated filing deadlines. Preserve the explanation and sources; do not turn candidates into deadlines or silently use an earlier date.409 means rules changed: rediscover and reconfirm the affected answers before resubmission. A 503 means canonical source or implementation is unavailable. Surface that limitation; use the existing v2 workflow below only for its stated coverage, never to bypass a v3 review outcome. An unsupported scope stays under review. No stored projects, notices, filings, or account changes are authorized by this skill.supplier-events-v2)yes, no, or unknown. Ask for a known Florida event date only when its answer is yes.calculate_supplier_deadlines tool when its inputs include florida_final_payment_status, florida_termination_status and kansas_extension_status (version 0.3.0 or later); it adds contract_version itself and applies the checks in step 4. Otherwise use an authorized direct HTTP tool to POST the v2 JSON body below to https://secure-api-v1.liendeadline.com/api/v1/supplier-deadlines. This public stateless endpoint needs no account credentials and reads or saves no customer records. Do not use the Website's invoice-only legacy contract, or an older MCP calculator that lacks those event-answer inputs, because it sends the v1 blanket flag. The MCP state-guide tools may supply editorial references, never substitute dates.yes or unknown Florida termination and Kansas extension answers affect the lien date. Ongoing deliveries have no final lien date. Do not treat an absent date as confirmation that no notice is required. Surface validation/transport errors rather than inventing a result, and do not offer a PDF for unresolved results.When the direct HTTP tool supports request headers, include X-LienDeadline-Client: skill on calls to the public supplier endpoint. This constant marker lets LienDeadline count aggregate skill API requests without adding project facts to analytics. Omit it when the HTTP tool cannot set headers; the calculation still works. Skill calls through MCP are counted as MCP usage, and fetching this document does not prove that the skill was installed or used.
supplier-events-v2)Send only fields backed by facts. The API rejects explicit null values and the v1 special_events_reviewed flag, even when false. Omit irrelevant state-specific fields; an omitted relevant answer requires review.
| Field | Value | Notes |
|---|---|---|
contract_version | "supplier-events-v2" | Required for direct HTTP. |
state | two-letter code, or DC | Required. State where the project is located. |
first_delivery_date | YYYY-MM-DD | Required. First furnishing, not an invoice date. |
last_delivery_date | YYYY-MM-DD | Required when deliveries_complete is true; not before the first delivery. |
project_type | commercial, residential or public | Required. |
hired_by | owner, contractor or subcontractor | Required. Who ordered the materials. |
deliveries_complete | boolean | Required. false while deliveries continue. |
florida_final_payment_status | yes, no, unknown | Florida: owner's final payment after the contractor's final-payment affidavit. For suppliers not hired by the owner, unknown, omitted, or yes without a date makes preliminary notice review_required. |
florida_final_payment_date | YYYY-MM-DD | Florida only; requires a matching yes payment answer. Payment on or before the ordinary notice date remains review-required. |
florida_termination_status | yes, no, unknown | Florida: termination or recorded notice/affidavit event. yes, unknown, or omitted makes lien filing review_required; no shortened or extended date is assumed. |
florida_termination_date | YYYY-MM-DD | Florida only; requires a matching yes termination answer. A supplied date still leaves lien filing review-required. |
kansas_extension_status | yes, no, unknown | Kansas: statutory notice of extension. yes, unknown, or omitted makes lien filing review_required, including owner-hired suppliers. |
role | "supplier" | Optional; any other value is invalid. |
contract_version, role: "supplier", the upper-case state_code, and inputs holding exactly the submitted fields. If any of these differ, report an error and no dates.preliminary_notice and lien_filing each carry their own status: calculated (with deadline and days_from_now; a negative number means the date has passed), not_required, review_required (no date; description says why), or awaiting_final_delivery (deliveries ongoing).status is review_required when either deadline needs review. A lien date awaiting final delivery can coexist with a calculated notice date; read each deadline's status independently.critical_warnings, statute_citations, each source_url and the disclaimer alongside the dates. Dates are statutory calendar-date baselines; no county recording cutoff or weekend/holiday extension is assumed.422 response means validation failed: correct the named field from facts rather than guessing. Never fill a failed or review_required result with dates from a state guide or from memory.These examples share one set of made-up delivery facts. The event answers alone change which deadline needs review. Expand shared_facts with each case's state and answers before posting; never copy the example's facts into a real request. The expected statuses are source-derived checks, not serving acceptance or dates to report. Use only a verified API response for actual dates.
{
"shared_facts": {
"contract_version": "supplier-events-v2",
"role": "supplier",
"first_delivery_date": "2026-06-01",
"last_delivery_date": "2026-08-14",
"project_type": "commercial",
"hired_by": "contractor",
"deliveries_complete": true
},
"cases": [
{
"id": "fl_known_no", "state": "FL",
"answers": { "florida_final_payment_status": "no", "florida_termination_status": "no" },
"expected": { "status": "calculated", "preliminary_notice": { "status": "calculated" }, "lien_filing": { "status": "calculated" } }
},
{
"id": "fl_payment_unknown", "state": "FL",
"answers": { "florida_final_payment_status": "unknown", "florida_termination_status": "no" },
"expected": { "status": "review_required", "preliminary_notice": { "status": "review_required", "deadline": null }, "lien_filing": { "status": "calculated" } }
},
{
"id": "fl_termination_yes", "state": "FL",
"answers": { "florida_final_payment_status": "no", "florida_termination_status": "yes" },
"expected": { "status": "review_required", "preliminary_notice": { "status": "calculated" }, "lien_filing": { "status": "review_required", "deadline": null } }
},
{
"id": "ks_known_no", "state": "KS",
"answers": { "kansas_extension_status": "no" },
"expected": { "status": "calculated", "preliminary_notice": { "status": "not_required", "deadline": null }, "lien_filing": { "status": "calculated" } }
},
{
"id": "ks_extension_unknown", "state": "KS",
"answers": { "kansas_extension_status": "unknown" },
"expected": { "status": "review_required", "preliminary_notice": { "status": "not_required", "deadline": null }, "lien_filing": { "status": "review_required", "deadline": null } }
},
{
"id": "ks_extension_yes", "state": "KS",
"answers": { "kansas_extension_status": "yes" },
"expected": { "status": "review_required", "preliminary_notice": { "status": "not_required", "deadline": null }, "lien_filing": { "status": "review_required", "deadline": null } }
}
]
}