LinkedIn MCP服务器
  
一个MCP服务器,让人工智能助手可以完全访问领英——搜索工作、查看个人资料和公司、生成人工智能简历和求职信,以及跟踪应用程序。与 官方MCP Python SDK (FastMCP)。
______________________________________________________________________
它的作用
| 类别 | 功能 |
|---|---|
| 求职 | 使用筛选器(关键字、位置、类型、经验级别、远程、最近时间)搜索,获取工作详细信息,获取推荐 |
| 公司简介 | 获取任何LinkedIn个人资料或公司页面,基于AI的个人资料分析,并提供优化建议 |
| 简历生成 | 从LinkedIn个人资料生成简历,根据特定职位发布定制简历,3个内置模板 |
| 求职信 | AI生成的求职信针对每个职位进行个性化定制,内置2个模板 |
| 应用程序跟踪 | 使用状态工作流在本地跟踪应用程序(感兴趣→ 应用的→ 面试→ 提供/拒绝/撤回) |
| 输出格式 | HTML、Markdown和PDF(通过WeasyPrint) |
______________________________________________________________________
快速开始
1.安装
# Core installation
pip install -e .
# With AI features (resume/cover letter generation, profile analysis)
pip install -e ".[ai]"
# With PDF export
pip install -e ".[pdf]"
# Everything
pip install -e ".[all]"2.配置
cp .env.example .env编辑 .env 使用您的凭据:
LINKEDIN_USERNAME=your_email@example.com
LINKEDIN_PASSWORD=your_password
ANTHROPIC_API_KEY=sk-ant-... # Optional — enables AI features3.跑步
独立:
linkedin-mcp使用克劳德桌面 --添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"linkedin": {
"command": "linkedin-mcp"
}
}
}使用克劳德代码 --添加到 .mcp.json:
{
"linkedin": {
"command": "linkedin-mcp"
}
}______________________________________________________________________
工具参考
作业工具(3)
| 工具 | 参数 | 说明 |
|---|---|---|
search_jobs | keywords, location, job_type, experience_level, remote, date_posted, page, count | 使用丰富的过滤器搜索LinkedIn职位 |
get_job_details | job_id | 获取职位发布的完整描述、技能和元数据 |
get_recommended_jobs | count | 获得个性化的工作推荐 |
轮廓工具(3)
| 工具 | 参数 | 说明 |
|---|---|---|
get_profile | profile_id | 获取LinkedIn个人资料("me" 为了你自己)——经验、教育、技能 |
get_company | company_id | 获取公司信息——描述、规模、总部、专业 |
analyze_profile | profile_id | 基于人工智能的配置文件审查,并提供可操作的优化建议 |
文档生成工具(4)
| 工具 | 参数 | 说明 |
|---|---|---|
generate_resume | profile_id, template, output_format | 从LinkedIn个人资料生成简历 |
tailor_resume | profile_id, job_id, template, output_format | 为特定的职位发布量身定制简历 |
generate_cover_letter | profile_id, job_id, template, output_format | 为工作创建个性化的求职信 |
list_templates | template_type | 列出可用模板(resume, cover_letter,或 all) |
模板: modern · professional · minimal (简历)| professional · concise (附信) 格式: html · md · pdf
应用程序跟踪工具(3)
| 工具 | 参数 | 说明 |
|---|---|---|
track_application | job_id, job_title, company, status, notes, url | 开始跟踪工作申请 |
list_applications | status | 列出所有跟踪的应用程序,可选择按状态筛选 |
update_application_status | job_id, status, notes | 更新应用程序状态 |
状态值: interested · applied · interviewing · offered · rejected · withdrawn
______________________________________________________________________
建筑
src/linkedin_mcp/
├── server.py # FastMCP entry point — 13 tools, 1 resource
├── config.py # Settings from .env (frozen dataclass)
├── exceptions.py # 7-class exception hierarchy
├── models/
│ ├── linkedin.py # Profile, Job, Company models (Pydantic v2)
│ ├── resume.py # Resume & cover letter content models
│ └── tracking.py # Application tracking model
├── services/
│ ├── linkedin_client.py # LinkedIn API wrapper (async via asyncio.to_thread)
│ ├── job_search.py # Job search with TTL caching
│ ├── profile.py # Profile/company access with caching
│ ├── resume_generator.py # AI-enhanced resume generation
│ ├── cover_letter_generator.py
│ ├── application_tracker.py # Local JSON-based application tracking
│ ├── cache.py # Unified JSON file cache with TTL
│ ├── template_manager.py # Jinja2 sandboxed template engine
│ └── format_converter.py # HTML → PDF/Markdown conversion
├── ai/
│ ├── base.py # Abstract AI provider interface
│ └── claude_provider.py # Anthropic Claude implementation
└── templates/
├── resume/ # modern.j2, professional.j2, minimal.j2
└── cover_letter/ # professional.j2, concise.j2关键设计决策
- 官方MCP SDK --用途
FastMCP随着@mcp.tool()装饰器,而不是自定义协议实现 - 异步贯穿始终 -所有同步LinkedIn API调用都包含在
asyncio.to_thread()避免堵塞 - 分层体系结构 --工具→ 服务→ 客户端,在服务层进行缓存
- AI是可选的 -LinkedIn核心功能在没有Anthropic API密钥的情况下工作;人工智能增强简历/求职信生成
- 加强安保 --Jinja2
SandboxedEnvironmentWeasyPrint SSRF保护、路径遍历保护、凭证编辑、输入验证
______________________________________________________________________
配置
所有设置都是从环境变量加载的(.env 支持的文件):
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
LINKEDIN_USERNAME | 是 | -- | 您的LinkedIn电子邮件 |
LINKEDIN_PASSWORD | 是 | -- | 您的LinkedIn密码 |
ANTHROPIC_API_KEY | 否 | -- | 启用AI功能(简历/求职信生成、个人资料分析) |
AI_MODEL | 没有 | claude-sonnet-4-20250514 | 要使用的Claude模型 |
DATA_DIR | 没有 | ~/.linkedin_mcp/data | 缓存、跟踪数据、生成文件的目录 |
CACHE_TTL_HOURS | 没有 | 24 | 缓存LinkedIn API响应的时间 |
LOG_LEVEL | 没有 | INFO | 日志记录级别(调试、信息、警告、错误) |
______________________________________________________________________
发展
# Install with all dependencies
pip install -e ".[all,dev]"
# Run tests (82 tests)
pytest
# Run with coverage
pytest --cov=linkedin_mcp
# Lint
ruff check src/ tests/测试覆盖率
测试涵盖了所有层:配置、模型、服务(缓存、跟踪器、求职、个人资料、简历/求职信生成、LinkedIn客户端格式化程序、格式转换器)、人工智能提供商和MCP工具处理程序。
______________________________________________________________________
使用示例
连接后,询问您的AI助手:
“在美国搜索远程Python开发人员职位”
“显示satyanadella的个人资料”
“根据我的LinkedIn个人资料生成适合工作3847291056的简历”
“使用简明模板为职位3847291056创建求职信”
“跟踪我的谷歌高级工程师职位申请——状态:已申请”
“列出我所有处于面试阶段的申请”
“分析我的LinkedIn个人资料并提出改进建议”
______________________________________________________________________
许可证
麻省理工学院

