Levels.fyi MCP - Compensation & Cross-Company Level Mappings

by yashzord

525 downloads
Not rated
GitHub

About

MCP server exposing Levels.fyi compensation data and curated cross-company SWE level mappings (Google L5 ↔ Meta E5 ↔ Amazon L6) to Claude. 6 tools: get_company_medians, list_supported_companies, get_company_ladder, get_level_mapping, compare_offers, analyze_offer. Uses Levels.fyi

Details

Author
yashzord
Downloads
525
Categories
Other

- Exposes six MCP tools for compensation and level data.
- Cross-company level translator with confidence ratings.
- Live median total compensation from official Levels.fyi endpoint.
- Offer comparison and market analysis tools included.
- Curated SWE ladders for ten major tech companies.
- Data sourced with attribution, does not scrape web pages.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Levels.fyi MCP - Compensation & Cross-Company Level Mappings
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install with uvx levels-fyi-mcp or pip install levels-fyi-mcp. The server speaks MCP over stdio and is designed to be launched by an MCP client. Configure it in Claude Desktop's claude_desktop_config.json using "command": "uvx" and "args": ["levels-fyi-mcp"], or in Claude Code with claude mcp add --scope user levels-fyi -- uvx levels-fyi-mcp.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "levels.fyi mcp - compensation & cross-company level mappings": {
            "levels-fyi": {
                "command": "uv",
                "args": [
                    "--directory",
                    "/absolute/path/to/levels-fyi-mcp",
                    "run",
                    "levels-fyi-mcp"
                ]
            }
        }
    }
}

McpServers

{
    "levels-fyi": {
        "command": "uv",
        "args": [
            "--directory",
            "/absolute/path/to/levels-fyi-mcp",
            "run",
            "levels-fyi-mcp"
        ]
    }
}

levels-fyi-mcp

<!-- mcp-name: io.github.yashzord/levels-fyi-mcp -->

CI
License: MIT
Python 3.12+
PyPI

A Model Context Protocol (MCP) server that exposes Levels.fyi compensation data and cross-company SWE level mappings to Claude and other MCP-compatible clients.

> The killer feature: a curated cross-company level translator. Ask Claude "what is Google L5 at Meta?" and get a real answer with confidence ratings, TC bands, and explanation of how the mapping was derived.

Example interactions

Once connected, your MCP client can answer questions like:

- "What does Google currently pay Software Engineers (median)?"
- "What's the equivalent of Google L5 at Meta and Amazon?"
- "Compare these two offers: Google L5 NYC ($215k base / $580k equity over 4yr / $25k bonus) vs Stripe L3 SF ($240k base / $800k equity / no bonus)."
- "Is an offer of $260k base + $900k equity over 4yr at Stripe L3 above or below market?"

Tools exposed (6 total)

| Tool | What it does |
|------|--------------|
| get_company_medians | Live median total comp by job family for a company. Pulled from Levels.fyi's official LLM endpoint with attribution. |
| list_supported_companies | List of curated companies + canonical career levels reference. |
| get_company_ladder | Full SWE ladder for one company: titles, canonical levels, TC bands, YOE typical, confidence. |
| get_level_mapping | Cross-company level translator (e.g., Google L5 ↔ Meta E5 ↔ Amazon L6). |
| compare_offers | Normalize multiple offers (base + per-year equity + bonus) and rank them. |
| analyze_offer | Verdict on whether an offer is below/at/above market for a given company+level. |

What you actually get back

A concrete example - asking for the cross-company mapping Google L5 → Meta:

{
  "source_company": "google",
  "source_level": "L5",
  "canonical_level": "senior",
  "target_company": "meta",
  "target_levels": [
    {
      "name": "E5",
      "title": "Senior Software Engineer",
      "yoe_typical_min": 5,
      "yoe_typical_max": 9,
      "tc_band_low_usd": 440000,
      "tc_band_high_usd": 650000,
      "confidence": "high",
      "notes": "Terminal level (no up-or-out below this)."
    }
  ],
  "confidence": "high",
  "explanation": "Google / Alphabet L5 (Senior Software Engineer) maps to canonical level 'senior'. At Meta that is E5."
}

And a comparison of two real-shape offers:

#1 Stripe L3 SF:    $440,000/yr  (best)
#2 Google L5 NYC:   $385,000/yr  (-$55,000 vs best, 87.5%)

Companies covered (curated SWE ladders)

Google, Meta, Amazon, Apple, Microsoft, Stripe, Uber, Airbnb, Databricks, Netflix.

Each level includes: name, title, canonical career level, typical YOE, total compensation band (USD, US Tier-1 metro), and a confidence rating (high/medium/low).

Data sources & terms

This server is built on data sources Levels.fyi has explicitly made available for this purpose:

1. Levels.fyi .md LLM endpoint - https://www.levels.fyi/companies/{company}/salaries.md. Officially built for "LLMs, AI agents, and intelligent crawlers." Attribution is automatic and required.
2. Curated public-knowledge ladders - level mappings sourced from Levels.fyi public pages, candor.co, public job postings, and Blind community discussion. Opinionated and approximate; confidence ratings included.

This server does not scrape Levels.fyi web pages, does not identify itself as ClaudeBot/anthropic-ai (which their robots.txt disallows), and does not compete with their commercial enterprise API.

Install

The easiest way (no clone needed) - via uvx:

uvx levels-fyi-mcp

Or with pip:

pip install levels-fyi-mcp

Or from source:

git clone https://github.com/yashzord/levels-fyi-mcp
cd levels-fyi-mcp
uv sync

Run

uv run levels-fyi-mcp

The server speaks MCP over stdio - it is designed to be launched by an MCP client (Claude Desktop, Claude Code), not by you directly.

Configure in Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "levels-fyi": {
      "command": "uvx",
      "args": ["levels-fyi-mcp"]
    }
  }
}

Restart Claude Desktop. You should see "levels-fyi" appear with 6 tools.

Configure in Claude Code

claude mcp add --scope user levels-fyi -- uvx levels-fyi-mcp

Tests

uv run pytest

20 tests pass covering: level mapping correctness, TC-band ordering invariants, all tool response shapes, and the markdown parser.

Status

v0.1.x - Stable. SWE ladders for 10 companies, 6 MCP tools, live .md endpoint with caching. Used in production by users via Claude Desktop and Claude Code.

What's planned

- Manager / PM / Data Scientist / Designer ladders (currently SWE only)
- More companies (Snowflake, Coinbase, OpenAI, Anthropic, DeepMind, NVIDIA)
- Per-record compensation search (currently company-level medians only)
- Cost-of-living adjustment (currently US Tier-1 metro basis)
- Equity vest schedules beyond the standard 4-year cliff
- Total comp trends over time

If any of these would help you, open an issue and they get prioritized.

Contributing

Issues and PRs welcome. The level mappings especially benefit from community input - if you have data points that contradict a band or canonical mapping, please open an issue with your sources.

License

MIT - see LICENSE.

Disclaimer

This project is not affiliated with, endorsed by, or sponsored by Levels.fyi. All compensation data is sourced from publicly available datasets and Levels.fyi's officially-provided LLM endpoint, with attribution. TC bands are approximate, opinionated, and reflect US Tier-1 metro markets unless otherwise noted.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.