一个强大的模型上下文协议服务器,用于与LinkedIn互动,使AI助手能够搜索工作、生成简历和求职信,并管理求职申请。
该项目实现了模型上下文协议(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 # 项目依赖
克隆仓库
git clone https://github.com/yourusername/linkedin-mcp.git
cd linkedin-mcp
创建并激活虚拟环境
# Linux/macOS
python -m venv venv
source venv/bin/activate
# Windows
python -m venv venv
.\venv\Scripts\activate
安装依赖
pip install -r requirements.txt
设置环境变量
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
{
"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文件。