# ⚖️ Labor & Compliance MCP — ERISA, H-1B, CFPB, HMDA (`nexgendata/labor-compliance-mcp`) Actor

MCP server giving AI agents one-connection access to labor & financial-compliance data: DOL Form 5500 ERISA benefit-plan filings, H-1B/LCA visa wage data, CFPB consumer complaints, and HMDA mortgage-lending disparity metrics.

- **URL**: https://apify.com/nexgendata/labor-compliance-mcp.md
- **Developed by:** [NexGenData](https://apify.com/nexgendata) (community)
- **Categories:** MCP servers, AI
- **Stats:** 11 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $25.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## ⚖️ Labor & Compliance MCP — ERISA, H-1B, CFPB, HMDA

**One MCP connection that gives your AI agent live access to four federal labor- and financial-compliance datasets — DOL Form 5500 ERISA benefit-plan filings, H-1B / LCA visa-wage data, CFPB consumer complaints, and HMDA mortgage-lending data — billed per tool call, with no subscription, no scraping, and no API keys to juggle.**

The Labor & Compliance MCP is a live Model Context Protocol server. Instead of wiring up four separate government data sources and writing glue code for each, you connect one MCP endpoint and your agent gains four ready-to-call tools. Ask Claude, Cursor, or an n8n workflow a natural-language question — "what's the prevailing wage for a software engineer H-1B in Austin?" or "pull this company's most recent Form 5500" — and the agent calls the right tool and returns structured JSON. It is built for compliance researchers, HR and immigration teams, benefits consultants, fintech risk teams, and the AI agents doing their first-pass research.

### Tools

This MCP server exposes four tools, each backed by an authoritative federal dataset:

- **ERISA Form 5500 (DOL)** — Look up employee-benefit-plan filings from the Department of Labor's Form 5500 series. Employers with ERISA-covered retirement and welfare plans file annually; the data covers plan sponsor, plan name, participant counts, plan type, and funding details. Use it to research a company's benefit plans or size a plan-administration prospect.
- **H-1B / LCA visa wage data** — Query Labor Condition Application (LCA) and H-1B disclosure data: employer, job title, worksite location, and prevailing / offered wage. Use it to benchmark sponsored-role wages, research an employer's H-1B sponsorship history, or check prevailing-wage levels by occupation and metro.
- **CFPB consumer complaints** — Search the Consumer Financial Protection Bureau's public consumer-complaint database: product, issue, company, and complaint narrative. Use it to monitor a financial company's complaint profile, surface emerging issue patterns, or benchmark a lender against peers.
- **HMDA mortgage-lending data** — Query Home Mortgage Disclosure Act data on mortgage applications and originations, the foundational dataset for fair-lending and mortgage-market analysis. Use it to study lending patterns or screen for disparity signals.

Each tool returns structured JSON. Your agent picks the tool, supplies the parameters from the user's question, and gets back ready-to-reason-over data — no schema-mapping on your side.

### Why use this

The alternative to one MCP connection is four integrations. The DOL Form 5500 data, the H-1B/LCA files, the CFPB complaint database, and the HMDA datasets each live in different places, formats, and refresh cycles. The old way means four scrapers, four normalization layers, four things that break independently — plus teaching your AI agent how to call each one.

This server collapses that into a single MCP endpoint. Your agent discovers the four tools automatically, calls them in natural language, and gets consistent structured JSON back. Because it speaks the Model Context Protocol, it works out of the box with Claude Desktop, Cursor, Windsurf, Cline, and n8n — and billing is per tool call, so you pay only for the questions your agent actually asks.

### Connect

This is a live MCP server. Point your MCP client at:

````

https://nexgendata--labor-compliance-mcp.apify.actor/mcp

````

- **Claude Desktop** — add the server (URL above + your Apify token) to the MCP servers block in `claude_desktop_config.json` and restart. The four tools appear automatically.
- **Cursor** — Settings → MCP → Add server, paste the URL and your token.
- **Windsurf** — register the URL with your token in Windsurf's MCP configuration.
- **Cline** — add the endpoint and token in Cline's MCP server settings.
- **n8n** — point an MCP-client node at the URL with your token to call the tools inside automated workflows.

In every client, authentication is your Apify token, which also meters per-tool-call billing.

### Use cases

- **Agentic compliance research** — Let an AI agent answer "summarize this company's benefit plans, H-1B sponsorship, and CFPB complaint history" by calling three of the four tools in one reasoning loop and synthesizing the result.
- **H-1B wage benchmarking** — HR and immigration teams ask the agent for prevailing and offered wages by job title and worksite to set defensible, compliant offer levels for sponsored roles.
- **Fintech complaint monitoring** — Risk and compliance teams have an agent watch the CFPB complaint database for their company and peers, surfacing emerging issue patterns before they escalate.
- **Fair-lending analysis** — Researchers and compliance teams query HMDA data through the agent to study mortgage-lending patterns and screen for disparity signals.
- **Due-diligence automation** — In a vendor or counterparty review, an agent pulls Form 5500, H-1B, CFPB, and HMDA signals in one pass to build a labor-and-financial-compliance snapshot.

### Pricing

This MCP server bills on Apify's **pay-per-event** model, metered **per tool call**:

- **\$0.10 per tool call** — charged once each time your agent invokes one of the four tools and gets a result
- **No subscription, no seat licence, no minimum commitment**

#### Cost worked example

- One compliance question answered with three tool calls (Form 5500 + H-1B + CFPB) → 3 × \$0.10 = **\$0.30**
- A nightly n8n workflow making 50 CFPB-complaint checks → 50 × \$0.10 = **\$5.00**
- A single H-1B wage lookup → **\$0.10**

You pay only for the tool calls your agent makes. Browse 200+ buyer-intent actors and MCP servers at https://apify.com/nexgendata?fpr=2ayu9b

### FAQ

**Q: What is an MCP server and why does it matter?**

A: Model Context Protocol is the open standard that lets AI agents discover and call external tools. By exposing these four datasets as an MCP server, any MCP-capable client (Claude Desktop, Cursor, Windsurf, Cline, n8n) can use them natively — your agent calls them in natural language, no custom integration required.

**Q: Which datasets are covered?**

A: Four federal sources — DOL Form 5500 (ERISA benefit-plan filings), H-1B / LCA visa-wage disclosure data, CFPB consumer complaints, and HMDA mortgage-lending data.

**Q: How do I authenticate?**

A: With your Apify token, supplied in your MCP client's configuration alongside the endpoint URL. The same token meters per-tool-call billing.

**Q: Can I use this in an automated workflow, not just a chat client?**

A: Yes — connect it from n8n (or any MCP-client tooling) to call the tools inside scheduled, non-interactive workflows such as nightly compliance-monitoring runs.

**Q: Is the data official, and how is it billed?**

A: All four tools are backed by authoritative US federal datasets (DOL, USCIS/DOL disclosure data, CFPB, HMDA). Billing is per tool call at \$0.10 per call on Apify's pay-per-event model — no subscription, you pay only when your agent calls a tool.

### Schema stability & versioning

This MCP server follows NexGenData's **additive-only schema** contract: new fields and new tools may be **added** over time, but existing tools and their returned fields are **never renamed or removed** without a major-version bump and an advance changelog notice. Field semantics are never silently changed. You can build agent workflows on these tools and trust they will keep working. Report anything unexpected via the actor's Apify Issues tab.

### Compliance & legal

- The server reads **public** US federal data (DOL Form 5500, H-1B/LCA disclosure data, CFPB consumer complaints, HMDA mortgage data) published by the respective agencies for public use.
- All requests route through Apify's compliant infrastructure with polite pacing.
- This server is a **data tool, not legal, immigration, lending, or compliance advice**. Wage, benefit-plan, complaint, and lending data should be verified against official sources before any compliance, hiring, or lending decision.
- You are responsible for ensuring your downstream use complies with applicable employment, immigration, fair-lending, and data-protection laws.

### Related NexGenData actors

Part of NexGenData's compliance and MCP suite — pair this server with:

- [Environmental & ESG MCP](https://apify.com/nexgendata/environmental-esg-mcp?fpr=2ayu9b) — ESG and environmental-compliance datasets via MCP
- [Sales Intelligence MCP](https://apify.com/nexgendata/sales-intelligence-mcp?fpr=2ayu9b) — B2B prospecting and firmographic data via MCP
- [Supply Chain & Logistics MCP](https://apify.com/nexgendata/supply-chain-logistics-mcp?fpr=2ayu9b) — trade, shipping, and supply-chain data via MCP
- [FDIC Bank Financials & Health](https://apify.com/nexgendata/fdic-bank-financials-health?fpr=2ayu9b) — bank financial-condition data for financial-compliance work
- [Fed Bank Enforcement Actions](https://apify.com/nexgendata/fed-bank-enforcement-actions?fpr=2ayu9b) — Federal Reserve enforcement actions against banks

Explore the full catalog of 200+ buyer-intent actors and MCP servers at **https://apify.com/nexgendata?fpr=2ayu9b**.

# Actor input Schema



## Actor input object example

```json
{}
````

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/labor-compliance-mcp").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/labor-compliance-mcp").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call nexgendata/labor-compliance-mcp --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nexgendata/labor-compliance-mcp",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "⚖️ Labor & Compliance MCP — ERISA, H-1B, CFPB, HMDA",
        "description": "MCP server giving AI agents one-connection access to labor & financial-compliance data: DOL Form 5500 ERISA benefit-plan filings, H-1B/LCA visa wage data, CFPB consumer complaints, and HMDA mortgage-lending disparity metrics.",
        "version": "0.0",
        "x-build-id": "Ew5wS3iVU0Y5SZTyc"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~labor-compliance-mcp/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-labor-compliance-mcp",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/nexgendata~labor-compliance-mcp/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-labor-compliance-mcp",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/nexgendata~labor-compliance-mcp/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-labor-compliance-mcp",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {}
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
