Skip to main content

MCP server for the BLS Occupational Employment and Wage Statistics (OEWS) API. Market wage data for IGCEs and price analysis.

Project description

bls-oews-mcp

MCP server for the BLS Occupational Employment and Wage Statistics (OEWS) API. Market wage data for IGCE development, price analysis, and labor market research.

Optional free API key for higher rate limits. Works without a key at reduced limits.

Tested and hardened through a 5-round retroactive live audit with a real BLS API key after the initial smoke test reported zero bugs. 60 regression tests covering 1 P0 usability-breaking bug (SOC format), 10 P1 silent-wrong-data bugs, 12 P1 response-shape crash paths, and 7 P2 validation gaps fixed. See TESTING.md for the full testing record.

What it does

Exposes the BLS OEWS API as 7 MCP tools:

Core

  • get_wage_data - Wage statistics for an occupation by SOC code (national, state, or metro)
  • compare_metros - Compare wages for one occupation across multiple metro areas
  • compare_occupations - Compare wages across multiple occupations in one location

Workflow

  • igce_wage_benchmark - Wage benchmarks with burdened rate estimates for IGCE development
  • detect_latest_year - Check if newer OEWS data has been released

Reference

  • list_common_soc_codes - SOC code mappings for federal IT/professional services
  • list_common_metros - Metro area MSA codes

Authentication (optional)

Without a key, the server uses BLS v1 API (25 queries/day). With a key, it uses v2 (500 queries/day). Register free at data.bls.gov/registrationEngine.

Installation

uvx bls-oews-mcp

Claude Desktop configuration

Without key:

{
  "mcpServers": {
    "bls-oews": {
      "command": "uvx",
      "args": ["bls-oews-mcp"]
    }
  }
}

With key (recommended):

{
  "mcpServers": {
    "bls-oews": {
      "command": "uvx",
      "args": ["bls-oews-mcp"],
      "env": {
        "BLS_API_KEY": "your-api-key-here"
      }
    }
  }
}

Example prompts

  • "What's the national median salary for Software Developers (SOC 151252)?"
  • "Compare Systems Analyst wages in DC, Seattle, and Baltimore."
  • "Build IGCE wage benchmarks for Program Manager, Software Developer, and Help Desk at the DC metro area with a 2.0x burden factor."
  • "Is $195/hr reasonable for a Senior Software Developer? Show me the BLS market data."
  • "What do Information Security Analysts earn in Virginia vs nationally?"

Important: base wages, not burdened rates

BLS OEWS data represents employer-reported base wages (no fringe, overhead, G&A, or profit). To estimate fully burdened hourly rates for an IGCE, apply a burden multiplier:

  • 1.5x-1.7x: lean contractor
  • 1.8x-2.2x: mid-range professional services
  • 2.0x-2.5x: large contractor with clearance overhead
  • 2.5x-3.0x: high-overhead (SCIF, deployed)

The igce_wage_benchmark tool applies the multiplier automatically.

Data year

OEWS data lags ~2 years. The server defaults to 2024 (May 2024 estimates, released April 2025). Do NOT query 2025 or 2026. Use detect_latest_year to check for newer releases.

Companion tools

Use alongside gsa-calc-mcp (GSA CALC+ ceiling rates) for complete pricing analysis. BLS provides what the market pays; CALC+ provides what GSA contractors charge. Together they form the IGCE pricing toolkit.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bls_oews_mcp-0.2.7.tar.gz (90.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bls_oews_mcp-0.2.7-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file bls_oews_mcp-0.2.7.tar.gz.

File metadata

  • Download URL: bls_oews_mcp-0.2.7.tar.gz
  • Upload date:
  • Size: 90.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bls_oews_mcp-0.2.7.tar.gz
Algorithm Hash digest
SHA256 e49d2c3388f1f5709f9964c223208862a85bdb47b1269cae585bfedafb76af0a
MD5 bf82c1f57f8df39a6b4cee09cdadc975
BLAKE2b-256 f99f3390a3edc7172f6c1ae89624a99588bc604f4f83e569373c2f02fa7ee5c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for bls_oews_mcp-0.2.7.tar.gz:

Publisher: publish-pypi.yml on 1102tools/federal-contracting-mcps

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bls_oews_mcp-0.2.7-py3-none-any.whl.

File metadata

  • Download URL: bls_oews_mcp-0.2.7-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bls_oews_mcp-0.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 6900650be84b4f9509bb974f190ee24853e77cbae07f98766eef4660e22954a2
MD5 08c7c142c218d09b47e7650dadce07d8
BLAKE2b-256 1e11bf54ffa7165bcd7142945587807f40f360758d80a764d4147adc8b96b1f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for bls_oews_mcp-0.2.7-py3-none-any.whl:

Publisher: publish-pypi.yml on 1102tools/federal-contracting-mcps

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page