Skip to main content
Glama

薪资 MCP 服务器(salary-mcp)

CI PyPI Python Version License: MIT

一个 Model Context Protocol (MCP) 服务器,为 LLM 提供对来自 Djinni (djinni.co) 和 DOU (jobs.dou.ua/salaries/) 的实际公开 IT 市场薪资基准的直接编程访问。


⚡ 快速开始(已发布的 PyPI 包)

salary-mcp 已发布在 PyPI 上,无需手动克隆仓库即可立即运行。

1. 通过 Stdio 运行(默认)

面向桌面 AI 客户端(Claude Desktop、Cursor、Antigravity、Zed)的标准输入/输出通信:

# Instant run with uvx (no installation needed)
uvx salary-mcp

# Or with pipx
pipx run salary-mcp

# Or install via pip
pip install salary-mcp
salary-mcp

2. 通过 HTTP / SSE 运行(远程服务器)

服务端推送事件(SSE)模式,适用于远程部署、容器和 Web 客户端:

# Start SSE HTTP server on port 8000
uvx salary-mcp --transport sse --host 0.0.0.0 --port 8000

您的 MCP 客户端可以连接到:http://localhost:8000/sse


Related MCP server: PayHub MCP Server

🔌 MCP 客户端配置

Claude Desktop (claude_desktop_config.json)

Stdio 模式(推荐):

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

HTTP / SSE 模式:

{
  "mcpServers": {
    "salary-mcp": {
      "url": "http://localhost:8000/sse"
    }
  }
}

Cursor (~/.cursor/mcp.json)

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

🌐 数据来源与提取架构

该服务器仅从 Djinni 和 DOU 的实时官方门户获取数据:

1. Djinni (https://djinni.co/salaries/)

  • 端点格式:https://djinni.co/salaries/?category={category}&exp={exp}&english_level={level}

  • 提取方式:实时按需抓取 Djinni 滚动 30 天的平台招聘指标。

  • 提取的数据:

    • 候选人预期:第 25 至第 75 百分位的薪资预期以及计算得出的中位数。

    • 企业职位:活跃招聘帖中的薪资范围。

    • 市场动态:在线活跃候选人和开放职位的实时计数器。

    • 薪资分布:直接从内嵌图表数据解析出的完整薪资分箱直方图。

2. DOU (https://jobs.dou.ua/salaries/)

  • 端点来源:由 https://jobs.dou.ua/salaries/ 直接加载的主部件数据集(https://s.dou.ua/files/lenta/salary-widget_jun_2026_v3/data/swd-medians.csv)。

  • 提取方式:提取官方的统计四分位数($q1$、$median$、$q3$)、受访者样本量($count$)和资历级别($title$)。

  • 历史数据支持:支持通过 as_of_date 参数查询特定的历史调查波次(例如 '2025-12'、'2026-06'),默认使用最新的可用波次。


❓ 为什么 DOU 提供方数据可能与网站 UI 视图不同

通过 salary-mcp 查询 DOU 时,您可能会偶尔注意到返回的统计数据与 jobs.dou.ua/salaries/ 交互式界面中呈现的内容之间存在细微差异:

  1. 前端样本量阈值:

    • 在公开网站上,DOU 的图表脚本通常会应用最小样本量阈值(通常为 $\ge 15-20$ 名受访者)。

    • 当某个特定经验区间受访者较少时(例如 Data Science 方向 9 年经验仅有 $11$ 名受访者),网站图表会将该柱状条隐藏或置灰,并显示为 "Недостатньо анкет"(数据不足)。

    • 底层的 DOU 分析数据集会保留这些受访者的精确计算中位数,salary-mcp 会准确地返回该值。

  2. 分类聚合与特定职位筛选:

    • 在网页界面上选择宽泛的分类(例如 "Data & Analytics" 或 "Management")会将所有子角色汇总在一起。

    • 特定职位查询(例如 Middle Data Scientist 或 Junior HR Specialist)会匹配数据集中对应的具体职位层级。

  3. 调查波次发布:

    • 默认情况下,salary-mcp 始终选择最近的官方调查波次(例如 2026-06)。如果网站用户界面显示的是较早的波次或不同的文章,指定 as_of_date 可确保完全对齐。


🛠️ MCP 工具参考

get_djinni_salaries

从 Djinni 获取实时的候选人薪资预期和职位薪资分布。

  • 参数:

    • role (string, 必填):目标职位(例如 "Software Engineer"、"QA"、"DevOps"、"HR")。

    • specialization (string, 可选):技术或领域(例如 "Python"、"React"、"HR")。

    • experience_years (integer, 可选):工作年限(例如 0、2、5)。

    • english_level (string, 可选):英语水平(例如 "intermediate"、"advanced")。

get_dou_salaries

从 DOU 获取官方的薪资调查基准和百分位数。

  • 参数:

    • role (string, 必填):职位或类别(例如 "Software Engineer"、"Data Science")。

    • specialization (string, 可选):语言或子角色(例如 "Python"、"Data Scientist")。

    • experience_years (integer, 可选):专业工作年限。

    • seniority (string, 可选):职级层级("Junior"、"Middle"、"Senior"、"Lead"、"Architect")。

    • city (string, 可选):地点筛选(例如 "Kyiv"、"Lviv"、"Remote")。

    • as_of_date (string, 可选):调查日期,格式为 YYYY-MM(例如 "2025-12"、"2026-06")。默认为最新。

compare_salaries

并排比较 Djinni 与 DOU 之间的薪资基准,并进行差异分析。

  • 参数:

    • role (string, 必填):目标职位。

    • specialization (string, 可选):技术或专业方向。

    • experience_years (integer, 可选):工作年限。

    • seniority (string, 可选):用于 DOU 匹配的职级。

    • as_of_date (string, 可选):用于 DOU 对比的目标调查日期。

list_specializations

列出可用的职位、技术、职级、城市和历史调查日期。

  • 参数:

    • provider (string, 可选):选择范围("all"、"djinni"、"dou")。默认为 "all"。


🛠️ 本地开发

# Clone and install dependencies
git clone https://github.com/propsi4/salary-mcp.git
cd salary-mcp
poetry install

# Run test suite
poetry run pytest

# Run linter and type checks
poetry run ruff check . --fix
poetry run ruff format .
poetry run mypy src tests

📄 许可证

MIT 许可证。详见 LICENSE。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    US + EU salary benchmarking, pay transparency compliance, and semantic endpoints. 1,400+ US occupations, 28 EU countries. MCP server for AI agents.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables querying real disclosed salary data across 20 regions, with tools to search jobs, retrieve salary statistics, and find similar roles.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to search and analyze LinkedIn jobs with advanced filters, salary requirements, and market insights through natural language.
    21 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables querying open job postings directly from company applicant-tracking systems (Greenhouse, Ashby, Lever), finding a company's job board, listing and comparing roles, and accessing salary data, all without scraping or API keys.
    3
    22 PyPI
    MIT