简历管理服务器

一个基于PostgreSQL的简历管理服务器,提供版本控制、验证和安全功能。

  • by bhishman-desai
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 bhishman-desai/resume-mcp

使用说明

恢复MCP服务器

在PostgreSQL中托管简历数据的模型上下文协议(MCP)服务器。此服务器提供了使用版本控制、验证和安全功能管理简历的工具。

特性

  • 简历管理:在PostgreSQL中存储和管理您的简历
  • 版本控制:每次更新时都会自动快照,并具有还原功能
  • 验证:使用Zod模式验证的所有更新
  • 安全功能:自动备份、路径遍历保护和错误处理
  • 固态架构:通过模块化结构实现关注点的清晰分离
  • HTTPS就绪:可通过SSE传输在支持HTTPS的Render上部署

工具

get_resume

返回当前简历JSON。无需身份验证。

update_resume

替换整个简历。需要 { resume, apiKey }.

patch_resume

将部分简历数据与现有简历合并。需要 { partialResume, apiKey }.

list_versions

列出所有快照文件名。无需身份验证。

restore_version

从快照还原简历。需要 { filename, apiKey }.

安装

  1. 克隆存储库:
git clone https://github.com/bhishman-desai/resume-mcp.git
cd resume-mcp
  1. 安装依赖项:
npm install
  1. 设置环境变量:
cp .env.example .env
# Edit .env with your configuration

配置

环境变量

  • DATABASE_URL:PostgreSQL连接字符串(云提供商首选)
  • DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD:单个数据库连接参数
  • DB_SSL:设置为 true 用于SSL连接
  • API_KEY:用于保护更新/恢复操作的API密钥
  • PORT:服务器端口(默认值:3000)
  • HOST:服务器主机(默认值:0.0.0.0)

地方发展

作为MCP服务器运行(stdio模式)

要使用Cursor进行本地开发,请运行:

npm start

服务器将自动检测stdio模式,并通过标准输入/输出进行连接。

作为HTTP服务器运行

要在本地测试HTTP模式:

NODE_ENV=production npm start

服务器将于启动 http://localhost:3000 SSE端点位于 /sse.

渲染部署

1.数据库设置

  1. 在Render上创建PostgreSQL数据库
  2. 从Render仪表板复制内部数据库URL

2.Web服务设置

  1. 在Render上创建新的Web服务
  2. 连接您的GitHub存储库
  3. 配置服务:
    • 生成命令: npm install
    • 启动命令: npm start
    • 环境: Node

3.环境变量

在Render仪表板中添加以下环境变量:

DATABASE_URL=<your_postgres_internal_url>
API_KEY=<your_secure_api_key>
PORT=10000

Render会自动提供HTTPS,因此您的MCP服务器可以通过HTTPS访问。

4.连接到游标

MCP服务器支持两种连接模式:

地方发展(stdio)

对于本地开发,当您运行以下命令时,Cursor会自动通过stdio连接:

npm start

远程部署(SSE)

要在Render上连接到已部署的服务器,请执行以下操作:

  1. 获取渲染服务URL(例如。, https://your-service.onrender.com)
  2. 配置Cursor以连接到远程服务器。确切的配置取决于您的Cursor版本,但通常涉及:
    • 在Cursor的MCP设置中添加服务器URL
    • 服务器在以下位置公开SSE端点 /sse 用于MCP连接

备注:MCP服务器使用SSE传输,允许Cursor连接,而不需要连接本身的API密钥。但是,写操作(update_resume、patch_resume和restore_version)仍然需要API键作为工具调用中的参数。

项目结构

resume-mcp/
├── src/
│   ├── config/          # Configuration management
│   ├── database/         # PostgreSQL connection and operations
│   ├── validation/       # Zod schemas for validation
│   ├── tools/            # MCP tool implementations
│   └── utils/            # Utility functions (security, error handling)
├── app.js                # Main server entry point
├── package.json
└── .env.example

安全功能

验证

  • 所有简历更新都使用Zod模式进行验证
  • PATCH操作验证部分输入和合并结果
  • 无效数据触发自动备份

自动备份

  • 每次更新都会创建一个带时间戳的备份
  • 验证失败时创建的紧急备份
  • 在版本还原之前创建的预还原备份

安全

  • 写操作的API密钥保护
  • 文件名净化以防止路径遍历
  • 所有操作的输入验证

错误处理

  • 通过用户友好的消息进行优雅的错误处理
  • 即使数据格式错误,服务器也会继续运行
  • 自动恢复机制

恢复架构

简历遵循灵活的模式,包括:

  • 个人信息(姓名、电子邮件、电话、位置)
  • 总结
  • 经验(一系列工作经验)
  • 教育(教育条目数组)
  • 技能(字符串数组)
  • 认证(认证对象数组)
  • 项目(项目对象数组)
  • 语言(语言对象数组)

该架构使用 .passthrough() 以允许其他自定义字段。

许可证

麻省理工学院

作者

Bhishman Desai