Local MCP Server
Run the Threshold MCP server locally via the threshold-mcp Python package. Best for developers who want lower latency, or building bespoke workflows.
Last updated
When to Use This
Most users should start with the Remote MCP Server — it requires no installation and works immediately.
Use the local CLI server if you:
- Want responses to bypass an extra network hop
- Need to work in environments with restricted outbound connections
- Prefer managing the server process yourself
Prerequisites
- Python 3.10+ installed
- A Threshold API key from the dashboard
Step 1: Install the Package
pip install threshold-mcp
This installs the threshold-mcp command, a lightweight stdio-based MCP server that communicates with Threshold’s API.
Step 2: Configure Your Client
Add the local server to your MCP client configuration. The server reads your API key from the THRESHOLD_API_KEY environment variable.
Open your configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"threshold": {
"command": "threshold-mcp",
"env": {
"THRESHOLD_API_KEY": "YOUR_API_KEY"
}
}
}
}Then quit Claude Desktop completely and reopen it.
claude mcp add threshold -- threshold-mcpSet the environment variable before launching Claude Code, or export it in your shell profile:
export THRESHOLD_API_KEY="YOUR_API_KEY"Add a new stdio MCP server in your client settings with the command threshold-mcp and the THRESHOLD_API_KEY environment variable set to your key.
Step 3: Verify the Connection
Start a new conversation and try a simple query:
What is the prevailing wage for a Software Developer (SOC 15-1252) in San Francisco?
Your AI assistant will call the lookup_prevailing_wage tool and return structured wage data for all four DOL wage levels.
Available Tools
Once connected, your client has access to the full Threshold API:
| Tool | Description |
|---|---|
lookup_prevailing_wage | DOL wage thresholds by SOC code and location |
calculate_wage_level | Determine wage level for an offered salary |
search_soc_codes | Find SOC codes by keyword or job title |
get_soc_details | Full SOC description and filing statistics |
get_soc_onet_profile | O*NET 30.3 tasks, knowledge, skills, abilities, work activities, interests, work styles, work context, technology skills, alternate titles, education distributions, and Job Zone. Optional onet_version pins the profile to a prior release (30.1, 30.2) for reproducing past determinations. |
list_onet_versions | List the O*NET releases currently loaded (30.1, 30.2, 30.3) and which is the default. Call this first to discover available releases before pinning onet_version. |
search_employers | Search H-1B employers by name |
get_employer_profile | Filing history, top SOC codes, wage stats |
top_employers_for_soc | Which employers file under a SOC code, ranked by filing volume. Optional worksite state, CBSA, and fiscal-year filters. The reverse of search_employers, which only matches names. |
get_employer_intelligence | Denial benchmarks, lottery score, program health |
analyze_classification | Compare SOC options with wage level implications |
optimize_geography | Rank metro areas by lottery advantage |
generate_wage_evidence | PDF wage evidence for H-1B registration |
Troubleshooting
threshold-mcp: command not found: Make sure the package is installed in a Python environment that’s on your system PATH. If you used a virtual environment, the command won’t be available globally.
Authentication errors: Verify that THRESHOLD_API_KEY is set correctly. You can test it directly:
THRESHOLD_API_KEY="YOUR_API_KEY" threshold-mcp --help
Tools not appearing: Restart your client after changing the configuration. Some clients only load MCP servers on startup.