Skip to main content
Glama
LienDeadline

liendeadline-mcp

Ask your AI assistant when your preliminary notice and mechanics lien deadlines fall, and get the statute behind every date. This MCP server connects Claude, ChatGPT, Cursor, VS Code and any other MCP client to LienDeadline, the deadline engine for US construction material suppliers. There is nothing to install: add one URL.

Why LienDeadline

Miss a preliminary notice or a lien filing deadline and a supplier can lose its lien rights on the job, and with them the leverage to get paid. The rules change with the state, the project type and who hired you. LienDeadline turns your delivery dates into those deadlines and shows its work.

  • Deadlines from delivery dates. Preliminary notice and lien filing deadlines from your first and last delivery and a few yes, no or unknown questions.

  • The statute behind every date. Each deadline cites its source, so your team and your counsel can check it.

  • Never a guessed date. Missing facts, states that aren't covered yet and public projects come back as "needs review", with the reason.

  • Lien guides for all 50 states and DC. Rule summaries, deadline tables and common questions, with statute citations.

  • Safe by design. Every tool is read-only. Nothing sends notices, files liens or makes payments, and you need no account or API key.

Related MCP server: OpenWorkdays

Quick start

The hosted server needs no install, account or key:

https://mcp.liendeadline.com/mcp

Client

How to add it

Claude (web, desktop, mobile)

Open LienDeadline in Claude's Connectors directory and connect it.

Claude Code

claude mcp add --transport http liendeadline https://mcp.liendeadline.com/mcp

Cursor

Install in Cursor

VS Code

Install in VS Code

ChatGPT

Open Plugins, select + → Add custom MCP server, paste the URL above and choose No authentication.

Codex CLI

codex mcp add liendeadline --url https://mcp.liendeadline.com/mcp

Any MCP client

Streamable HTTP at the URL above, no authentication.

Want your agent to ask the right questions too? The LienDeadline agent skill (GitHub) teaches it which facts to collect. The Claude Code plugin adds the skill and this server in one step:

claude plugin marketplace add LienDeadline/skills
claude plugin install liendeadline@liendeadline

The local server needs Node.js 22.22 or newer and serves every tool, including the two customer API tools. It ships npm-shrinkwrap.json, so npx installs the exact dependency versions each release was tested with.

Claude Desktop: download liendeadline-mcp-<version>.mcpb from the latest release and open it.

Claude Code:

claude mcp add liendeadline -- npx -y liendeadline-mcp

Codex CLI:

codex mcp add liendeadline -- npx -y liendeadline-mcp

Cursor, Windsurf and other mcpServers clients:

{
  "mcpServers": {
    "liendeadline": { "command": "npx", "args": ["-y", "liendeadline-mcp"] }
  }
}

VS Code (.vscode/mcp.json):

{
  "servers": {
    "liendeadline": { "type": "stdio", "command": "npx", "args": ["-y", "liendeadline-mcp"] }
  }
}

What you can ask

Try asking:

  • "We delivered to a Florida commercial job for a subcontractor from Aug 3 to Sep 10, 2026. No final payment, no termination. When are our notice and lien deadlines?"

  • "Same job, but I don't know whether the owner made final payment. What can you tell me?"

  • "Walk me through Texas mechanics lien rules for a material supplier and cite the statutes."

  • "Which states do you have lien guides for? Show me Georgia's."

Coverage

What

Where

Needs

Calculated supplier deadlines

Florida and Kansas private projects

Nothing

More states (v3 tools)

Added as each state's reviewed rules are released. Until then, the v3 tools return an error and no date.

Nothing

Lien guides

All 50 states and DC

Nothing

Invoice-based deadlines

51 jurisdictions

A customer API key

When LienDeadline can't calculate a date, because of a public project, a state that isn't covered or a fact you don't know, it returns review_required with the reason instead of a date.

How it works

  1. You ask your AI assistant about a job.

  2. The assistant calls LienDeadline's tools over MCP with the state, the dates and your answers.

  3. LienDeadline applies that state's rules and returns each deadline with its statute, or "needs review" with the reason.

  4. Before showing a supplier deadline, the server checks that the result echoes exactly the facts you sent. A mismatch is reported as an error, never as a date.

Tools

Tool

What it does

Key

calculate_supplier_deadlines

Preliminary notice and lien filing deadlines from delivery dates and yes, no or unknown event answers

None

get_supplier_questions

Whether v3 covers a state, project type and hiring relationship, with its questions, sources and rule versions

None

calculate_supplier_deadlines_v3

Deadlines from the facts gathered with get_supplier_questions

None

get_state_lien_guide

One state's lien guide: rules, statute citations, deadline table and FAQs

None

list_state_lien_guides

Every guide (50 states and DC) with its code, title and slug

None

calculate_lien_deadline

Invoice-based deadlines (local server only)

Customer

list_supported_states

Jurisdictions the invoice calculation accepts (local server only)

Customer

Inputs, outputs and statuses are in the tool reference.

Privacy and safety

  • No account, no key. The public tools work anonymously, and nothing is stored between requests.

  • What's sent. The facts you give (state, dates, project type, who hired you and your yes, no or unknown answers) go to the LienDeadline API to calculate. Guide lookups send only a state code.

  • Hosted server. Its logs record the method, status and response time of each request, never your inputs. Google Cloud's own request log also records the URL, client IP address and user agent. The server may count usage anonymously in PostHog: tool name, success, duration and client family, with no inputs, results or IP addresses.

  • Local server. It has no telemetry of its own.

Details: LienDeadline privacy policy.

Results are educational baselines calculated from published state rules. Statutes change and every project is different, so verify critical deadlines with counsel before relying on them. LienDeadline is not a law firm and does not file anything on your behalf.

Available Tools

7 tools
calculate_lien_deadlineCalculate invoice deadlines (customer API key)A
Read-onlyIdempotent
Inspect

Customer 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. Read-only. Not legal advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoYour role on the project, e.g. "supplier", "contractor", "subcontractor".
stateYesTwo-letter US state code, e.g. "TX", "CA", "DC", from the jurisdictions the customer API supports.
notice_dateNoDate a preliminary notice was actually sent, YYYY-MM-DD, if one was. Omit otherwise.
invoice_dateYesInvoice or delivery date in YYYY-MM-DD format; deadlines count from it.
project_typeNoUsually "Commercial" or "Residential". Changes the deadline in some states.

TDQS

A3.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description still adds substantial value: the dedicated LIENDEADLINE_API_KEY requirement and its fail-fast behavior, the 401/403/429 error surface, and how absent fields are represented (null for dates/counts, [] for warnings, empty string for notes). That goes well beyond what the structured fields convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Leads with the auth prerequisite, then purpose, then the return contract – a sensible front-loaded order with no filler. It is on the long side because the field-by-field return enumeration and null/empty conventions take several clauses, though the absence of an output schema partly justifies that.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return contract itself: field names, null/empty conventions, warning behavior, and the four error responses. Combined with the auth prerequisite and the 'not legal advice' caveat, an agent has everything needed to call and interpret it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema, including formats and examples. The description only restates that deadlines derive from invoice/delivery date and state, adding no syntax or edge-case detail beyond the schema – the baseline 3 for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource: calculates preliminary notice and lien filing deadlines for one construction invoice from invoice/delivery date and state. The 'Customer API tool' framing hints at a distinction from the supplier siblings, but it never names an alternative, so the agent gets clear purpose without explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says nothing about when to pick this tool over calculate_supplier_deadlines or calculate_supplier_deadlines_v3, nor what preconditions or jurisdiction limits apply. The only routing signal is the API-key requirement, which is a credential constraint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_supplier_deadlinesCalculate supplier notice and lien deadlinesA
Read-onlyIdempotent
Inspect

Calculates 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. Public, stateless and read-only: no key needed, nothing is stored, and no notice is sent or lien filed. Not legal advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesTwo-letter code of the state where the project is located, e.g. "FL", "KS", "TX"; any state or DC is accepted. Decides which event questions apply.
hired_byYesWho ordered the materials from the supplier: the owner, a contractor or a subcontractor.
project_typeYesPrivate commercial, private residential, or public (public projects always need review).
last_delivery_dateNoDate of the final delivery, YYYY-MM-DD, not earlier than first_delivery_date. Required when deliveries_complete is true.
deliveries_completeYestrue when the final delivery has happened (then last_delivery_date is required); false while deliveries are ongoing, which returns awaiting_final_delivery for the lien date.
first_delivery_dateYesDate materials were first delivered (first furnishing), YYYY-MM-DD. Not an invoice date.
kansas_extension_statusNoKansas only: was a statutory lien-period extension filed and mailed? no permits the ordinary lien baseline; yes, unknown or omitted requires qualified review.
florida_termination_dateNoFlorida only: contract or notice-of-commencement termination date, YYYY-MM-DD, not earlier than first_delivery_date. Supply only with florida_termination_status=yes; a lien date still requires qualified review.
florida_final_payment_dateNoFlorida only: owner final-payment date, YYYY-MM-DD, not earlier than first_delivery_date. Supply only with florida_final_payment_status=yes.
florida_termination_statusNoFlorida only: was the original contract or notice of commencement terminated? no permits the lien baseline; yes, unknown or omitted requires qualified lien review.
florida_final_payment_statusNoFlorida only: did the owner make final payment to the contractor? unknown when not verified. For suppliers not hired by the owner, unknown, omitted, or yes without florida_final_payment_date makes preliminary notice review_required.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint), the description discloses that the tool is public, stateless and read-only, needs no key, stores nothing, and sends no notice or files no lien. It also explains the failure mode ('invalid or contradictory facts return an error naming the field before any API call') and that review_required is intentional output, not an error.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and supported scope are front-loaded, then dependency rules, then return shape, then safety posture — a logical order with no filler sentences. It is dense and re-states a few facts already in the schema (state codes, hired_by), which slightly dilutes conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description fully compensates by enumerating the returned structure: overall status (calculated or review_required), preliminary_notice and lien_filing each with their own status values, deadline, days_from_now, description, statute source_url, plus critical_warnings, statute_citations, an input echo and a disclaimer. For an 11-parameter tool with complex conditional rules, nothing essential to correct invocation appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is already 100%, the description adds cross-parameter semantics the schema cannot express: last_delivery_date is required when deliveries_complete is true, FL parameters are rejected for other states, each yes/no/unknown answer governs whether a deadline stays under review, and a blanket review flag is not accepted. It also clarifies that a Florida event date is only valid with the matching 'yes' answer and that delivery dates are furnishing, not invoice, dates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb+resource+scope: calculating a construction material supplier's preliminary notice and lien filing deadlines from delivery events. An agent immediately knows the domain and output. However, it never distinguishes itself from the sibling calculate_supplier_deadlines_v3, so the reader cannot tell which of the two near-identical tools to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the triggering condition ('for questions that need deadline dates'), names the supported baselines (Florida and Kansas private projects), and pre-empts a misread by explaining that review_required for other states/public projects is a valid result rather than an error. It stops short of naming alternatives such as get_state_lien_guide or the v3 sibling, so it is clear context without explicit routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_supplier_deadlines_v3Calculate from discovered supplier factsA
Read-onlyIdempotent
Inspect

Evaluates 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. Only calculated outcomes contain deadline dates; review candidates remain unresolved. Stale identities return 409, unavailable reviewed sources return 503. Public, stateless and read-only; no key, stored records, sent notices or filed liens.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesProject jurisdiction: state or DC.
eventsYesDiscovered event IDs only; missing means unknown. Date only for yes and only where the question permits it. Invoice dates are not furnishing dates.
hired_byYes
project_typeYes
rules_sourceYesExact rules_source from discovery for this scope.
questions_identityYesExact questions_identity from discovery.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds real value beyond that: 409 on stale identities, 503 on unavailable reviewed sources, 'stateless and public; no key, stored records, sent notices or filed liens', plus the note that only calculated outcomes carry deadline dates while review candidates stay unresolved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five tight sentences, front-loaded with the core action, then return semantics, then error behavior, then the safety/hosting profile. No filler, though the error-code sentence is listy and could be folded slightly tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must carry return-value burden, and it does: independent notice and lien outcomes, sources, an exact nested input echo, and the calculated-vs-review distinction. Combined with the error codes, an agent has enough to call and interpret it, though the meaning of 'review candidates' is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% and the nested objects (events, rules_source, questions_identity) are largely documented in the schema itself. The description adds behavioral meaning to the identity params ('exact discovered' values, stale ones 409) and clarifies the output rule for events, but contributes little on syntax or format beyond what the schema provides. Baseline 3 fits.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: evaluates supplier-events-v3 project facts against discovered rules and question identities to produce notice and lien outcomes. Clear about what it does, but it never distinguishes itself from the sibling calculate_supplier_deadlines (the non-v3 variant), so an agent cannot tell from the text which calculator to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the repeated emphasis on 'discovered' rule and question identities signals this must run after a discovery step (get_supplier_questions / get_state_lien_guide), but no explicit when-to-use, when-not, or sibling comparison is given. The workflow ordering is inferable but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_state_lien_guideGet the lien guide for one stateA
Read-onlyIdempotent
Inspect

Returns 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesTwo-letter US state or DC code, e.g. "TX"; case-insensitive.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds genuinely new context: the response is roughly 4 KB of JSON, an unknown state code produces an error, and the day counts are editorial summaries rather than computed deadlines — an important trust caveat not conveyed by any structured field.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The paragraph is front-loaded with the return shape, then usage conditions, then error behavior, then the editorial disclaimer, then auth. Every sentence carries distinct information (payload fields, use cases, error case, trust caveat, access model) with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description takes on the burden of describing the return shape, and it does so explicitly (rules, deadline_rows, faqs, source_url, ~4 KB). Combined with annotations covering safety and the description covering error behavior and the editorial disclaimer, an agent has everything needed to call and interpret this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the two-letter code format, case-insensitivity and example are already documented, which sets the baseline at 3. The description adds value beyond the schema by specifying the error behavior for an unrecognized state code, giving the agent validation semantics the schema does not encode.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: it returns LienDeadline's editorial mechanics lien and preliminary notice guide for one state or DC, and enumerates the exact payload (rules, deadline_rows, faqs, source_url). It implicitly distinguishes itself from the calculation sibling by framing the output as editorial reference material rather than computed deadlines.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states clear when-to-use conditions ('For questions about how a state's lien or notice rules work, why a deadline falls where it does, or which statute applies') and notes the failure mode for an unknown state code. It does not explicitly name calculate_supplier_deadlines or list_state_lien_guides as alternatives, so the routing signal is implied rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_supplier_questionsDiscover supplier project questionsB
Read-onlyIdempotent
Inspect

Returns the current supplier-events-v3 scope support, jurisdiction-specific yes/no/unknown event questions, date policies, sources and exact rule/question identities for a material supplier. Public and read-only; no key or delivery dates needed. A 503 means the reviewed source is unavailable. Approval of research alone does not activate a scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesProject jurisdiction: state or DC.
hired_byYes
project_typeYes

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, so the description doesn't need to restate safety. It does add real behavioral context: no key or delivery dates needed, a 503 signals an unavailable reviewed source, and the scope-activation caveat is a genuine workflow warning. That is useful beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two long, densely packed sentences front-load a broad list of outputs before stating the actual input-framed purpose. Nothing is egregiously wasteful, but the ordering buries the actionable part and the enumerated output list is hard to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must convey return shape, and it lists categories (scope support, event questions, date policies, sources, rule identities) which partially does that. But it omits error handling beyond the 503 hint, pagination/format, and how the three required parameters change the response, so it's only minimally complete for a discovery endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33%, so the description should compensate, but it doesn't explain how state, hired_by and project_type shape the returned questions. The two enums are self-documenting, but hired_by's semantics (whose perspective drives the question set) are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ('supplier-events-v3 scope', 'jurisdiction-specific event questions', 'date policies', 'sources') but is dense and jargon-heavy, mixing several outputs into one clause. The verb 'Returns' is generic, and it never cleanly states it's a discovery/lookup endpoint for a given state, project type and hiring role. An agent knows roughly what comes back, but the purpose is blurred.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is given, and none of the siblings are named or contrasted. The line 'Approval of research alone does not activate a scope' hints at a workflow caveat but doesn't tell the agent when to call this tool versus the deadline calculators or lien guides.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_state_lien_guidesList all state guidesA
Read-onlyIdempotent
Inspect

Lists 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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint, destructiveHint=false), but the description adds real value beyond them: no pagination, alphabetical ordering, inclusion of a count, editorial-only scope, and explicit 'public; no key needed' auth disclosure. It does not cover failure modes, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and scope, and every sentence carries information (ordering, count, exclusions, auth). Minor overlap between 'Public and read-only' and the readOnlyHint annotation is the only redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description correctly compensates by enumerating the return shape (count plus state_code, title, slug) and the ordering. For a zero-parameter read tool this is complete enough to call blind.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so the baseline is 4. The description correctly states 'Takes no parameters', which matches the empty schema and prevents the agent from hunting for filters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (lists) and resource (every published state lien guide) with explicit scope: all 50 states and DC, in one response, no pagination. The plural 'every ... guide' plus the returned fields distinguishes it from the singular sibling get_state_lien_guide without needing to open either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: 'does not indicate which states have calculated deadlines' hints that calculate_supplier_deadlines is the tool for deadline data, but no sibling is named and no explicit when-to-use/when-not rule is given. Adequate but leaves routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_supported_statesList customer API jurisdictions (customer API key)A
Read-onlyIdempotent
Inspect

Customer 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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered. The description adds genuinely new behavior: the LIENDEADLINE_API_KEY requirement and the states:read scope, plus the return shape (count + codes), which the annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the auth requirement and return content, then exclusions, then no-params. Efficient overall, though 'Read-only' is mild redundancy against the readOnlyHint annotation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by describing the return (count and two-letter codes), the auth prerequisite, and the exclusions. Nothing an agent needs to call this zero-parameter read tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing to document; the description correctly states 'Takes no parameters.' Baseline 4 applies since no param semantics are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: returns the count and two-letter codes of jurisdictions the customer invoice calculation accepts. It actively distinguishes itself from the sibling list_state_lien_guides by stating it does not list editorial guides or reviewed-baseline states, so an agent can tell them apart without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Frames usage by identifying the audience/tool family ('Customer API tool') and the required key/scope, and rules out the guide-oriented sibling use case. It stops short of naming the alternative tool explicitly, so the guidance is clear but not fully prescriptive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.5.4
    • Changedcalculate_lien_deadline1 field changed
      • changedInput schema / properties / state / description
        Previous value: -"Two-letter US state code, e.g. \"TX\", \"CA\", \"DC\"; one of the codes list_supported_states returns."New value: +"Two-letter US state code, e.g. \"TX\", \"CA\", \"DC\", from the jurisdictions the customer API supports."
    • Changedcalculate_supplier_deadlines1 field changed
      • changedInput schema / properties / florida_final_payment_status / description
        Previous value: -"Florida only: did the owner make final payment to the contractor? Use unknown if unverified; omitted or unknown keeps the notice under review, and yes needs florida_final_payment_date for a notice baseline."New value: +"Florida only: did the owner make final payment to the contractor? unknown when not verified. For suppliers not hired by the owner, unknown, omitted, or yes without florida_final_payment_date makes preliminary notice review_required."
    • Addedcalculate_supplier_deadlines_v3
    • Addedget_supplier_questions
  2. 3 tool updatesv0.3.1
    • Changedcalculate_lien_deadline4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / invoice_date / description
        Previous value: -"Invoice or delivery date in YYYY-MM-DD format."New value: +"Invoice or delivery date in YYYY-MM-DD format; deadlines count from it."
      • changedInput schema / properties / notice_date / description
        Previous value: -"Date a preliminary notice was actually sent, YYYY-MM-DD, if one was."New value: +"Date a preliminary notice was actually sent, YYYY-MM-DD, if one was. Omit otherwise."
      • changedInput schema / properties / state / description
        Previous value: -"Two-letter US state code, e.g. \"TX\", \"CA\", \"DC\"."New value: +"Two-letter US state code, e.g. \"TX\", \"CA\", \"DC\"; one of the codes list_supported_states returns."
    • Addedcalculate_supplier_deadlines
    • Changedget_state_lien_guide2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / state / description
        Previous value: -"Two-letter US state code, e.g. \"TX\"."New value: +"Two-letter US state or DC code, e.g. \"TX\"; case-insensitive."
  3. 4 tool updatesv0.1.0
    • First observedcalculate_lien_deadline
    • First observedget_state_lien_guide
    • First observedlist_state_lien_guides
    • First observedlist_supported_states

TDQS

A3.7/5.0

Scored across 7 tools

Disambiguation3/5

The three deadline-calculation tools (calculate_supplier_deadlines, calculate_supplier_deadlines_v3, calculate_lien_deadline) share a core purpose, and the v2/v3 pair in particular is hard for an agent to choose between since the version suffix implies supersession rather than a distinct input model. To their credit, the descriptions carefully delineate inputs (delivery events vs. project facts vs. invoice date) and key requirements, and the guide/list tools are cleanly separated.

Naming Consistency4/5

Nearly every tool follows a clean verb_noun snake_case pattern (calculate_*, get_*, list_*), which is highly predictable. The only deviation is the '_v3' version suffix on calculate_supplier_deadlines_v3, which breaks the otherwise uniform convention.

Tool Count5/5

Seven tools is well-scoped for a lien/deadline domain: three calculation entry points, two list tools, and two retrieval tools, each with a distinct role. No obvious filler or bloat.

Completeness4/5

The surface covers the lifecycle reasonably well: deadline calculations across two data models and an invoice-based customer API, plus editorial guides, state lists, and question discovery. The main gap is that coverage is limited to FL/KS private projects and the invoice API, with public projects and other states returning review_required, but that is an explicit design boundary rather than a dead end.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables Japanese business calendar operations such as holiday checking, business day calculations, payment date calculation, fiscal year determination, and deadline tracking, all locally without external API.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A zero-signup business-day date arithmetic API that allows adding/subtracting working days, counting business days between two dates, and testing if a date is a business day, with custom holidays.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Provides Japanese business day calculations: add or subtract business days, count between dates, check whether a date is a business day, and reverse-calculate deadlines. Handles national holidays and year-end periods fully offline with no API keys required.
    4
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to call deterministic Singapore legal deadline arithmetic instead of guessing, covering Rules of Court 2021 procedural periods, Limitation Act anniversaries, contractual deemed receipt, and working-day utilities. Each tool returns a full derivation trace and requires an explicit rule id, so the rule choice and holiday data provenance stay visible in the transcript.
    1
    MIT