Back to MCP directory
publicPublicdnsLocal runtime

profile-researcher

LinkedIn个人资料数据挖掘MCP服务器,提供高级搜索、资料提取、联系人信息丰富和AI分析功能

article

README

🚀 LinkedIn 档案数据挖掘 MCP 服务器

这是一个全面的模型上下文协议(MCP)服务器,用于 LinkedIn 档案数据挖掘、搜索和联系人信息丰富。该服务器将原始数据挖掘工具的所有强大功能集成到一个兼容 MCP 的接口中。

🚀 快速开始

要开始使用此服务器,按照以下步骤操作:

  1. 克隆或导航到服务器目录
    cd smithery-servers/profile-searcher
    
  2. 安装依赖项
    npm install
    
  3. 配置 API 密钥
    # 复制示例配置文件
    cp .env.example .env
    
    # 使用你喜欢的编辑器编辑 .env 文件
    nano .env
    
  4. 启动开发服务器
    npm run dev
    

✨ 主要特性

🔍 高级搜索功能

  • 谷歌搜索集成:使用谷歌自定义搜索 API 发现 LinkedIn 档案。
  • AI 驱动的查询扩展:使用 OpenAI GPT - 4o mini 生成额外的搜索查询。
  • 智能过滤:基于 AI 的相关性过滤,确保高质量的搜索结果。
  • 基于位置的搜索:支持全球位置定位,实现全面覆盖。

📊 档案数据提取

  • 直接 LinkedIn 抓取:直接从 LinkedIn 页面提取档案数据。
  • Nubela Proxycurl 备用方案:当直接抓取失败时,使用 Nubela API。
  • 结构化数据解析:从 LinkedIn 档案中提取 JSON - LD 结构化数据。
  • 全面的档案字段:包括姓名、公司、职位、描述、关注者等。

📞 联系人信息丰富

  • Apollo.io 集成:用电子邮件地址和电话号码丰富档案信息。
  • 公司信息:检索详细的公司描述和联系细节。
  • 专业验证:通过 API 验证确保联系人信息的准确性。

🤖 AI 驱动的功能

  • 档案摘要:使用 AI 生成简洁的专业摘要。
  • 相关性评分:基于 AI 的过滤,匹配搜索意图。
  • 查询优化:智能生成和扩展搜索查询。
  • 多大型语言模型支持:兼容 OpenAI、Gemini、OpenRouter 和 Ollama。

💾 数据管理

  • SQLite 数据库:持久存储所有提取的档案。
  • CSV 导出:便于数据导出,用于分析和 CRM 集成。
  • 重复预防:自动检测和防止重复档案。
  • 数据验证:确保数据质量和完整性。

📦 安装指南

  1. 克隆或导航到服务器目录
    cd smithery-servers/profile-searcher
    
  2. 安装依赖项
    npm install
    
  3. 配置 API 密钥
    # 复制示例配置文件
    cp .env.example .env
    
    # 编辑 .env 文件,填入你的 API 密钥
    nano .env  # 或使用你喜欢的编辑器
    
  4. 启动开发服务器
    npm run dev
    

🔑 API 密钥配置

📋 详细的设置说明请参阅 CONFIGURATION.md

快速设置:

  1. 必需:Apollo.io API 密钥 → 从 apollo.io/settings/integrations 获取。
  2. 必需:OpenAI API 密钥 → 从 platform.openai.com/api-keys 获取。
  3. 可选:Nubela API 密钥 → 从 nubela.co/proxycurl 获取。

环境变量(.env 文件):

APOLLO_API_KEY=your_apollo_api_key_here
OPENAI_API_KEY=sk-your_openai_api_key_here
NUBELA_API_KEY=your_nubela_api_key_here
DEBUG=false

对于 Claude 桌面版(claude_desktop_config.json):

{
  "mcpServers": {
    "profile-searcher": {
      "command": "node",
      "args": ["/path/to/smithery-servers/profile-searcher/dist/index.js"],
      "env": {
        "APOLLO_API_KEY": "your_apollo_api_key_here",
        "OPENAI_API_KEY": "sk-your_openai_api_key_here"
      }
    }
  }
}

💻 使用示例

基础用法

基本档案搜索

// 搜索 AI 播客主持人
const result = await mcpClient.callTool("search_linkedin_profiles", {
  keywords: "AI podcast host",
  num_results: 15
});

全面数据挖掘

// 挖掘区块链开发者的数据
const result = await mcpClient.callTool("mine_linkedin_data", {
  keywords: "blockchain developer",
  num_results: 30,
  export_csv: true,
  csv_filename: "blockchain_talent.csv"
});

联系人信息查找

// 获取特定人员的联系人信息
const result = await mcpClient.callTool("get_contact_info", {
  person_name: "Jane Doe",
  company_name: "AI Innovations Inc"
});

📚 详细文档

可用工具

1. search_linkedin_profiles

根据关键词搜索 LinkedIn 档案。 参数

  • keywords(字符串):搜索关键词(例如:"AI podcast host")
  • num_results(数字):返回的结果数量(默认:20)

示例

{
  "keywords": "AI podcast host",
  "num_results": 10
}

2. extract_profile_data

从 LinkedIn URL 中提取详细的档案数据。 参数

  • urls(数组):LinkedIn 档案 URL 数组
  • include_contact_info(布尔值):是否包含联系人信息(默认:true)

示例

{
  "urls": [
    "https://www.linkedin.com/in/example-profile",
    "https://www.linkedin.com/in/another-profile"
  ],
  "include_contact_info": true
}

3. mine_linkedin_data

全面的数据挖掘:搜索、提取和丰富档案数据。 参数

  • keywords(字符串):搜索关键词
  • num_results(数字):要处理的档案数量(默认:20)
  • export_csv(布尔值):是否导出为 CSV 文件(默认:true)
  • csv_filename(字符串,可选):自定义 CSV 文件名

示例

{
  "keywords": "blockchain developer",
  "num_results": 25,
  "export_csv": true,
  "csv_filename": "blockchain_developers.csv"
}

4. get_contact_info

使用 Apollo API 获取特定人员的联系人信息。 参数

  • person_name(字符串):人员的全名
  • company_name(字符串):人员所在的公司

示例

{
  "person_name": "John Smith",
  "company_name": "Tech Corp"
}

5. export_to_csv

将所有存储的档案数据导出为 CSV 文件。 参数

  • filename(字符串,可选):导出的自定义文件名

示例

{
  "filename": "all_profiles_export.csv"
}

6. get_stored_profiles

检索数据库中存储的所有档案。 参数:无

7. generate_search_queries

使用 AI 生成额外的搜索查询。 参数

  • main_query(字符串):要扩展的主要搜索查询
  • num_queries(数字):额外查询的数量(默认:3)

示例

{
  "main_query": "site:linkedin.com/in AI podcast host",
  "num_queries": 5
}

数据结构

档案数据字段

每个提取的档案包含以下字段:

interface ProfileData {
  author_profile_url: string;           // LinkedIn 档案 URL
  author_name?: string;                 // 全名
  authors_desc?: string;                // 档案标题/描述
  Company?: string;                     // 当前公司
  Job_title?: string;                   // 当前职位
  InteractionStatistic_followers?: string; // 关注者数量
  email?: string;                       // 电子邮件地址(来自 Apollo)
  phone1?: string;                      // 主要电话号码(来自 Apollo)
  phone2?: string;                      // 次要电话号码(来自 Apollo)
  about_company?: string;               // 公司描述(来自 Apollo)
  profile_summary?: string;             // AI 生成的摘要
  post_details?: string;                // 最近的帖子内容
  transcript?: string;                  // 播客/视频转录文本
  post_summary?: string;                // 帖子的 AI 摘要
  transcript_summary?: string;          // 转录文本的 AI 摘要
  author_activity?: string;             // 活动摘要
}

数据库架构

服务器使用 SQLite,包含三个主要表:

  1. author_urls_table:存储完整的档案信息。
  2. validated_profiles:跟踪 AI 验证结果。
  3. search_queries:存储搜索查询和结果。

文件结构

smithery-servers/profile-searcher/
├── src/
│   └── index.ts              # 主服务器实现
├── package.json              # 依赖项和脚本
├── README.md                 # 本说明文档
├── smithery.yaml            # Smithery 配置
├── Database/                # SQLite 数据库文件
│   └── author_profile_.db   # 主数据库
└── Data/                    # CSV 导出文件
    └── *.csv               # 导出的档案数据

🔧 技术细节

速率限制和最佳实践

  1. 遵守速率限制:服务器在请求之间包含内置延迟。
  2. API 密钥管理:确保你的 API 密钥安全,并监控使用情况。
  3. 数据隐私:确保遵守数据保护法规。
  4. 道德使用:负责任地使用该工具,并遵守 LinkedIn 的服务条款。

故障排除

常见问题

  1. 缺少依赖项:运行 npm install 确保所有包都已安装。
  2. API 密钥错误:验证所有必需的 API 密钥是否正确配置。
  3. 数据库权限:确保 Database 目录有写入权限。
  4. 网络问题:检查 API 调用的互联网连接。

调试模式

在配置中启用调试模式以进行详细日志记录:

{
  "debug": true
}

📄 许可证

本项目采用 ISC 许可证,详情请参阅 package.json。

免责声明

此工具仅用于合法的商业和研究目的。用户有责任遵守 LinkedIn 的服务条款、数据保护法规和适用法律。在收集个人数据之前,请始终尊重隐私并获得必要的许可。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client