Workers' Rights
Server Details
Read-only employment-law research: 140K+ rulings, employer track records, rights & EEOC guides.
- Status
- Healthy
- Uptime
- 100.0% over 82 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 9 tools
Each tool targets a distinct user need: rights explanation, EEOC process guidance, evidence preservation, attorney search, attorney history, employer history, similar-case analysis, ruling search, and corpus metadata. Overlaps are minimal and descriptions clearly distinguish aggregate analysis from keyword search and from entity-specific lookups.
All tools use snake_case with a clear verb_noun pattern (explain_, find_, get_, search_). The convention is consistent across the entire set, with only minor stylistic variation like 'explain_my_rights' that remains readable and predictable.
Nine tools is well-scoped for a legal research and worker-guidance server. Each tool has a clear, non-redundant role and the count avoids both thinness and overload.
The surface covers rights identification, process guidance, evidence gathering, attorney lookup, case research, and corpus credibility well. Minor gaps exist around state-specific agency processes and direct case-detail retrieval, but core workflows are supported.
Available Tools
9 toolsexplain_my_rightsExplain applicable employment-law rightsARead-onlyInspect
Explain which federal (and state, if a state is given) employment laws may protect a worker based on the type of issue (e.g. discrimination, harassment, retaliation, wrongful termination) and/or the protected class involved (e.g. race, sex, age, disability, pregnancy). Returns the relevant statutes with citations, who they cover (employer-size thresholds), filing deadlines and agencies, and available remedies. Use this to ground an answer about a worker’s legal protections. Deadline guidance covers private-sector and state/local government workers; federal employees follow a separate process with a much shorter deadline (45 days to contact their agency's EEO counselor). Educational information, not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| issue | No | Type of workplace issue, e.g. "discrimination", "harassment", "retaliation", "wrongful termination", "unpaid wages", "disability accommodation". | |
| state | No | US state (2-letter code or full name) to include state-specific protections and the correct EEOC filing deadline. | |
| employer_sector | No | Whether the employer is private, state/local government, or a federal agency. | |
| protected_class | No | Protected characteristic involved, e.g. "race", "sex", "age", "disability", "religion", "national origin", "pregnancy". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe, read-only, non-destructive operation, and the description adds meaningful behavioral context beyond that: it is educational information rather than legal advice, and it discloses a critical exception for federal employees with a 45-day EEO counselor deadline. This gives the agent important limitations and caveats that annotations alone 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but front-loaded with the core purpose and return value before the usage caveats and disclaimer. Every sentence earns its place given the legal complexity; it could be slightly tighter, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explaining what the tool returns, which it does thoroughly: statutes, citations, employer-size thresholds, filing deadlines, agencies, and remedies. It also covers parameter-specific exceptions and the educational nature of the output, making it complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds value by showing how parameters interact: state is only relevant when provided, and employer_sector maps to the federal-employee exception with a separate deadline. It also gives concrete examples for issue and protected_class that reinforce the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: explaining applicable employment-law rights based on issue and/or protected class. It clearly distinguishes this tool from procedural or attorney-search siblings by specifying that it returns statutes, citations, coverage thresholds, deadlines, agencies, and remedies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to use this tool to ground an answer about a worker's legal protections, giving clear context for when it applies. It does not name alternatives or state when not to use it, so it falls just short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_employment_attorneyFind an employment attorneyARead-onlyInspect
Find public-source employment-law attorney listings near a US location. Returns source-attributed identity, firm, location, and contact data sorted by proximity. Person-specific filters and fields apply only where the underlying directory supports them; Google Places metrics are labeled as firm/office listing data, never individual ratings. Listings are not state-bar verification or an endorsement.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Optional precise latitude. Overrides city/state when paired with lng. | |
| lng | No | Optional precise longitude. Overrides city/state when paired with lat. | |
| city | No | Optional city to tighten the search center (e.g. "Tampa"). | |
| limit | No | Max attorneys to return (1–25). | |
| state | No | US state — 2-letter code or full name (e.g. "FL" or "Florida"). Required unless lat/lng given. | |
| language | No | Filter on attorney-supplied language data. Most listings are public office records that do not publish it; when none in range do, the tool returns total 0 with unsupported_filters rather than silently implying no attorneys are nearby. | |
| min_rating | No | Minimum individual-profile rating. Office/business ratings are never treated as an attorney rating, so this matches only hand-managed profiles and returns nothing where none exist. | |
| radius_miles | No | Search radius. Defaults to 100mi for broad statewide coverage. | |
| contingency_fee | No | Filter on attorney-supplied fee data. Most listings are public office records that do not publish it; when none in range do, the tool returns total 0 with unsupported_filters rather than implying no attorneys are nearby. | |
| free_consultation | No | Filter on attorney-supplied fee data. Most listings are public office records that do not publish it; when none in range do, the tool returns total 0 with unsupported_filters rather than implying no attorneys are nearby. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/openWorldHint annotations, the description discloses data provenance (public-source), result attribution, sorting, and important limitations: person-specific filters only apply when the directory supports them, and Google Places metrics are never presented as individual attorney ratings. This is substantive behavioral context that protects against misuse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: the first states the exact purpose and scope, the second summarizes return data and ordering, the third states caveats. Every sentence carries distinct, non-redundant information, and the core purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides enough about return content and limitations for a tool with no output schema, and the schema richly documents all parameters, including required-state semantics. Minor gap: it doesn't restate the state-or-lat/lng requirement, but that is fully covered by schema descriptions, so it doesn't materially hurt completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds cross-cutting meaning that isn't in any single parameter: person-specific filters apply only where the underlying directory supports them, and Google Places metrics are labeled as firm/office data, never individual ratings. This helps the agent reason about filter behavior globally.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Find'), a specific resource ('public-source employment-law attorney listings'), and scope ('near a US location'). It also lists return fields (source-attributed identity, firm, location, contact data) and sorting, clearly distinguishing this from general legal-research or track-record siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by the description (finding attorneys near a location), and the caveat that listings are not state-bar verification or an endorsement hints at non-uses. However, it does not explicitly say when to prefer this tool instead of siblings like get_attorney_track_record or explain_my_rights.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_similar_casesFind how similar cases were decidedARead-onlyInspect
Given the facts of an employment situation — claim types, protected class, employer, state — analyze how similar real cases in the corpus were decided. Returns the aggregate plaintiff (employee) win rate, settlement rate, typical damages range, the topics courts discussed most in opinions employees won vs. lost, and a few representative example cases. Counts are returned at three levels (nationwide, the federal courts of the state's region, and the state) with a detailed breakdown for one level: who won, award amounts, what happened at each stage, and topics. Relay which level a figure describes. A level with few opinions returns counts without a win rate. Each example says what happened and why it matched. Topic rows record what opinions discussed, not what courts found. Educational statistics from published opinions: never present a historical percentage as this person’s probability of winning. Not a prediction or legal advice. In structured stages: won and wonPct count opinions the worker won in whole or in part (wonPct leaves rulings sent back out of its base), and sentBack counts rulings sent back to a lower court. wentForward and wentForwardPct include rulings sent back to a lower court and are kept for compatibility.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | Which level the detailed breakdown and examples describe: "national" (default), "circuit" (federal courts of the state's region), or "state". All three levels' counts are returned either way. | national |
| state | No | Two-letter US state code the situation arose in, e.g. "FL", "CA". | |
| law_ids | No | Related law ids, federal or state, e.g. ["title-vii","adea","ada","fmla","flsa","fl-fcra","ca-feha"]. | |
| industry | No | Employer industry, e.g. "healthcare", "retail", "transportation". | |
| claim_types | No | Claim types alleged, snake_case, e.g. ["retaliation","wrongful_termination","discrimination","harassment"]. The single highest-value signal. | |
| employer_name | No | Employer / defendant name, e.g. "Union Pacific Railroad". Used for a fuzzy match. | |
| narrow_to_laws | No | Only count opinions that mention one of law_ids (a federal law or its state analogue). Default false: every opinion sharing the claim type, under any law. | |
| protected_classes | No | Protected classes at issue, e.g. ["sex","race","age","disability","pregnancy","national_origin"]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations covering the safety profile, the description still adds substantial behavioral context: counts at three levels with a detailed breakdown for one, thin-data behavior ('A level with few opinions returns counts without a win rate'), and precise semantics of wonPct, sentBack, wentForward and legacy compatibility. It also discloses the educational-use constraint and the non-prediction framing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and return summary, then caveats. It is dense and somewhat long, particularly the final structured-stages sentence, but each clause carries semantics an agent needs; minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description fully compensates by enumerating return fields, level semantics, thin-data behavior, and field-level definitions, plus the required caveats. An agent can call and interpret this correctly without further documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: it explains the three count levels and that only one level drives the detailed breakdown/examples, and clarifies the narrow_to_laws scope ('every opinion sharing the claim type, under any law'). This goes past restating field docs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (analyze how similar cases were decided) plus the exact outputs (win rate, settlement rate, damages range, topics, representative cases). It clearly differentiates from siblings like search_rulings and get_employer_track_record by framing itself as an aggregate statistics tool over published opinions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Given the facts of an employment situation — claim types, protected class, employer, state' and the required output framing, but there is no explicit when-to-use/when-not or routing to alternatives such as search_rulings or get_employer_track_record. The extensive caveats are about interpretation, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attorney_track_recordGet an employment attorney's case track recordARead-onlyInspect
Given an employment attorney name (or profile slug), return the federal employment-law cases on file in which that attorney appeared — case caption, court, year, nature-of-suit, and the side they appeared for when on record. Use this when a user names an attorney and wants their public litigation history. Facts only, sourced from federal court dockets. Attorney identities are algorithmically matched; ambiguous and lower-confidence matches are excluded. One case is one normalized court+docket number, so duplicate source rows do not inflate the count.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of example cases to return (1–25). Counts reflect all cases on file, not just these. | |
| attorney | Yes | Employment attorney full name (e.g. "Jane Doe") or their workers-rights.com profile slug. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/openWorld/destructive annotations, the description discloses that data comes from federal court dockets, that facts are returned as-is, that attorney identity matching is algorithmic, that ambiguous/low-confidence matches are excluded, and that duplicate source rows are normalized. This gives an agent a reliable mental model of the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense without filler, opening with the core purpose and then adding usage context, data sourcing, matching caveats, and deduplication semantics. Every sentence earns its place and supports correct tool selection or invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 appropriately enumerates the returned fields: case caption, court, year, nature-of-suit, and the side the attorney appeared for. Combined with annotation coverage, schema documentation, and dedup details, the tool is fully described for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description adds context about attorney matching quality and case deduplication but does not materially extend the meaning of the 'attorney' or 'limit' parameters beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact verb (return), the resource (federal employment-law cases on file), and the subject (an employment attorney by name or slug). It enumerates the returned fields, making the tool's scope concrete and clearly distinct from the sibling get_employer_track_record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it: 'Use this when a user names an attorney and wants their public litigation history.' It does not explicitly list exclusions or mention the employer-focused sibling, but the 'employment attorney' framing and sibling names make the boundary reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_corpus_statsGet corpus size and freshnessARead-onlyInspect
Return live statistics about the Workers' Rights corpus: total number of collected court records in the research corpus, number of public attorney listings, number of monitored legal data sources, the date the corpus was last updated, and the distribution of reportable outcomes before the employment browse filter. Use this to establish scale/credibility or to answer 'how much data do you have / how current is it'.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/openWorldHint/destructiveHint=false, so safety is covered. The description adds real value beyond that by stating the data is 'live' and that it reflects the 'date the corpus was last updated' and outcome distribution before filtering, which tells the agent this is a point-in-time snapshot, not cached or filterable output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the verb and resource, then lists the returned metrics compactly, and closes with the intended use. The metric enumeration is dense but every item earns its place given there is no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 payload and does so completely (record counts, attorney listings, source count, last-updated date, outcome distribution). An agent knows what it will get and when to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly implies no input is needed and instead spends its words describing the output surface.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (return) and resource (live statistics about the Workers' Rights corpus) and enumerates exactly which figures are returned. No sibling tool overlaps with a stats endpoint, so it is trivially distinguishable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the use cases: 'establish scale/credibility' or answer 'how much data do you have / how current is it'. It gives clear positive context, though it names no alternatives or when-not conditions — reasonable here since no sibling covers this function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eeoc_processExplain the EEOC charge processARead-onlyInspect
Plain-English guide to the 9 stages of an EEOC discrimination/retaliation charge, from pre-filing through resolution. Call with no arguments for an overview of all stages with typical durations; call with a stage number (1-9) for a deep-dive on that stage: what to expect, how long it takes, the key tip, and do/don't guidance. Use this whenever someone asks what happens after filing with the EEOC, how long the process takes, what a position statement or rebuttal is, or what to do at the stage they are currently in. Covers private-sector and state/local government workers; federal employees follow a separate EEO process with a much shorter deadline (45 days to contact their agency's EEO counselor).
| Name | Required | Description | Default |
|---|---|---|---|
| stage | No | Stage number 1-9 for a deep-dive on one stage. Omit for an overview of all nine stages. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only mark the tool read-only/open-world; the description goes well beyond by explaining that calls return either a stage overview with typical durations or a stage deep-dive with tips and do/don'ts. It also discloses the coverage boundary (private-sector/state/local) and the separate federal EEO process, so an agent won't misuse it for federal employees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences each carry distinct information: what the tool is, how to invoke it for overview vs deep-dive, when to use it, and its scope/exclusion. Information is front-loaded and there is no fluff or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter informational tool with no output schema, this description is complete: it covers invocation modes, return content, use triggers, and a key scope exclusion. Nothing an agent needs to decide whether to call it or how to call it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the optional stage parameter and the omit-for-overview behavior, so the description adds little new parameter syntax. It does enrich the mental model by describing what a stage deep-dive returns, but baseline 3 is appropriate because the schema covers the actual parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('EEOC discrimination/retaliation charge') and a clear action ('Plain-English guide to the 9 stages'), and immediately distinguishes the two invocation modes (overview vs stage deep-dive). This makes the tool's job unambiguous and distinct from the rights/attorney sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this whenever someone asks what happens after filing with the EEOC' gives explicit trigger conditions, and the federal-employee caveat tells the agent when this tool is not appropriate. While no sibling is named, the when-to-use and when-not-to-use guidance is sufficiently explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_employer_track_recordGet an employer's litigation track recordARead-onlyInspect
Given an employer/company name, return distinct federal cases and trusted published employment opinions that involve that employer, the breakdown of outcomes (employee wins, employer wins, settlements, dismissals), the most notable recent opinions, AND the count of federal docket records on file (cases that may not have a written opinion). Use this when a user names their employer and wants that company's litigation history + footprint.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of example published opinions to return (1–25). The total count and outcome breakdown reflect the full corpus, not just these examples. | |
| employer | Yes | Employer/company name to look up, e.g. "Walmart", "Acme Corporation". Common suffixes like Inc/Corp/LLC are ignored when matching. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds meaningful behavior beyond that: it distinguishes published opinions from raw docket-record counts and clarifies that outcome breakdowns cover the full corpus rather than just the returned examples. It stops short of covering pagination or result-size limits outside the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and payload, followed by the usage trigger. The AND-heavy enumeration is dense but every clause maps to a distinct return component, so nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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-value burden and does so thoroughly, naming cases, outcome breakdown, notable opinions, and docket counts. An agent could invoke this confidently; only minor gaps like result size behavior or empty-result handling remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters are documented there, including the important note that limit affects only example opinions, not totals. The description only restates 'given an employer/company name' and adds no syntax, normalization, or format detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Given an employer/company name, return distinct federal cases...') and enumerates the exact payload. It is clearly distinguishable from siblings like get_attorney_track_record and search_rulings because the subject is the employer's litigation footprint, not an attorney or a keyword search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this when a user names their employer and wants that company's litigation history + footprint,' which gives a clear triggering condition. It does not explicitly rule out or name alternatives such as get_attorney_track_record or search_rulings, so routing is implied rather than fully guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_evidence_preservation_checklistEvidence preservation checklist (before losing access)ARead-onlyInspect
Concrete checklist for a worker who senses termination coming or is in a deteriorating work situation: what to write down, which records are already theirs to gather (pay records, documents they were given), and how to list everything else so an attorney can ask the employer to preserve it. It does not advise copying or forwarding material from an employer’s systems. Use this whenever someone says they think they are about to be fired, fears retaliation is escalating, mentions a PIP or sudden access changes, or asks what to do before reporting discrimination. Sections: 'today' (highest-leverage, minutes matter), 'this-week', 'quiet' (low-priority prep). Time-sensitive — employers often revoke system access during the termination call itself.
| Name | Required | Description | Default |
|---|---|---|---|
| group | No | Checklist section for a focused list: 'today' (highest-leverage, do first), 'this-week', or 'quiet' (lower-priority quiet prep). Omit for the full checklist. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this read-only/non-destructive, so the description's job is to add context beyond that — and it does: it flags time-sensitivity, explains that employers often revoke access during the termination call, names the three priority tiers, and draws an explicit legal boundary (no copying/forwarding from employer systems). That is substantive operational guidance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and triggers, and the negative boundary earns its place. It is somewhat long and repeats the section definitions that also appear in the schema, which is mild redundancy, but no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, yet the description tells the agent what the result will contain (sections 'today', 'this-week', 'quiet') and why timing matters. For a single-optional-parameter read tool, an agent has everything needed to select and call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the enum values are already documented, so the baseline is 3. The description goes slightly beyond by attaching priority meaning to each section ('today' = highest-leverage, minutes matter; 'quiet' = low-priority prep) and stating that omitting the parameter returns the full checklist, which aids correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource (produce an evidence-preservation checklist) with the specific scope: what to write down, what records the worker already owns, and how to enumerate the rest for an attorney. It is clearly distinguishable from siblings like explain_my_rights, find_employment_attorney, or get_eeoc_process, which handle adjacent but different jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit triggering conditions ('about to be fired', 'retaliation is escalating', 'mentions a PIP or sudden access changes', 'asks what to do before reporting discrimination') and an exclusion ('does not advise copying or forwarding material from an employer's systems'). This is close to a full when/when-not specification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_rulingsSearch employment-law rulingsARead-onlyInspect
Search published employment-law rulings from our research corpus by keyword, law, court, federal circuit, state, outcome, and date. Returns published opinions with citations, outcomes, procedural stage, employers, claim types, recorded monetary amounts, and links to the full opinion. Use this to ground any claim about how employment cases have been decided. Results are quality-filtered (low-confidence and junk rows excluded).
| Name | Required | Description | Default |
|---|---|---|---|
| law | No | Filter by a stored law association (not a verified holding), e.g. "title-vii", "adea", "ada", "fmla", "flsa". | |
| court | No | Filter by CourtListener court id, e.g. "scotus", "ca11" (11th Circuit). | |
| limit | No | Max rulings to return (1–25). | |
| query | No | Lexical search across case name, opinion excerpt, stored summary and employer. Every word must match; a match does not verify a claim or holding. | |
| state | No | Two-letter US state code the case was filed in, e.g. "FL", "CA". | |
| circuit | No | Filter to a federal appeals circuit (the appeals court plus its district courts). Preferred values: first-circuit, second-circuit, third-circuit, fourth-circuit, fifth-circuit, sixth-circuit, seventh-circuit, eighth-circuit, ninth-circuit, tenth-circuit, eleventh-circuit, dc-circuit, federal-circuit. Display forms like "Eleventh Circuit" or "11th" are also accepted. | |
| date_to | No | Latest filing date (YYYY-MM-DD). | |
| outcome | No | Filter to a specific case outcome. | |
| date_from | No | Earliest filing date (YYYY-MM-DD). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, open-world), and the description adds real context beyond them: results come from "our research corpus" and are quality-filtered so low-confidence and junk rows are excluded. It does not state result ordering/pagination behavior beyond the schema's limit cap, but the filtering guarantee is meaningful behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste: what it filters on, what comes back, and how to use it. The filter dimensions are front-loaded and the quality-filter note is placed last where it belongs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 burden of explaining return values and does so (citations, outcomes, procedural stage, employers, claim types, monetary amounts, opinion links). Minor gaps remain on default result ordering and behavior when all nine optional filters are omitted, but nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including enum values, date patterns, circuit display forms, and the caveat that law associations are not verified holdings. The description only restates the filter categories already documented in the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (published employment-law rulings) and enumerates the exact filter dimensions: keyword, law, court, circuit, state, outcome, date. It also describes the returned fields, which lets an agent distinguish it from find_similar_cases and get_corpus_stats without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this to ground any claim about how employment cases have been decided" gives a clear use context, and the described filters imply the intended retrieval scenarios. No sibling is named as an alternative and no when-not-to-use condition is given, so it stops short of a 5.
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 tool update
- Changed
search_rulings2 fields changed- changed
Input schema / properties / law / descriptionPrevious value: -"Filter by a related law id, e.g. \"title-vii\", \"adea\", \"ada\", \"fmla\", \"flsa\"."New value: +"Filter by a stored law association (not a verified holding), e.g. \"title-vii\", \"adea\", \"ada\", \"fmla\", \"flsa\"." - changed
Input schema / properties / query / descriptionPrevious value: -"Free-text search across case name and opinion snippet (e.g. \"pregnancy discrimination retaliation\")."New value: +"Lexical search across case name, opinion excerpt, stored summary and employer. Every word must match; a match does not verify a claim or holding."
1 tool update
- Changed
find_similar_cases3 fields changed- changed
Input schema / properties / law_ids / descriptionPrevious value: -"Related law ids, e.g. [\"title-vii\",\"adea\",\"ada\",\"fmla\",\"flsa\"]."New value: +"Related law ids, federal or state, e.g. [\"title-vii\",\"adea\",\"ada\",\"fmla\",\"flsa\",\"fl-fcra\",\"ca-feha\"]." - added
Input schema / properties / levelAdded value: +{ + "default": "national", + "description": "Which level the detailed breakdown and examples describe: \"national\" (default), \"circuit\" (federal courts of the state's region), or \"state\". All three levels' counts are returned either way.", + "enum": [ + "national", + "circuit", + "state" + ], + "type": "string" +} - added
Input schema / properties / narrow_to_lawsAdded value: +{ + "default": false, + "description": "Only count opinions that mention one of law_ids (a federal law or its state analogue). Default false: every opinion sharing the claim type, under any law.", + "type": "boolean" +}
1 tool update
- Changed
explain_my_rights1 field changed- added
Input schema / properties / employer_sectorAdded value: +{ + "description": "Whether the employer is private, state/local government, or a federal agency.", + "enum": [ + "private", + "government", + "federal_government" + ], + "type": "string" +}
9 tool updates
- Changed
explain_my_rights1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
find_employment_attorney1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
find_similar_cases1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_attorney_track_record1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_corpus_stats1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_eeoc_process1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_employer_track_record1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_evidence_preservation_checklist1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
search_rulings1 field changed- added
Input schema / additionalPropertiesAdded value: +false
1 tool update
- Changed
find_employment_attorney4 fields changed- changed
Input schema / properties / contingency_fee / descriptionPrevious value: -"Filter source-supported attorney fee data; Google office listings are excluded."New value: +"Filter on attorney-supplied fee data. Most listings are public office records that do not publish it; when none in range do, the tool returns total 0 with unsupported_filters rather than implying no attorneys are nearby." - changed
Input schema / properties / free_consultation / descriptionPrevious value: -"Filter source-supported attorney fee data; Google office listings are excluded."New value: +"Filter on attorney-supplied fee data. Most listings are public office records that do not publish it; when none in range do, the tool returns total 0 with unsupported_filters rather than implying no attorneys are nearby." - changed
Input schema / properties / language / descriptionPrevious value: -"Filter source-supported attorney language data; Google office listings are excluded."New value: +"Filter on attorney-supplied language data. Most listings are public office records that do not publish it; when none in range do, the tool returns total 0 with unsupported_filters rather than silently implying no attorneys are nearby." - changed
Input schema / properties / min_rating / descriptionPrevious value: -"Minimum individual-profile rating; Google office ratings are excluded."New value: +"Minimum individual-profile rating. Office/business ratings are never treated as an attorney rating, so this matches only hand-managed profiles and returns nothing where none exist."
1 tool update
- Changed
find_similar_cases18 fields changed- removed
Input schema / properties / claim_types / defaultRemoved value: -[] - added
Input schema / properties / claim_types / items / maxLengthAdded value: +80 - added
Input schema / properties / claim_types / items / minLengthAdded value: +1 - added
Input schema / properties / claim_types / maxItemsAdded value: +20 - added
Input schema / properties / employer_name / minLengthAdded value: +1 - changed
Input schema / properties / industry / maxLengthPrevious value: -60New value: +80 - added
Input schema / properties / industry / minLengthAdded value: +1 - removed
Input schema / properties / law_ids / defaultRemoved value: -[] - added
Input schema / properties / law_ids / items / maxLengthAdded value: +80 - added
Input schema / properties / law_ids / items / minLengthAdded value: +1 - added
Input schema / properties / law_ids / maxItemsAdded value: +20 - removed
Input schema / properties / protected_classes / defaultRemoved value: -[] - added
Input schema / properties / protected_classes / items / maxLengthAdded value: +80 - added
Input schema / properties / protected_classes / items / minLengthAdded value: +1 - added
Input schema / properties / protected_classes / maxItemsAdded value: +20 - removed
Input schema / properties / state / maxLengthRemoved value: -2 - removed
Input schema / properties / state / minLengthRemoved value: -2 - added
Input schema / properties / state / patternAdded value: +"^[A-Za-z]{2}$"
1 tool update
- Changed
get_employer_track_record1 field changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Number of example cases to return (1–25). The total count and outcome breakdown reflect the full corpus, not just these examples."New value: +"Number of example published opinions to return (1–25). The total count and outcome breakdown reflect the full corpus, not just these examples."
1 tool update
- Changed
find_employment_attorney4 fields changed- changed
Input schema / properties / contingency_fee / descriptionPrevious value: -"Only attorneys who work on contingency (no upfront fee)."New value: +"Filter source-supported attorney fee data; Google office listings are excluded." - changed
Input schema / properties / free_consultation / descriptionPrevious value: -"Only attorneys offering a free initial consultation."New value: +"Filter source-supported attorney fee data; Google office listings are excluded." - changed
Input schema / properties / language / descriptionPrevious value: -"Filter to attorneys who speak this language, e.g. \"Spanish\"."New value: +"Filter source-supported attorney language data; Google office listings are excluded." - changed
Input schema / properties / min_rating / descriptionPrevious value: -"Minimum star rating (0–5)."New value: +"Minimum individual-profile rating; Google office ratings are excluded."
1 tool update
- Added
get_evidence_preservation_checklist
Related MCP Connectors
U.S. law library for AI: court decisions, statutes, court rules and citation checks. Read-only.
Free U.S. legal research: court opinions, statutes, state regulations and corrections policies.
Read-only Davis-Bacon wage determination lookup, crew pay checks, fringe 6B, WH-347 payroll drafts.
Search live jobs, read postings, and look up how employers hire and pay. Free, no sign-in.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables querying labor lawsuits by employer from the official MTE source, with read-only access.MIT
- AlicenseNot gradedqualityCmaintenanceEnables official-source lookup of Brazilian labor court (TRT5) legal proceedings through natural language, offering read-only access with pay-per-query prepaid credit.MIT
- AlicenseNot gradedqualityDmaintenanceEnables querying labor lawsuits (processos trabalhistas) in Brazilian Regional Labor Courts (TRT) using CPF or CNPJ, with read-only access and pay-per-use credits.MIT
- AlicenseNot gradedqualityBmaintenanceEnables read-only, keyless access to hosted job search through nine MCP tools for browsing postings, matching candidates, retrieving job details and discussion threads, resolving locations, listing companies, getting stats, and performing deep-research search/fetch.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.