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

Job Recommendations MCP Server

MCP Server

一个基于Spring Boot的AI简历分析与职位匹配服务,通过LLM提取结构化简历信息并利用JSearch API进行智能职位推荐。

工具数

7

提示词数

0

GitHub Stars

0

资源数

0
JavaClaude搜索Claude DesktopClaudeCline

安装说明

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

作者 / 组织

anupamatrey

提供方

anupamatrey

最后核验

2026/5/17 20:22

快速接入

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

详细介绍

MCP服务器POC-基于人工智能的简历到工作匹配

一个基于Spring Boot的模型上下文协议(MCP)服务器,使用AI嵌入和JSearch API提供智能简历分析和工作匹配功能。

🎯 概述

此MCP服务器使AI助手(如Claude Desktop、Cline)能够:

  • 上传并分析简历 -使用LLM提取结构化信息
  • 店铺简历嵌入 -基于向量的语义搜索存储
  • 将简历与工作匹配 -使用JSearch API(RapidAPI)查找相关职位
  • 排名职位匹配 -基于语义相似度和过滤器对作业进行评分

🏗️ 建筑

┌─────────────────────┐
│  Claude Desktop /   │
│  Cline (MCP Client) │
└──────────┬──────────┘
           │ SSE/STDIO
           ▼
┌─────────────────────┐
│  MCP Server         │
│  (Spring Boot)      │
├─────────────────────┤
│  • ResumeTools      │
│  • MatchingTools    │
│  • CourseService    │
└──────────┬──────────┘
           │
    ┌──────┴──────┐
    ▼             ▼
┌─────────┐  ┌──────────┐
│ Vector  │  │ JSearch  │
│ Store   │  │ API      │
│(In-Mem) │  │(RapidAPI)│
└─────────┘  └──────────┘

📦 组件

MCP工具

  • upload_resume -处理简历文本并生成结构化摘要
  • get_sume_summary -按ID检索存储的简历摘要
  • match_resume_to_jobs -从JSearch API查找匹配作业并对其进行排名
  • 获取全部课程 -列出可用课程的演示工具
  • Getcoursebyid -按标题获取课程的演示工具
  • print_env -打印环境变量的诊断工具
  • llm诊断 -LLM配置和健康检查的诊断工具

服务

  • 简历服务 -简历处理和基于LLM的提取
  • 矢量存储服务 -具有余弦相似度的内存向量存储
  • 嵌入服务 -文本到向量嵌入(存根实现)
  • JSearchService -与用于作业列表的JSearch API集成
  • LlmClient -LLM聊天完成界面

🚀 入门指南

先决条件

  • Java 21+
  • 等级8.14.3+
  • 具有JSearch API访问权限的RapidAPI帐户
  • Claude Desktop或Cline(VS代码扩展)

步骤1:克隆和设置

git clone 
cd job-recommendations-mcp-server

步骤2:配置API密钥

  1. 复制示例环境文件:
copy .env.example .env
  1. 编辑 .env 并添加您的RapidAPI密钥:
JSEARCH_API_KEY=your_actual_rapidapi_key_here
JSEARCH_API_HOST=jsearch.p.rapidapi.com

从以下位置获取API密钥:https://rapidapi.com/letscrape-6bRBa3QguO5/api/jsearch

步骤3:构建项目

# Windows
gradlew.bat clean bootJar

# Unix/Linux/Mac
./gradlew clean bootJar

JAR将在以下位置创建: build/libs/job-recommendations-mcp-server-0.0.1.jar

步骤4:选择运输方式

方案A:STDIO(地方发展)

配置:

  • 注释中的SSE配置 application.properties
  • 未注释: spring.main.web-application-type=none

Claude桌面配置 (claude_desktop_config.json):

{
  "mcpServers": {
    "resume-matcher": {
      "command": "java",
      "args": [
        "-jar",
        "C:\\Workspace\\mcp\\job-recommendations-mcp-server\\build\\libs\\job-recommendations-mcp-server-0.0.1.jar"
      ]
    }
  }
}

选项B:SSE(生产就绪)

配置:

  • 保持当前 application.properties (SSE已启用)
  • 服务器在上运行 http://localhost:8080

运行服务器:

java -jar build/libs/job-recommendations-mcp-server-0.0.1.jar

Claude桌面配置:

{
  "mcpServers": {
    "resume-matcher": {
      "url": "http://localhost:8080/sse"
    }
  }
}

对于Cline(VS代码): 添加到VS代码设置.json:

{
  "cline.mcpServers": {
    "resume-matcher": {
      "url": "http://localhost:8080/sse"
    }
  }
}

步骤5:重新启动MCP客户端

  • 克劳德桌面版:重新启动应用程序
  • 克莱恩:重新加载VS代码窗口

💡 使用示例

示例1:上传简历

在Claude Desktop或Cline中:

Upload my resume:

John Doe
Senior Software Engineer
5 years experience in Java, Spring Boot, AWS
Skills: Microservices, Docker, Kubernetes
Location: San Francisco, CA

答复:

{
  "resumeId": "abc-123-def",
  "name": "John Doe",
  "title": "Senior Software Engineer",
  "years_experience": 5,
  "skills": ["Java", "Spring Boot", "AWS", "Docker", "Kubernetes"],
  "summary_text": "...",
  "status": "processed"
}

示例2:匹配工作

Find jobs matching resume abc-123-def in San Francisco

服务器将:

  1. 从矢量存储中获取简历摘要
  2. 查询JSearch API中的相关作业
  3. 计算作业的嵌入
  4. 按语义相似性对作业进行排名
  5. 返回得分最高的比赛

🔧 配置

应用程序属性

属性描述默认值
spring.ai.mcp.server.transport运输方式(sse/stdio)sse
server.portHTTP服务器端口(SSE模式)8080
jsearch.api.keyRapidAPI JSearch密钥来自 .env
jsearch.api.hostJSearch API主机jsearch.p.rapidapi.com

环境变量

创建 .env file(永远不要提交此内容):

JSEARCH_API_KEY=your_key_here
JSEARCH_API_HOST=jsearch.p.rapidapi.com

🏭 生产部署

部署到AWS

选项1:ECS Fargate

# Build Docker image
docker build -t mcp-server .

# Push to ECR
aws ecr get-login-password | docker login --username AWS --password-stdin 
docker tag mcp-server:latest /mcp-server:latest
docker push /mcp-server:latest

# Deploy to ECS (use Fargate)

选项2:弹性豆茎

# Package JAR
gradlew.bat bootJar

# Deploy via EB CLI
eb init
eb create mcp-server-env
eb deploy

客户端配置(生产):

{
  "mcpServers": {
    "resume-matcher": {
      "url": "https://mcp.yourcompany.com/sse",
      "headers": {
        "Authorization": "Bearer "
      }
    }
  }
}

🧪 测试

使用MCP检查员进行手动测试

# Install MCP Inspector
npm install -g @modelcontextprotocol/inspector

# Test your server
mcp-inspector http://localhost:8080/sse

单元测试

gradlew.bat test

📁 项目结构

job-recommendations-mcp-server/
├── src/main/java/com/anupam/
│   ├── job/recommendations/mcp/server/
│   │   ├── Course.java
│   │   ├── CourseService.java
│   │   └── JobRecommendationsMcpServerApplication.java
│   └── mcp/
│       ├── ai/              # LLM client interfaces
│       │   ├── chat/
│       │   ├── LlmClient.java
│       │   └── OpenAILlmClient.java
│       ├── service/         # Business logic services
│       │   ├── ResumeService.java
│       │   ├── VectorStoreService.java
│       │   ├── EmbeddingService.java
│       │   └── JSearchService.java
│       ├── tools/           # MCP-exposed tools
│       │   ├── ResumeTools.java
│       │   ├── MatchingTools.java
│       │   ├── LlmDiagnostics.java
│       │   ├── EnvPrinter.java
│       │   └── JobDto.java
│       └── util/            # Utilities
│           └── JsonUtils.java
├── src/main/resources/
│   └── application.properties
├── .env                     # API keys (gitignored)
├── .env.example            # Template for .env
├── build.gradle
└── README.md

🔐 安全说明

  • 永不承诺 .env -包含敏感的API密钥
  • 使用环境变量 -对于生产中的所有秘密
  • 添加身份验证 -为生产SSE端点实现API令牌
  • 仅限HTTPS -将TLS用于生产部署

🛠️ 故障排除

问题:“ClassNotFoundException:标准Servlet环境”

解决方案: 确保 spring-boot-starter-web 处于依赖关系中

问题:“JSearch API返回401”

解决方案: 验证您的RapidAPI密钥 .env 文件

问题:“Claude Desktop中的服务器已断开连接”

解决方案:

  • 检查Spring Boot横幅是否已禁用(spring.main.banner-mode=off)
  • 确保没有日志写入stdout(只有JSON-RPC消息)

问题:“找不到.env文件”

解决方案: 创建 .env.env.example 在项目根中

📚 资源

🤝 贡献

  1. 复刻仓库
  2. 创建特征分支(git checkout -b feature/amazing-feature)
  3. 提交更改(git commit -m 'Add amazing feature')
  4. 推送到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📝 许可证

该项目根据MIT许可证获得许可。

👥 作者

  • Anupam-初步工作

🙏 致谢

  • Spring AI团队为MCP服务器提供支持
  • Claude和MCP方案的人体工程学
  • 用于JSearch API访问的RapidAPI

目录标签

目录标签

JavaClaude搜索简历分析本地部署职位匹配AI推荐人才招聘语义搜索

支持客户端

Claude DesktopClaudeCline

接入字段

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

未说明

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

token

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明token部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP