- Levels.fyi MCP - Compensation & Cross-Company Level Mappings
Levels.fyi MCP - Compensation & Cross-Company Level Mappings
levels-fyi-mcp
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:
- Levels.fyi
.mdLLM endpoint -https://www.levels.fyi/companies/{company}/salaries.md. Officially built for "LLMs, AI agents, and intelligent crawlers." Attribution is automatic and required. - 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.
Server Config
{
"mcpServers": {
"levels-fyi": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/levels-fyi-mcp",
"run",
"levels-fyi-mcp"
]
}
}
}