本项目是一个基于 Model Context Protocol (MCP) 的 Node.js 服务器库,专注于为 LLM 应用提供访问和处理候选人信息的标准化接口。它被设计为一个可嵌入的库,而不是一个独立的应用程序,需要集成到其他 Node.js 应用中运行。
项目简介
该库允许开发者轻松地构建一个 MCP 服务器,该服务器可以托管候选人的各种信息(如简历文本、URL、社交媒体链接等)作为 MCP 资源,并提供与这些信息交互或基于这些信息执行操作的 工具(如发送邮件、生成面试问题)。它遵循 MCP 规范,通过 JSON-RPC 与 MCP 客户端(通常是 LLM 应用)通信。
主要功能点
- 资源托管: 标准化提供候选人的结构化和非结构化数据,例如:
- 简历内容(文本、URL)
- LinkedIn、GitHub、个人网站的 URL
- 个人网站内容(文本)
- 工具注册与执行: 提供可供 LLM 调用的功能,包括:
- 获取特定候选人数据(如简历文本、LinkedIn URL)
- 通过配置的邮件服务发送邮件给候选人
- 基于候选人信息生成面试问题或评估角色契合度(这些工具内部可能使用 Prompt 或外部逻辑)
- Prompt 模板定义: 定义了多种 Prompt 模板,帮助 LLM 更好地理解和利用候选人信息,例如:
- 获取候选人背景信息
- 评估技术熟练度
- 生成电话面试问题
- 总结职业亮点
- 评估职位匹配度
安装步骤
要使用此库,首先需要在你的 Node.js 项目中安装它:
npm install @jhgaylor/candidate-mcp-server
服务器配置
MCP 客户端需要知道如何启动并连接到你的 MCP 服务器实例。由于这是一个库,你需要编写一个 Node.js 脚本来创建服务器实例并连接到某个传输层(如 Stdio 或 HTTP)。以下是一个 MCP 客户端可能使用的配置示例(以 JSON 格式展示,实际使用时需要根据客户端的要求填写):
{ "name": "Candidate MCP Server", "command": "node", "args": [ "path/to/your/server-runner.js", "--stdio" ], "transport": "stdio", "initializationOptions": { "protocolVersion": "2024-11-05", "capabilities": { "roots": { "listChanged": true }, "sampling": {} }, "clientInfo": { "name": "YourLLMClient", "version": "1.0.0" } } }
注意:
- 'name': MCP 服务器的名称,可配置。
- 'command': 启动服务器进程的命令,通常是 'node'。
- 'args': 传递给 'command' 的参数数组。'path/to/your/server-runner.js' 应替换为你自己创建的、用于启动并配置此 MCP 服务器库的 JavaScript 文件路径(例如,编译后的 'examples/stdio.js' 的路径,或者你自己的集成脚本路径)。'--stdio' 参数指示服务器使用标准输入输出进行通信。
- 'transport': 指定使用的传输协议,此处为 'stdio'。如果集成到 HTTP 服务器中,传输类型和配置会有所不同。
- 'initializationOptions': 客户端初始化时发送给服务器的参数,包含协议版本、客户端能力等信息。
在你自己的 'server-runner.js' 脚本中,你需要引入 '@jhgaylor/candidate-mcp-server' 库,创建服务器实例,并配置具体的候选人数据和服务器设置(如 Mailgun API 密钥),然后连接到选定的传输层。
基本使用方法
一旦 MCP 服务器实例在你自己的应用中启动并通过 Stdio 或 HTTP 与 MCP 客户端建立了连接,LLM 客户端就可以发送标准的 JSON-RPC 请求来与服务器交互:
- 获取服务器能力: 发送 'initialize' 请求来了解服务器支持的资源、工具和 Prompt。
- 列出资源: 发送 'resources/list' 请求获取所有可用资源的 URI 和信息。
- 读取资源: 发送 'resources/read' 请求(带资源 URI 参数)获取特定候选人信息(如简历文本)。
- 列出工具: 发送 'tools/list' 请求获取所有可用工具的名称、描述和参数 schema。
- 调用工具: 发送 'tools/call' 请求(带工具名称和参数)执行特定操作(如 'get_github_url' 获取 GitHub URL,或 'contact_candidate' 发送邮件)。
- 使用 Prompt 模板: 发送 'prompts/render' 请求(带 Prompt 名称和参数)获取用于 LLM 交互的 Prompt 文本。
LLM 客户端解析服务器返回的 JSON-RPC 响应来获取数据或了解工具调用的结果。
信息
分类
AI与计算