返回市场
领英_mcp

领英_mcp

作者:Rayyan947711 星标更新:2025-06-14

项目介绍

LinkedIn 模型上下文协议(MCP)服务器

License: MIT Python 版本 代码风格: Black

一个强大的模型上下文协议服务器,用于与LinkedIn互动,使AI助手能够搜索工作、生成简历和求职信,并管理求职申请。

功能

  • 认证:安全的OAuth 2.0认证,支持令牌刷新
  • 个人资料管理:访问和更新LinkedIn个人资料信息
  • 职位搜索:高级职位搜索,支持过滤和分页
  • 简历及求职信:生成定制化的简历和求职信
  • 消息:发送消息和连接请求
  • 分析:跟踪求职申请和参与度指标
  • 异步API:使用asyncio构建,实现高性能
  • 模块化设计:清晰、可维护的代码,关注点分离

架构

该项目实现了模型上下文协议(MCP)规范,允许AI助手通过标准化的JSON-RPC风格请求和响应与LinkedIn进行交互。

项目结构

linkedin_mcp/
├── api/
│   ├── clients/         # API客户端实现
│   │   ├── __init__.py   # 客户端工厂函数
│   │   ├── linkedin.py   # LinkedIn API客户端
│   │   └── openai.py     # OpenAI集成
│   │
│   ├── models/          # 数据模型和模式
│   │   ├── __init__.py   # 模型导出
│   │   ├── common.py     # 常用数据模型
│   │   ├── enums.py      # 枚举
│   │   ├── requests.py   # 请求模型
│   │   └── responses.py  # 响应模型
│   │
│   └── services/        # 业务逻辑
│       └── ...
│
├── core/                # 核心应用逻辑
│   ├── __init__.py
│   ├── exceptions.py    # 自定义异常
│   ├── mcp_handler.py   # MCP协议处理器
│   └── protocol.py      # 协议定义
│
├── utils/              # 工具函数
│   ├── __init__.py
│   ├── auth.py          # 认证辅助工具
│   ├── rate_limiter.py  # 速率限制
│   └── retry.py         # 重试机制
│
├── examples/           # 示例脚本
│   └── basic_usage.py   # 基本客户端使用示例
│
├── .env.example       # 环境变量示例文件
├── README.md           # 本文件
└── requirements.txt    # 项目依赖

开始使用

先决条件

安装

  1. 克隆仓库

    git clone https://github.com/yourusername/linkedin-mcp.git
    cd linkedin-mcp
    
  2. 创建并激活虚拟环境

    # Linux/macOS
    python -m venv venv
    source venv/bin/activate
    
    # Windows
    python -m venv venv
    .\venv\Scripts\activate
    
  3. 安装依赖

    pip install -r requirements.txt
    
  4. 设置环境变量

    cp .env.example .env
    

    使用您的LinkedIn API凭证和其他设置编辑.env文件。

配置

在项目根目录中创建一个.env文件,包含以下变量(参见.env.example以获取详细信息):

# LinkedIn API凭证(必需)
LINKEDIN_CLIENT_ID=your_client_id_here
LINKEDIN_CLIENT_SECRET=your_client_secret_here
LINKEDIN_REDIRECT_URI=http://localhost:8080/callback

# 可选:OpenAI API密钥(用于简历/求职信生成)
# OPENAI_API_KEY=your_openai_api_key_here

# 可选:日志级别
LOG_LEVEL=INFO

# API设置
OPENAI_API_KEY=your_openai_api_key
SESSION_DIR=sessions
DATA_DIR=data

使用方法

启动服务器

python server.py

示例MCP请求

认证

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "linkedin.login",
  "params": {
    "username": "user@example.com",
    "password": "password123"
  }
}

搜索职位

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "linkedin.searchJobs",
  1. "params": {
    "filter": {
      "keywords": "软件工程师",
      "location": "纽约州,纽约市",
      "distance": 25
    },
    "page": 1,
    "count": 20
  }
}

生成简历

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "linkedin.generateResume",
  "params": {
    "profileId": "user123",
    "template": "标准",
    "format": "pdf"
  }
}

可用方法

方法描述
linkedin.login使用LinkedIn进行认证
linkedin.logout结束当前会话
linkedin.checkSession检查当前会话是否有效
linkedin.getFeed获取LinkedIn动态帖子
linkedin.getProfile获取LinkedIn个人资料信息
linkedin.getCompany获取公司资料信息
linkedin.searchJobs使用过滤器搜索职位
linkedin.getJobDetails获取职位详细信息
linkedin.getRecommendedJobs获取职位推荐
linkedin.generateResume从LinkedIn个人资料生成简历
linkedin.generateCoverLetter为求职申请生成求职信
linkedin.tailorResume为特定职位定制简历
linkedin.applyToJob应聘职位
linkedin.getApplicationStatus检查申请状态
linkedin.getSavedJobs获取已保存的职位
linkedin.saveJob保存职位以备后用

开发

项目结构

linkedin-mcp/
├── README.md
├── requirements.txt
├── server.py
├── data/
│   ├── applications/
│   ├── companies/
│   ├── cover_letters/
│   ├── jobs/
│   ├── profiles/
│   └── resumes/
├── linkedin_mcp/
│   ├── api/
│   │   ├── auth.py
│   │   ├── cover_letter_generator.py
│   │   ├── job_application.py
│   │   ├── job_search.py
│   │   ├── profile.py
│   │   └── resume_generator.py
│   ├── core/
│   │   ├── mcp_handler.py
│   │   └── protocol.py
│   └── utils/
│       └── config.py
├── sessions/
└── templates/
    ├── cover_letter/
    │   └── standard.html
    └── resume/
        └── standard.html

运行测试

pytest

许可证

本项目采用MIT许可证 - 详情请参阅LICENSE文件。

致谢

  • LinkedIn API文档
  • 模型上下文协议规范