Skip to main content
Glama
tg-tian
by tg-tian
README.md
一个用于生成中文简历 PDF 并上传返回可访问链接的 MCP 工具与示例脚本。内置中文字体支持,适合中文内容排版。

## 特性
- 以 JSON 输入生成结构化简历 PDF
- 自动居中排版、模块分隔、链接可点击
- 内置中文字体(NotoSerifCJK)与粗体支持
- 可配置模块渲染顺序(教育、经历、项目、技能、荣誉)
- 上传到可访问的 URL(默认示例接口,可自行替换)

## 快速开始

### 环境要求
- Node.js ≥ 18

### 安装依赖
```bash
npm install
```

### 生成示例简历(本地)
```bash
node generate_resume.js
```
- 输出文件:`resume.pdf`
- 示例数据位于代码中,可作为结构参考(`generate_resume.js`)。

## 作为 MCP 工具使用
本项目内置一个 MCP 工具服务,采用 `stdio` 作为传输。你可以将其接入任意支持 MCP 的客户端。

```bash
{
  "mcpServers": {
    "resume": {
      "command": "npx",
      "args": [
        "@tgapk/mcp-resume"
      ]
    }
  }
}
```

### 工具说明
- 工具名:`generate_resume`
- 输入:简历信息的 JSON(见下方示例)
- 输出:上传后的简历访问 URL(字符串)

#### 参数示例
```json
{
  "fullName": "张三",
  "email": "zhangsan@example.com",
  "phone": "+86 138-0000-0000",
  "location": "北京",
  "website": "https://github.com/zhangsan",
  "education": [
    {
      "institution": "清华大学",
      "degree": "计算机科学(学士)",
      "startDate": "2018-09",
      "endDate": "2022-06",
      "summary": "主修算法与前端技术"
    }
  ],
  "experience": [
    {
      "company": "某互联网公司",
      "department": "前端团队",
      "position": "前端开发工程师",
      "startDate": "2022-07",
      "endDate": "至今",
      "highlights": [
        "搭建组件库与主题系统",
        "性能优化,LCP 降低 30%"
      ]
    }
  ],
  "projects": [
    {
      "name": "内容推荐系统",
      "role": "核心开发",
      "url": "https://example.com/project",
      "summary": "基于用户行为的个性化推荐",
      "highlights": ["使用 GraphQL","前后端契约测试"]
    }
  ],
  "skills": ["TypeScript","React","Node.js"],
  "honors": ["前端性能优化奖"],
  "order": ["experience","projects","skills","education","honors"]
}
```

## 自定义与扩展
- 字体:`fonts/` 目录内置中文字体,若缺失将回退到系统字体。
- 模块顺序:通过 `order` 指定模块渲染顺序(未指定的模块会按默认顺序补齐)。
- 链接处理:`website` 字段自动补全协议并在 PDF 中可点击。
- 样式:颜色、行高与间距等在代码中可调整。

## 文件结构
- `mcp.js`:MCP 服务入口与工具注册(`stdio` 传输)
- `generate_resume.js`:PDF 生成逻辑与示例数据调用
- `upload.js`:上传 PDF 并返回可访问 URL
- `fonts/`:中文字体文件(常规与粗体)

## 注意事项
- 上传接口默认指向:`https://xihuanwanyuanshen.icu/resume/upload/`,请根据实际情况替换为你的服务端地址。
- 隐私与合规:上传前请确认简历内容不包含个人敏感信息或严格保密内容。
- 生成的 PDF 默认保存为 `resume.pdf`,可在调用时传入自定义输出路径。

## 许可证
- License:ISC