LinkedIn Scraper MCP服务器
一种模型上下文协议(MCP)服务器,通过手动凭证输入提供LinkedIn个人资料抓取功能。此服务器允许您提取全面的个人资料数据,包括经验、教育、技能和联系信息。
特性
- 手动凭证输入:不需要环境变量-在工具调用中直接提供LinkedIn凭据
- 全面的数据提取:删除姓名、标题、位置、关于部分、经验、教育、技能和联系信息
- 多种运输方式:支持HTTP(生产)和STDIO(开发)传输
- 浏览器自动化:使用Selenium WebDriver和Chrome进行可靠的抓取
- 反检测:包括类似人类的延迟和浏览器设置,以避免被检测到
安装
- 安装依赖项:
npm install- 安装Chrome浏览器 (如果尚未安装):
- 服务器使用Chrome WebDriver,将自动管理 - 确保您的系统上安装了Chrome浏览器
- 构建项目:
npm run build用法
HTTP传输(推荐)
使用HTTP传输启动服务器:
npm start
# or
node dist/index.js服务器将于启动 http://localhost:8080 默认情况下。
STDIO交通(发展)
对于STDIO交通的当地发展:
npm run start:stdio
# or
node dist/index.js --stdio命令行选项
- `--port
`:指定HTTP服务器端口(默认值:8080)
--stdio:使用STDIO传输而不是HTTP--help:显示帮助消息
MCP客户端配置
将此添加到MCP客户端配置中:
{
"mcpServers": {
"linkedin-scraper": {
"url": "http://localhost:8080/mcp"
}
}
}可用工具
scrape_linkedin_profile
删除LinkedIn个人资料并返回全面的个人资料数据。
参数:
url(必填):领英个人资料URL(例如,“https://www.linkedin.com/in/username/")email(必填):用于身份验证的LinkedIn帐户电子邮件password(必填):用于身份验证的LinkedIn帐户密码headless(可选):在无头模式下运行浏览器(默认值:false)
示例用法:
{
"tool": "scrape_linkedin_profile",
"arguments": {
"url": "https://www.linkedin.com/in/johndoe/",
"email": "your-email@example.com",
"password": "your-password",
"headless": false
}
}响应格式:
{
"success": true,
"timestamp": "2024-01-01T12:00:00.000Z",
"profile": {
"url": "https://www.linkedin.com/in/johndoe/",
"name": "John Doe",
"headline": "Software Engineer at Tech Company",
"location": "San Francisco, CA",
"about": "Passionate software engineer...",
"experience_count": 3,
"experiences": [...],
"education_count": 2,
"education": [...],
"skills_count": 15,
"skills": [...],
"websites": [...],
"email": "john@example.com"
}
}发展
项目结构
src/
├── index.ts # Main entry point
├── cli.ts # Command-line argument parsing
├── config.ts # Configuration management
├── server.ts # Server instance creation
├── client.ts # LinkedIn scraper client
├── types.ts # TypeScript type definitions
├── tools/
│ ├── index.ts # Tool exports
│ └── linkedin.ts # LinkedIn scraping tool
└── transport/
├── index.ts # Transport exports
├── http.ts # HTTP transport
└── stdio.ts # STDIO transport建筑
npm run build # Build once
npm run watch # Build and watch for changes在发展中奔跑
npm run dev # Build and run HTTP transport
npm run dev:stdio # Build and run STDIO transport安全考虑
- 凭证处理:LinkedIn凭据直接在工具调用中传递,不存储
- 速率限制:刮板包括类似人的延迟,以避免被堵塞
- 浏览器设置:使用逼真的浏览器设置来最小化检测
- 会话管理:每个抓取会话都被隔离并正确清理
故障排除
常见问题
- Chrome驱动程序问题:服务器自动管理Chrome WebDriver,但确保安装了Chrome浏览器
- LinkedIn身份验证:如果身份验证失败:
- 验证您的LinkedIn凭据是否正确 - 检查您的帐户是否启用了双因素身份验证 - 尝试先手动登录以解决任何安全问题
- 报废故障:如果刮擦失败:
- 试着用 headless: false 看看发生了什么 - 检查LinkedIn是否已更新其页面结构 - 确保稳定的互联网连接
- 端口冲突:如果端口8080正在使用中:
node dist/index.js --port 3000环境变量
可选环境变量:
PORT:HTTP服务器端口(默认值:8080)NODE_ENV:将生产模式设置为“生产”
许可证
该项目用于教育和研究目的。请尊重LinkedIn的服务条款并负责任地使用。
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 彻底测试
- 提交拉取请求
免责声明
此工具仅用于教育目的。用户有责任遵守LinkedIn的服务条款和适用法律。作者不对任何滥用此软件的行为负责。
