Official pay statistics for any job and place, offer checks and two-offer comparisons.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Where a job offer's pay, or a posted pay range, sits on the official pay distribution for the same job and place: the percentile span, the median, US take-home pay at the midpoint after federal and state tax, and for US metro areas which Department of Labor wage level (entry to fully competent) the pay meets. Same places as get_pay.
Job title, FedSalary slug or occupation code.
Low end of the range, or the only figure.
us, ca, uk, a US state or large metro area, a Canadian province or a UK region.
High end of the range (optional).
year or hour. UK places take year only.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http official-pay https://fedsalary.com/api/mcp
Where a job offer's pay, or a posted pay range, sits on the official pay distribution for the same job and place: the percentile span, the median, US take-home pay at the midpoint after federal and state tax, and for US metro areas which Department of Labor wage level (entry to fully competent) the pay meets. Same places as get_pay.
| Argument | Type | Description |
|---|---|---|
| job* | string | Job title, FedSalary slug or occupation code. |
| max | number | High end of the range (optional). |
| min* | number | Low end of the range, or the only figure. |
| unit | string | year or hour. UK places take year only. |
| place* | string | us, ca, uk, a US state or large metro area, a Canadian province or a UK region. |
{
"type": "object",
"required": [
"job",
"place",
"min"
],
"properties": {
"job": {
"type": "string",
"description": "Job title, FedSalary slug or occupation code."
},
"max": {
"type": "number",
"description": "High end of the range (optional)."
},
"min": {
"type": "number",
"description": "Low end of the range, or the only figure."
},
"unit": {
"enum": [
"year",
"hour"
],
"type": "string",
"description": "year or hour. UK places take year only."
},
"place": {
"type": "string",
"description": "us, ca, uk, a US state or large metro area, a Canadian province or a UK region."
}
},
"additionalProperties": false
}Two US job offers, each a pay figure in a state or one of the 50 largest metro areas, compared after federal income tax, Social Security, Medicare and state income tax, then after local prices (BEA regional price parities, rent included). Returns take-home pay, take-home at national prices, which offer is worth more and by how much, and the salary each place would need to match the other. With a job, also where each offer sits on the official pay distribution. City and county income taxes are not included.
| Argument | Type | Description |
|---|---|---|
| job | string | Optional job title or slug, to place each offer on the official distribution. |
| unit | string | year or hour, for both offers (default year). |
| a_pay* | number | Offer A's pay. |
| b_pay* | number | Offer B's pay. |
| a_place* | string | Offer A's place: a US state or large metro area. |
| b_place* | string | Offer B's place. |
{
"type": "object",
"required": [
"a_place",
"a_pay",
"b_place",
"b_pay"
],
"properties": {
"job": {
"type": "string",
"description": "Optional job title or slug, to place each offer on the official distribution."
},
"unit": {
"enum": [
"year",
"hour"
],
"type": "string",
"description": "year or hour, for both offers (default year)."
},
"a_pay": {
"type": "number",
"description": "Offer A's pay."
},
"b_pay": {
"type": "number",
"description": "Offer B's pay."
},
"a_place": {
"type": "string",
"description": "Offer A's place: a US state or large metro area."
},
"b_place": {
"type": "string",
"description": "Offer B's place."
}
},
"additionalProperties": false
}Official pay statistics for one job in one place: median, 10th to 90th percentiles, employment, the publisher and reference period, take-home pay where the site shows it, and for US states and metro areas the U.S. Department of Labor's four wage levels (entry to fully competent). Covers the US (national, every state, the 50 largest metro areas), Canada (national, provinces) and the UK (national; regions are a table on the national answer). Returns the page's Markdown copy with a citation line.
| Argument | Type | Description |
|---|---|---|
| job* | string | Job title as people say it (registered nurse, software engineer), a FedSalary page slug (registered-nurses) or an occupation code (SOC 29-1141, NOC 31301). |
| place | string | us, ca or uk for a whole country (default us); a US state (texas or TX); a large US metro area (austin, seattle); a Canadian province (ontario); a UK region (london). |
{
"type": "object",
"required": [
"job"
],
"properties": {
"job": {
"type": "string",
"description": "Job title as people say it (registered nurse, software engineer), a FedSalary page slug (registered-nurses) or an occupation code (SOC 29-1141, NOC 31301)."
},
"place": {
"type": "string",
"description": "us, ca or uk for a whole country (default us); a US state (texas or TX); a large US metro area (austin, seattle); a Canadian province (ontario); a UK region (london)."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 9, 2026.