Workers' Rights
REMOTE · WWW.WORKERS-RIGHTS.COM · SCANNED SEP 21
Read-only employment-law research: 140K+ rulings, employer track records, rights & EEOC guides.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security80
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability64
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2210 tokens (~245/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
How do I install the Workers' Rights MCP server?
Workers' Rights is a hosted endpoint at https://www.workers-rights.com/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · www.workers-rights.com
claude mcp add --transport http com-workers-rights-employment-law 'https://www.workers-rights.com/api/mcp'
{
"mcpServers": {
"com-workers-rights-employment-law": {
"url": "https://www.workers-rights.com/api/mcp"
}
}
} {
"servers": {
"com-workers-rights-employment-law": {
"type": "http",
"url": "https://www.workers-rights.com/api/mcp"
}
}
} [mcp_servers.com-workers-rights-employment-law] url = "https://www.workers-rights.com/api/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-workers-rights-employment-law": {
"type": "remote",
"url": "https://www.workers-rights.com/api/mcp",
"enabled": true
}
}
} openclaw mcp add com-workers-rights-employment-law --url 'https://www.workers-rights.com/api/mcp' --transport streamable-http
mcp_servers:
com-workers-rights-employment-law:
url: "https://www.workers-rights.com/api/mcp" {
"McpServers": {
"com-workers-rights-employment-law": {
"Transport": "http",
"Url": "https://www.workers-rights.com/api/mcp"
}
}
} assistant mcp add com-workers-rights-employment-law -t streamable-http -u 'https://www.workers-rights.com/api/mcp'
{
"mcpServers": {
"com-workers-rights-employment-law": {
"type": "http",
"url": "https://www.workers-rights.com/api/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 6 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “search_rulings” rewrote its description, which is the text the model reads security
- “explain_my_rights” added an optional parameter “employer_sector” cosmetic
- 30 Aug 26 0
- “find_employment_attorney” reworded the description of “contingency_fee” cosmetic
- “find_employment_attorney” reworded the description of “free_consultation” cosmetic
- “find_employment_attorney” reworded the description of “language” cosmetic
- “find_employment_attorney” reworded the description of “min_rating” cosmetic
4 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.
- 26 Aug 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Aug 26 +1
- Stability: 0.97 → pass security
- 21 Aug 26 0
- Tool “get_attorney_track_record” rewrote its description, which is the text the model reads security
- Tool “get_employer_track_record” rewrote its description, which is the text the model reads security
- Tool “search_rulings” rewrote its description, which is the text the model reads security
- “get_employer_track_record” reworded the description of “limit” cosmetic
- 17 Aug 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “find_employment_attorney” rewrote its description, which is the text the model reads security
- Tool “get_corpus_stats” rewrote its description, which is the text the model reads security
- Server version: 0.1.0 → 1.0.0 functional
- 11 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 2 Aug 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “find_employment_attorney” rewrote its description, which is the text the model reads security
- Tool “get_attorney_track_record” rewrote its description, which is the text the model reads security
- Tool “search_rulings” rewrote its description, which is the text the model reads security
- “find_employment_attorney” reworded the description of “contingency_fee” cosmetic
- “find_employment_attorney” reworded the description of “free_consultation” cosmetic
- “find_employment_attorney” reworded the description of “language” cosmetic
- “find_employment_attorney” reworded the description of “min_rating” cosmetic
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 21 Sept 2026 · Probed https://www.workers-rights.com/api/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=www.workers-rights.com | CN=YR1,O=Let's Encrypt,C=US | 30 Aug 2026 | 28 Nov 2026 | RSA 2048 | SHA256-RSA | 6d9ddf662e2d11d6305466b549e900ee379 |
| SANs: www.workers-rights.com | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of www.workers-rights.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| workers-rights.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| content-security-policy | default-src 'self'; frame-ancestors 'none'; form-action 'self'; script-src 'self' 'unsafe-inline' 'wasm-unsafe-eval' https://maps.googleapis.com https://www.googletagmanager.com https://www.google-analytics.com https://vercel.live; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: blob: https://maps.googleapis.com https://maps.gstatic.com https://*.googleapis.com https://*.googleusercontent.com https://*.supabase.co https://www.google-analytics.com https://www.googletagmanager.com; connect-src 'self' https://api.anthropic.com https://*.supabase.co https://maps.googleapis.com https://accounts.google.com https://www.google.com https://www.google-analytics.com https://*.google-analytics.com https://*.analytics.google.com https://www.googletagmanager.com; worker-src 'self' blob:; frame-src 'self' https://accounts.google.com https://login.microsoftonline.com; object-src 'none'; base-uri 'self' |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=(self) |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://www.workers-rights.com/api/mcp | Verified | 200 | |
| http (plaintext) | http://www.workers-rights.com/api/mcp | HTTPS enforced | 308 | https://www.workers-rights.com/api/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
explain_my_rights Explain applicable employment-law rights ~279
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 | Type | Req | Description |
|---|---|---|---|
| employer_sector | string | – | Whether the employer is private, state/local government, or a federal agency. |
| issue | string | – | Type of workplace issue, e.g. "discrimination", "harassment", "retaliation", "wrongful termination", "unpaid wages", "disability accommodation". |
| protected_class | string | – | Protected characteristic involved, e.g. "race", "sex", "age", "disability", "religion", "national origin", "pregnancy". |
| state | string | – | US state (2-letter code or full name) to include state-specific protections and the correct EEOC filing deadline. |
No output schema declared.
No examples provided.
find_employment_attorney Find an employment attorney ~399
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 | Type | Req | Description |
|---|---|---|---|
| city | string | – | Optional city to tighten the search center (e.g. "Tampa"). |
| contingency_fee | boolean | – | 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… |
| free_consultation | boolean | – | 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… |
| language | string | – | 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 silentl… |
| lat | number | – | Optional precise latitude. Overrides city/state when paired with lng. |
| limit | integer | – | Max attorneys to return (1–25). |
| lng | number | – | Optional precise longitude. Overrides city/state when paired with lat. |
| min_rating | number | – | 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 | integer | – | Search radius. Defaults to 100mi for broad statewide coverage. |
| state | string | – | US state — 2-letter code or full name (e.g. "FL" or "Florida"). Required unless lat/lng given. |
No output schema declared.
No examples provided.
find_similar_cases Find how similar cases were decided ~280
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 factors that most helped employees win vs. lose, and a few representative example cases. This is the highest-value grounding tool for 'what are my chances / what matters' questions. Educational statistics, not a prediction or legal advice.
| Name | Type | Req | Description |
|---|---|---|---|
| claim_types | array | – | Claim types alleged, snake_case, e.g. ["retaliation","wrongful_termination","discrimination","harassment"]. The single highest-value signal. |
| employer_name | string | – | Employer / defendant name, e.g. "Union Pacific Railroad". Used for a fuzzy match. |
| industry | string | – | Employer industry, e.g. "healthcare", "retail", "transportation". |
| law_ids | array | – | Related law ids, e.g. ["title-vii","adea","ada","fmla","flsa"]. |
| protected_classes | array | – | Protected classes at issue, e.g. ["sex","race","age","disability","pregnancy","national_origin"]. |
| state | string | – | Two-letter US state code the situation arose in, e.g. "FL", "CA". |
No output schema declared.
No examples provided.
get_attorney_track_record Get an employment attorney's case track record ~172
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 | Type | Req | Description |
|---|---|---|---|
| attorney | string | yes | Employment attorney full name (e.g. "Jane Doe") or their workers-rights.com profile slug. |
| limit | integer | – | Number of example cases to return (1–25). Counts reflect all cases on file, not just these. |
No output schema declared.
No examples provided.
get_corpus_stats Get corpus size and freshness ~88
Return live statistics about the Workers' Rights corpus: total number of court rulings 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 case outcomes across the analyzed rulings. Use this to establish scale/credibility or to answer 'how much data do you have / how current is it'.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_eeoc_process Explain the EEOC charge process ~196
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 | Type | Req | Description |
|---|---|---|---|
| stage | integer | – | Stage number 1-9 for a deep-dive on one stage. Omit for an overview of all nine stages. |
No output schema declared.
No examples provided.
get_employer_track_record Get an employer's litigation track record ~162
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 | Type | Req | Description |
|---|---|---|---|
| employer | string | yes | Employer/company name to look up, e.g. "Walmart", "Acme Corporation". Common suffixes like Inc/Corp/LLC are ignored when matching. |
| limit | integer | – | Number of example published opinions to return (1–25). The total count and outcome breakdown reflect the full corpus, not just these examples. |
No output schema declared.
No examples provided.
get_evidence_preservation_checklist Evidence preservation checklist (before losing access) ~200
Concrete checklist for a worker who senses termination coming or is in a deteriorating work situation: what to save (emails, chat DMs, performance reviews, HR records, pay records), in what order, and how to do it without crossing lines — preserving your own employment record is legal; taking company IP is not. 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 | Type | Req | Description |
|---|---|---|---|
| group | string | – | Checklist section for a focused list: 'today' (highest-leverage, do first), 'this-week', or 'quiet' (lower-priority quiet prep). Omit for the full checklist. |
No output schema declared.
No examples provided.
search_rulings Search employment-law rulings ~359
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, damages, 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 | Type | Req | Description |
|---|---|---|---|
| circuit | string | – | 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… |
| court | string | – | Filter by CourtListener court id, e.g. "scotus", "ca11" (11th Circuit). |
| date_from | string | – | Earliest filing date (YYYY-MM-DD). |
| date_to | string | – | Latest filing date (YYYY-MM-DD). |
| law | string | – | Filter by a related law id, e.g. "title-vii", "adea", "ada", "fmla", "flsa". |
| limit | integer | – | Max rulings to return (1–25). |
| outcome | string | – | Filter to a specific case outcome. |
| query | string | – | Free-text search across case name and opinion snippet (e.g. "pregnancy discrimination retaliation"). |
| state | string | – | Two-letter US state code the case was filed in, e.g. "FL", "CA". |
No output schema declared.
No examples provided.
What is the Workers' Rights MCP server?
Workers' Rights is an MCP server listed in the public MCP registry as com.workers-rights/employment-law. Read-only employment-law research: 140K+ rulings, employer track records, rights & EEOC guides. This page covers its hosted endpoint (https://www.workers-rights.com/api/mcp).
Is the Workers' Rights MCP server safe to use?
Workers' Rights scores 84 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Workers' Rights MCP server expose?
Workers' Rights exposes 9 tools: search_rulings, find_similar_cases, get_employer_track_record, get_attorney_track_record, explain_my_rights, and 4 more. Their descriptions and schemas cost roughly 2,135 tokens of context every time the server is loaded.
Does the Workers' Rights MCP server require authentication?
No. We connected to Workers' Rights without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Workers' Rights MCP server still maintained?
Workers' Rights is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.