Token导航 LogoToken导航TokenDH.com
Jobsuche MCP Server logo
搜索检索stdio官方级别未说明来源级核验

Jobsuche MCP Server

MCP Server

@modelcontextprotocol/inspector

一个基于德国联邦就业局API的AI友好型职位搜索集成服务器,提供丰富的职位搜索和筛选功能。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
RustClaude搜索Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

wunderfrucht

提供方

wunderfrucht

最后核验

2026/5/17 20:19

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @modelcontextprotocol/inspector ./target/debug/jobsuche-mcp-server

详细介绍

寻找工作 MCP 服务器

一个使用模型上下文协议(MCP)的对AI友好的求职信息集成服务器。 这台服务器提供了通过联邦就业局搜索德国职位空缺的工具 机构(联邦劳动局)API。

特点/特性

  • 人工智能友好型界面简洁、语义化的求职参数
  • 官方API集成使用 jobsuche 用于可靠API访问的容器
  • 丰富的过滤功能按地点、职位名称、雇佣类型、合同类型等条件搜索
  • 全面细节获取完整的职位信息,包括职位描述和要求
  • 分页支持高效处理大型结果集
  • 零配置开箱即用,拥有合理的默认设置

安装

来自 npm(推荐)

npm install -g @wunderfrucht/jobsuche-mcp-server

来自源(或“来源”)

git clone https://github.com/wunderfrucht/jobsuche-mcp-server.git
cd jobsuche-mcp-server
cargo build --release

配置

服务器使用环境变量进行配置(所有均为可选):

  • JOBSUCHE_API_URLAPI基础URL(默认:官方联邦劳动局API)
  • JOBSUCHE_API_KEY自定义API密钥(默认:公共API密钥)
  • JOBSUCHE_DEFAULT_PAGE_SIZE每页默认结果数(默认:25)
  • JOBSUCHE_MAX_PAGE_SIZE每页最大结果数(默认:100)

与MCP客户端的使用

Claude Desktop(克劳德桌面版)

添加到您的Claude桌面配置中(~/Library/Application Support/Claude/claude_desktop_config.json (在 macOS 上):

{
  "mcpServers": {
    "jobsuche": {
      "command": "npx",
      "args": ["@wunderfrucht/jobsuche-mcp-server"]
    }
  }
}

或者使用本地二进制文件:

{
  "mcpServers": {
    "jobsuche": {
      "command": "/path/to/jobsuche-mcp-server"
    }
  }
}

Continue.dev(可译为“继续开发平台”或根据具体语境调整,此处直译为“继续.dev”以保留原名风格,但实际应用中可能需根据上下文选择更贴切的译名)

在您的Continue配置中添加:

{
  "mcpServers": {
    "jobsuche": {
      "command": "npx",
      "args": ["@wunderfrucht/jobsuche-mcp-server"]
    }
  }
}

可用工具

1. search_jobs

使用各种筛选条件在德国搜索工作。

注: 对于大多数使用场景,请考虑使用 search_jobs_with_details 或者 batch_search_jobs 相反,因为它们在人工智能工作流程中效率更高。

参数:

  • job_title (可选):职位名称或关键词(例如,“软件工程师”,“数据科学家”)
  • location (可选):地点名称(例如,“柏林”,“慕尼黑”,“德国”)
  • radius_km (可选):以当前位置为圆心,搜索半径(公里)
  • employment_type (可选):就业类型筛选器

- 选项: "fulltime""parttime""mini_job""home_office""shift"

  • contract_type (可选):合同类型筛选器

- 选项: "permanent""temporary"

  • published_since_days (可选):自发布以来的天数(0-100,默认值:30)
  • page_size (可选):每页结果数量(1-100)
  • page (可选):用于分页的页码(从1开始)
  • employer (可选):要搜索的雇主名称(例如,“BARMER”,“Siemens”)
  • branch (可选):要搜索的行业/分支(例如,“IT”,“医疗保健”)

示例:

{
  "job_title": "Software Engineer",
  "location": "Berlin",
  "employment_type": ["fulltime"]
}
{
  "location": "München",
  "published_since_days": 7,
  "radius_km": 50
}
{
  "job_title": "Data Scientist",
  "location": "Deutschland",
  "employment_type": ["fulltime", "parttime"],
  "page_size": 50
}
{
  "employer": "BARMER",
  "location": "Wuppertal",
  "employment_type": ["parttime"]
}

2. get_job_details

获取特定职位发布的详细信息。

参数:

  • reference_number (必填):搜索结果中的职位参考编号

示例:

{
  "reference_number": "10001-1234567890-S"
}

3. search_jobs_with_details ⭐ 推荐

搜索工作,并在一次操作中自动获取最热门结果的完整详情。

为什么要使用这个? 联合 search_jobs + 多个 get_job_details 整合为一个高效运营体系。

参数:

  • 所有参数来自 search_jobs (职位名称、地点、雇佣类型等)
  • max_details (可选):要获取详细信息的工作数量(默认:3,最大:10)
  • fields (可选):字段过滤(请参阅“字段过滤”部分)

⚠️ 速率限制: 在详细信息获取之间自动加入100毫秒延迟,以尊重API速率限制。

示例:

{
  "employer": "BARMER",
  "location": "Wuppertal",
  "employment_type": ["parttime"],
  "max_details": 3
}
{
  "job_title": "Sekretärin",
  "location": "Wuppertal",
  "radius_km": 25,
  "employment_type": ["parttime"],
  "max_details": 3,
  "fields": {
    "include_fields": ["title", "employer", "salary", "description", "location"]
  }
}

回复内容包括:

  • 总搜索结果数量
  • 前N名职位的完整详情(职位名称、描述、薪资、要求等)
  • 性能指标(搜索时长毫秒,详情加载时长毫秒)

______________________________________________________________________

4. batch_search_jobs ⭐⭐ 动力工具

一次性执行多个不同的职位搜索——非常适合系统性比较。

为什么要使用这个? 同时比较不同的雇主、工作类型或地点,而不是多次分别搜索。

参数:

  • searches搜索配置数组(最多5个),每个配置包含:

- name此搜索的标识符 - 所有标准搜索参数(职位名称、地点、雇主等)

  • max_details_per_search (可选):每次搜索要获取的详细信息数量(默认:2,最大:5)
  • fields (可选):对所有结果应用字段过滤

⚠️ 流量限制: 包含自动延迟(搜索之间200毫秒,详细信息之间100毫秒),以尊重API速率限制。保守的默认设置可防止API过载。

示例 - 比较雇主:

{
  "searches": [
    {
      "name": "BARMER Jobs",
      "employer": "BARMER",
      "location": "Wuppertal",
      "employment_type": ["parttime"]
    },
    {
      "name": "Siemens Jobs",
      "employer": "Siemens",
      "location": "Wuppertal",
      "employment_type": ["parttime"]
    }
  ],
  "max_details_per_search": 3
}

示例 - 比较作业类型:

{
  "searches": [
    {
      "name": "Sekretariat",
      "job_title": "Sekretärin",
      "location": "Wuppertal"
    },
    {
      "name": "Sport/Schwimmen",
      "job_title": "Schwimm",
      "location": "Wuppertal"
    },
    {
      "name": "Pädagogik",
      "job_title": "Pädagog",
      "location": "Wuppertal"
    },
    {
      "name": "Verwaltung",
      "job_title": "Verwaltung",
      "branch": "Bildung",
      "location": "Wuppertal"
    }
  ],
  "max_details_per_search": 2,
  "fields": {
    "include_fields": ["title", "employer", "salary", "description"]
  }
}

响应内容包括:

  • 每次搜索的结果(附带名称以作识别)
  • 每次搜索找到的总结果数
  • 每次搜索时显示排名前N个职位的完整详情
  • 错误处理(若某次搜索失败,则继续执行)

______________________________________________________________________

5. get_server_status

获取服务器状态和连接信息。

示例:

{}

响应示例

搜索工作响应

{
  "total_results": 1523,
  "current_page": 1,
  "page_size": 25,
  "jobs_count": 25,
  "jobs": [
    {
      "reference_number": "10001-1234567890-S",
      "title": "Software Engineer (m/w/d)",
      "employer": "Example GmbH",
      "location": "Berlin (10115)",
      "published_date": "2025-10-15",
      "external_url": null
    }
  ],
  "search_duration_ms": 342
}

职位详情回复

{
  "reference_number": "10001-1234567890-S",
  "title": "Software Engineer (m/w/d)",
  "description": "We are looking for an experienced software engineer...",
  "employer": "Example GmbH",
  "location": "Berlin",
  "employment_type": "Vollzeit",
  "contract_type": "unbefristet",
  "start_date": "2025-11-01",
  "application_deadline": null,
  "contact_info": null,
  "external_url": null,
  "employer_profile_url": null,
  "partner_url": "https://example.com/partner",
  "salary": "50.000 - 70.000 EUR",
  "contract_duration": "12 Monate",
  "takeover_opportunity": null,
  "job_type": "arbeitsstelle",
  "open_positions": null,
  "company_size": null,
  "employer_description": null,
  "branch": null,
  "published_date": null,
  "first_published": "2025-10-10",
  "only_for_disabled": false,
  "fulltime": true,
  "entry_period": "ab 2025-11-01",
  "publication_period": "2025-10-01 - 2025-11-30",
  "is_minor_employment": false,
  "is_temp_agency": false,
  "is_private_agency": false,
  "career_changer_suitable": true,
  "cipher_number": null,
  "raw_data": { ... }
}

可用字段:

  • 基本信息:

- reference_number独特的工作参考(或职位参考) - title职位名称 - description完整的工作职责描述 - employer公司名称 - location工作地点

  • 就业详情:

- employment_type就业类型(全职、兼职,根据全职标志推导得出) - fulltime全职就业的布尔指示器(v0.2.0新增) - contract_duration合同期限(如为临时合同) - start_date预期开始日期(根据entry_period格式化得出) - entry_period输入日期范围(v0.2.0 新增功能) - publication_period出版日期范围(v0.2.0 新增)

  • 雇佣类型(v0.2.0 新增):

- is_minor_employment零工/迷你工作(或:小规模就业/临时工作) - is_temp_agency临时就业机构(Zeitarbeit,直译为“时间工作”) - is_private_agency私人就业机构 - career_changer_suitable适合转行者(跨界人士)

  • 补偿:

- salary薪资信息(如可提供)

  • 应用程序信息:

- external_url外部应用URL(可能在搜索结果中提供) - partner_url合作伙伴/联盟网址 - cipher_number匿名发帖的加密编号(v0.2.0 新增功能) - application_deadline申请截止日期(API中不可用) - contact_info联系信息(API中不可用)

  • 附加信息:

- job_type职位类型(工作职位、培训、实习) - first_published首次出版日期 - only_for_disabled仅限重度残疾人使用 - raw_data完整的原始API响应

  • 字段不再可用(API v0.3.0):

- employer_profile_url已从API中移除 - takeover_opportunity已从API中移除 - open_positions已从API中移除 - company_size已从API中移除 - employer_description已从API中移除 - branch已从API中移除 - published_date已从API中移除 - contract_type已从API中移除

*这些字段为了保持向后兼容性仍保留在响应结构中,但将始终返回(或:但会始终存在) null。*

性能与效率

AI的大规模操作

v0.3.0版本中的新批量操作极大地减少了执行常见AI工作流所需的工具调用次数:

场景1:查找并审查前3名的工作

Traditional approach:
- 1x search_jobs
- 3x get_job_details
= 4 tool calls

With search_jobs_with_details:
- 1x search_jobs_with_details (with auto-delays)
= 1 tool call (75% reduction!)

场景2:比较4个不同的工作类别

Traditional approach:
- 4x search_jobs
- 8x get_job_details (2 per search)
= 12 tool calls

With batch_search_jobs:
- 1x batch_search_jobs (with auto-delays)
= 1 tool call (92% reduction!)

速率限制保护:

  • 在详细信息获取之间自动设置100毫秒延迟
  • 搜索之间自动设置200毫秒延迟
  • 保守默认设置(最大详细信息:3,每次搜索的最大详细信息:2)
  • 依赖于jobsuche库内置的指数退避重试逻辑

何时使用何种(方法/工具/资源等)

  • search_jobs当你只需要查看可用的信息(职位名称、雇主、地点)时
  • get_job_details当你有一个特定的工作参考编号时
  • search_jobs_with_details ⭐:当你想要搜索并查看详细信息时(最常见的AI工作流程)
  • batch_search_jobs ⭐⭐:在比较多个类别(雇主、工作类型、地点)时

字段过滤(可选)

通过指定要包含/排除的字段来减小响应大小和减少令牌使用量:

{
  "fields": {
    "include_fields": ["title", "employer", "salary", "description", "location"]
  }
}

或者排除不必要的字段:

{
  "fields": {
    "exclude_fields": ["raw_data", "cipher_number", "is_temp_agency"]
  }
}

注: 现场过滤基础设施已存在,但全面实施将在未来版本中推出。

发展

先决条件

  • Rust 1.75.0 或更高版本
  • Node.js 16+(用于npm分发)

建筑

cargo build

运行测试

cargo test

使用MCP Inspector进行测试

npm install -g @modelcontextprotocol/inspector
npx @modelcontextprotocol/inspector ./target/debug/jobsuche-mcp-server

使用直接JSON-RPC进行测试

# List available tools
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | ./target/debug/jobsuche-mcp-server

# Call search_jobs
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_jobs","arguments":{"location":"Berlin","page_size":5}}}' | ./target/debug/jobsuche-mcp-server

API信息

这个服务器使用了官方的联邦就业局(德国联邦就业机构)Jobsuche API:

  • 基本URL: https://rest.arbeitsagentur.de/jobboerse/jobsuche-service
  • 文档可通过以下方式获取 jobsuche Rust 项目(或库)
  • 速率限制根据API提供商的限制

已知API限制

  • 联系方式API未提供直接的联系方式(电子邮件、电话)或申请截止日期
  • 外部网址可能仅在搜索结果中可见,而非在详细职位信息中
  • 雇主搜索在搜索查询中结合职位名称(没有专门的筛选器)
  • 分支搜索在搜索查询中结合职位名称(无专用筛选器)
  • API v0.3.0 更新“在之前的API版本中,有多个字段已不再可用(请参阅“已不再可用的字段”部分)”
  • 结果按从旧到新的顺序排列(无法自定义排序)
  • 每页最多显示100个结果
  • 如果任务快速过期,任务详情可能会返回404错误

处理缺失数据的权宜之计

  • 对于应用程序URL使用 external_url 从搜索结果中选择字段,或检查 partner_url 在职位详情中
  • 针对特定雇主的搜索使用 employer 与……结合的参数 job_title 在搜索中
  • 对于已移除的字段检查 raw_data 包含完整API响应的字段——部分数据可能仍存在于未记录的字段中

故障排除

服务器无法启动

  • 检查API URL是否可访问
  • 验证环境变量是否设置正确
  • 确保您的设备已连接互联网

未找到结果

  • 尝试使用更宽泛的搜索条件
  • 检查地点名称的拼写
  • 增加 published_since_days 参数
  • 尝试移除雇佣类型筛选条件

连接错误

  • 验证网络连接
  • 检查Bundesagentur für Arbeit(联邦劳动局)的API是否可访问
  • 尝试使用默认API URL,无需自定义配置

做出贡献

  1. 克隆该仓库
  2. 创建一个特性分支
  3. 做出你的更改
  4. 如适用,请添加测试
  5. 提交拉取请求

许可证

MIT 许可证 - 详见 许可证 详情见下文。

致谢

支持

目录标签

目录标签

RustClaude搜索职位搜索本地部署AI集成德国就业市场API集成批量搜索

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@modelcontextprotocol/inspector

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP