模型上下文协议服务器

一个用于学习和交互的个人模型上下文协议服务器,提供简历、个人网站、LinkedIn和GitHub等资源的访问,以及定制化职位搜索功能。

  • by jhgaylor
  • Dart
  • 混合部署
  • 1 星标
  • 更新于
在 GitHub 查看 jhgaylor/me_mcp_server

使用说明

Me MCP服务器

MCP(模型上下文协议)服务器,用于了解您并与您交互。

特性

此MCP服务器提供以下功能:

鼓励

  • 职位搜索 -根据您的个人资料,使用指定的薪资范围、地点和公司类型偏好,生成量身定制的求职说明。

资源

  • 恢复文本 -访问您的完整简历文本(candidate-info://resume)
  • 恢复URL -获取简历PDF的URL(candidate-info://resume-url)
  • LinkedIn个人资料URL -访问您的LinkedIn个人资料(candidate-info://linkedin-url)
  • GitHub配置文件URL -访问您的GitHub个人资料(candidate-info://github-url)
  • 网站地址 -获取您的个人网站URL(candidate-info://website-url)
  • 网站内容 -获取并分析您网站的HTML内容(candidate-info://website-contents)

运行服务器

使用Docker

运行服务器最简单的方法是使用Docker Compose:

docker-compose up -d

这将启动端口3000上的服务器。

运输选项

此MCP服务器支持两种不同的传输机制:

SSE(服务器发送事件)传输

SSE传输允许服务器通过HTTP与支持服务器发送事件的客户端通信。这对于基于web的客户端或任何可以建立HTTP连接的客户端都很有用。

要使用SSE传输运行服务器,请执行以下操作:

dart bin/sse_server.dart

SSE服务器将在配置的主机和端口上启动(默认值:0.0.0.0:3000)。

标准运输

Stdio传输使用标准输入/输出流进行通信。这非常适合与像Claude desktop这样的桌面客户端集成,这些客户端将MCP服务器作为子流程启动。

要使用Stdio传输运行服务器,请执行以下操作:

dart bin/stdio_server.dart

配置Claude桌面

要将MCP服务器与Claude Desktop一起使用,请将以下内容添加到您的Claude配置中:

{
  "mcpServers": {
    "me_mcp": {
      "command": "dart",
      "args": [
        "path/to/bin/stdio_server.dart"
      ]
    }
  }
}

或者,您可以将服务器编译为独立的可执行文件:

dart compile exe bin/stdio_server.dart -o ./mcp_server

然后配置Claude Desktop以使用编译后的版本:

{
  "mcpServers": {
    "me_mcp": {
      "command": "path/to/mcp_server"
    }
  }
}

配置

服务器使用混合配置方法:

  1. 服务器设置 -使用环境变量配置
  2. 个人信息 -使用配置 me.yaml 文件

环境变量

通过环境变量配置服务器相关设置:

变量 描述 默认值
HOST 要绑定到的主机地址 0.0.0.0
端口 监听端口 3000
环境 环境(开发、生产) 开发

YAML配置

通过配置个人信息和求职偏好 me.yaml 文件。

正在初始化配置

要创建默认配置文件,请执行以下操作:

dart bin/me_init.dart [path]

这将生成一个 me.yaml 文件(或指定路径),具有可以编辑的默认值。

配置示例

# Personal information
name: Jake Gaylor
resume_url: https://example.com/resume.pdf
website_url: https://jakegaylor.com
linkedin_url: https://linkedin.com/in/jakegaylor
github_url: https://github.com/jhgaylor

# Optional content (can be loaded from URLs above if not specified)
resume_text: |
  Jake Gaylor
  Software Engineer

  Experience:
  - Example Company (2020-Present)
    Senior Software Engineer
  
  Skills:
  - Dart, JavaScript, TypeScript
  - Cloud Infrastructure

website_text: ""  # Will be fetched from website_url if empty

# Job search preferences
job_search:
  min_salary: 150000
  max_salary: 250000
  location: Remote
  company_type: Startup
  industry: Technology
  description: "Looking for senior engineering roles with focus on cloud infrastructure"

YAML配置选项

章节 选项 描述 默认
- 姓名 您的个人资料/候选人姓名 简·史密斯
- resume_url 简历的url https://example.com/resume.pdf
- linkedin_url linkedin个人资料的url https://linkedin.com/in/example
- github url 指向github配置文件的url https://github.com/example
- website_url 个人网站的url https://example.com
- resume_text 简历的全文内容 一份空简历。
job_search 最低工资 求职最低工资 100000
job_search max_salary 求职最高工资 500000
job_search 地点 首选工作地点 远程
job_search company_type 首选公司类型 初创公司
职位搜索 行业 首选行业 技术
job_search 描述 其他求职详细信息 “”

类型安全配置(适用于开发人员)

YAML配置被解析为强类型Dart对象:

import 'package:me_mcp_server/me_mcp_server.dart';

// Create a configuration programmatically
final config = MeConfig(
  name: 'Jane Smith',
  resumeUrl: 'https://example.com/resume.pdf',
  jobSearch: JobSearchConfig(
    minSalary: 150000,
    maxSalary: 250000,
    location: 'Remote',
  ),
);

// Convert to YAML
final yamlString = configToYaml(config);

本地运行

要在本地运行服务器,请执行以下操作:

  1. 确保您安装了Dart SDK 3.7.2或更高版本
  2. 安装依赖项: dart pub get
  3. 创建一个 me.yaml 根目录中包含您的配置的文件
    dart bin/me_init.dart
    
  4. 根据需要设置任何环境变量
  5. 使用您偏好的传输方式运行服务器:
    • SSE: dart bin/sse_server.dart
    • 标准: dart bin/stdio_server.dart

发展

构建Docker镜像

docker build -t jhgaylor/me-mcp-server:local .

运行Docker镜像

docker run -p 3000:3000 \
  -v $(pwd)/me.yaml:/app/me.yaml \
  -e PORT=3000 \
  -e ENVIRONMENT=production \
  jhgaylor/me-mcp-server:local

Docker配置

使用Docker时,您可以:

  1. 挂载你的me.yaml文件:

    -v $(pwd)/me.yaml:/app/me.yaml
    
  2. 设置环境变量:

    -e HOST=0.0.0.0 -e PORT=3000 -e ENVIRONMENT=production
    
  3. 使用docker-compose.yml:

    services:
      mcp-server:
        volumes:
          - ./me.yaml:/app/me.yaml
        environment:
          - HOST=0.0.0.0
          - PORT=3000
          - ENVIRONMENT=production
    

部署示例

部署到自定义域

您可以将此MCP服务器部署到您自己的域中。以下是在以下位置运行的部署示例 mcp.jakegaylor.com: