Workers' Rights
Server Details
Read-only employment-law research: 140K+ rulings, employer track records, rights & EEOC guides.
- Status
- Healthy
- Uptime
- 100.0% over 62 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose: explaining rights, finding attorneys, analyzing similar cases, retrieving attorney/employer track records, getting corpus stats, walking through EEOC stages, preserving evidence, and searching rulings. The case-related tools differ in granularity (aggregate stats vs. keyword search vs. employer-specific history), so an agent can reliably select the right one.
All tools use snake_case with a verb-first pattern (explain_, find_, get_, search_). The minor variations like explain_my_rights and find_similar_cases still follow the same predictable verb_noun structure.
Nine tools is well within the ideal 3-15 range for a domain-specific server. Each tool covers a distinct part of the workers' rights research workflow without redundancy.
The surface covers the full lifecycle: understanding rights, preserving evidence, navigating the EEOC process, researching case outcomes, finding attorneys, checking attorney and employer litigation histories, and verifying corpus scale. No obvious dead ends for the stated educational and research purpose.
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 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?
With readOnlyHint=true and destructiveHint=false, annotations already establish safety. The description adds useful behavioral context: it covers only federal cases and trusted published opinions, includes docket records without opinions, and distinguishes the example limit from the full-corpus totals. This goes beyond the annotations without contradicting them.
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 concise and front-loaded with the core purpose, and the usage trigger is a single final sentence. It packs many output components into one long sentence, but there is no wasted wording or repetition of schema details.
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?
Without an output schema, the description carries the burden of listing return values, and it does so thoroughly: cases, opinions, outcome breakdown, notable opinions, and docket counts. It also clarifies scope (federal, trusted, published) and when to call it, making the tool actionable for an agent.
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 documents employer and limit, including suffix-matching behavior and the limit range. The description reinforces that the tool takes an employer/company name, but does not add substantial new parameter-level meaning beyond the schema.
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 verb (return) and resource (an employer's litigation track record), and enumerates the exact outputs: distinct federal cases, trusted published opinions, outcome breakdown, notable opinions, and docket count. The phrase 'when a user names their employer' clearly separates it from sibling tools like get_attorney_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?
'Use this when a user names their employer and wants that company's litigation history + footprint' gives explicit invocation context. It does not name alternatives or state when not to use it, but the trigger condition is clear enough for an agent.
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 related law id, 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 | Free-text search across case name and opinion snippet (e.g. "pregnancy discrimination retaliation"). | |
| 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 establish readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds real value beyond that: it discloses the result shape ("published opinions with citations, outcomes, procedural stage, employers, claim types, recorded monetary amounts, and links") and a quality-filtering behavior ("low-confidence and junk rows excluded"). Missing pagination/rate-limit notes keeps it from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with scope, then return contents, then intended use. No filler, no repetition of the tool title, and each sentence adds a distinct fact.
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 9 optional filters of varying formats and no output schema, the description correctly compensates by summarizing the return fields and the quality filter. It could say more about default result count, paging, or what happens when no filter is supplied, but nothing essential for calling the tool 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 coverage is 100% and every parameter already carries a descriptive name plus examples (law ids, court ids, circuit display forms, date patterns), so the schema does the heavy lifting. The description only restates the filter axes at a high level and adds no syntax or interpretation beyond the schema, making the baseline 3 correct.
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 ("Search published employment-law rulings from our research corpus") and enumerates the filterable dimensions, so the agent knows exactly what this tool retrieves. It does not explicitly position itself against nearby siblings such as find_similar_cases or get_corpus_stats, which keeps it short of a 5.
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?
Provides a clear use context: "Use this to ground any claim about how employment cases have been decided." That tells the agent when the tool is appropriate, but there is no guidance on when not to use it or which sibling (e.g. find_similar_cases) to prefer for adjacent needs.
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
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
8 tool updates
- Changed
explain_my_rights1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
find_employment_attorney2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / requiredRemoved value: -[ - "min_rating", - "radius_miles", - "limit" -]
- Changed
find_similar_cases2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / requiredRemoved value: -[ - "claim_types", - "protected_classes", - "law_ids" -]
- Changed
get_attorney_track_record2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Input schema / requiredPrevious value: -[ - "attorney", - "limit" -]New value: +[ + "attorney" +]
- Changed
get_corpus_stats1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
get_eeoc_process1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
get_employer_track_record2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Input schema / requiredPrevious value: -[ - "employer", - "limit" -]New value: +[ + "employer" +]
- Changed
search_rulings2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / requiredRemoved value: -[ - "limit" -]
Related MCP Connectors
Source-linked research on U.S. judges, courts, cases, and judicial analytics.
Read-only access to your Citlyze workspace: AI search visibility, citations, and recommendations.
Search a large legal database of 325M+ US court records: cases, attorneys, judges and courts.
Searchable special education decisions and legal research tools.
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 gradedqualityCmaintenanceEnables 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 querying concluded U.S. Department of Labor Wage & Hour Division enforcement cases, including employer search, case histories, back-wage totals, and dataset coverage.8 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.