h1b-job-search
An MCP (Model Context Protocol) server that automates H-1B job searching using U.S. Department of Labor LCA disclosure data.
claude mcp add --transport stdio aryaminus-h1b-job-search-mcp python src/server.py \ --env PORT="8000"
How to use
This MCP server provides access to real U.S. Department of Labor LCA data for H-1B sponsorship, offering tools to load data, search for jobs, analyze company sponsorships, and export results. You can interact with the server via the MCP tools exposed in the API, such as load_h1b_data to fetch and cache the latest LCA data, search_h1b_jobs to filter sponsoring companies by job role and location, get_company_stats for company-level sponsorship insights, and export_results to generate CSVs for outreach. The server also supports a natural language interface through the ask tool, allowing you to describe what you want in plain English (e.g., “Show me data scientist positions in NY paying over 180k”). The top sponsors and data availability queries help you understand the dataset scope and dominant employers. For local testing, the example flow shows starting the server and using the inspector to explore capabilities, then performing a sequence like loading data, searching for jobs, viewing company details, and exporting results.
How to install
Prerequisites:
- Git
- Python 3.9+ (the project references Python and a virtual environment)
- Optional: Conda for environment management
- Clone the repository:
git clone <your-repo-url>
cd mcp-server-template
- Set up a Python environment (recommended):
- Using Conda:
conda create -n h1b-mcp python=3.13
conda activate h1b-mcp
- Or using venv:
python -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows
- Install dependencies:
pip install -r requirements.txt
- Run the MCP server locally:
# From the project root
python src/server.py
- (Optional) Start the MCP Inspector to test:
npx @modelcontextprotocol/inspector
- Run the server in the desired platform configuration (see mcp_config in this document).
Additional notes
Tips and caveats:
- The dataset can be large; consider using caching and parameters like nrows to limit memory usage.
- If you encounter memory issues, try loading data for a specific year/quarter or enable more aggressive caching.
- Data source is public and historical; verify current sponsorship policies with employers directly.
- If the server goes down on a free host due to memory constraints, consider increasing memory limits or running on a larger instance.
- Environment variables: PORT can be set to the port used by the MCP service; adjust according to deployment platform (Render, local, etc.).
- You can customize filtering logic or add new tools by editing src/server.py and reloading the MCP server.
Related MCP Servers
web-eval-agent
An MCP server that autonomously evaluates web applications.
mcp-neo4j
Neo4j Labs Model Context Protocol servers
Gitingest
mcp server for gitingest
zotero
Model Context Protocol (MCP) server for the Zotero API, in Python
fhir
FHIR MCP Server – helping you expose any FHIR Server or API as a MCP Server.
unitree-go2
The Unitree Go2 MCP Server is a server built on the MCP that enables users to control the Unitree Go2 robot using natural language commands interpreted by a LLM.