项目简介

本项目是一个基于 Model Context Protocol (MCP) 构建的服务器,专注于为 LLM 应用提供与 LinkedIn Community Management API 交互的能力。它目前提供了一个工具,允许用户获取已登录 LinkedIn 用户的基本信息,例如姓名、职业头衔和头像。

主要功能点

  • 用户信息查询工具 (user-info): 允许 LLM 客户端调用 'user-info' 工具,获取当前已通过 OAuth 2.0 认证的 LinkedIn 用户的个人信息,包括姓名、职业头衔和头像(Base64 编码的图片数据)。
  • OAuth 2.0 授权: 使用 OAuth 2.0 协议进行用户身份验证和授权,确保安全访问 LinkedIn API。
  • SSE 传输协议: 通过 Server-Sent Events (SSE) 协议与 MCP 客户端进行通信,实现实时的请求和响应交互。
  • 可扩展的工具架构: 基于 MCP 框架设计,易于扩展和添加更多与 LinkedIn API 交互的工具。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/fredericbarthelet/mcp-server-linkedin.git
    cd mcp-server-linkedin
  2. 安装依赖: 确保已安装 pnpm 包管理器 (https://pnpm.io/installation)。然后运行:

    pnpm install
  3. 构建服务器:

    pnpm run build

服务器配置

MCP 客户端需要配置以下信息以连接到此服务器。请将以下 JSON 配置添加到你的 MCP 客户端配置中。

{
  "serverName": "linkedin",  // 自定义服务器名称,用于在客户端中标识
  "command": "pnpm",         // 运行服务器的命令,这里使用 pnpm
  "args": ["start"],        // 传递给命令的参数,pnpm start 启动服务器
  "transport": {
    "type": "sse",          // 使用 SSE 传输协议
    "url": "http://localhost:3001/sse" // SSE 连接的 URL,默认为本地 3001 端口的 /sse 路径
  },
  "capabilities": {
    "tools": [
      "user-info"           // 服务器提供的工具列表,客户端可以按需调用
    ]
  },
  "auth": {
    "type": "oauth",        // 使用 OAuth 授权
    "providerUrl": "http://localhost:3001" // OAuth 提供商的 URL,指向服务器地址
  }
}

重要环境变量配置:

在运行服务器之前,你需要配置以下环境变量:

  • 'LINKEDIN_CLIENT_ID': 你的 LinkedIn 应用程序的客户端 ID。
  • 'LINKEDIN_CLIENT_SECRET': 你的 LinkedIn 应用程序的客户端密钥。
  • 'JWT_SECRET': 用于 JWT 签名的密钥,请设置为一个安全的随机字符串。

你可以在 '.env' 文件中或直接在运行环境中设置这些环境变量。例如,在 '.env' 文件中添加:

LINKEDIN_CLIENT_ID=your_linkedin_client_id
LINKEDIN_CLIENT_SECRET=your_linkedin_client_secret
JWT_SECRET=your_jwt_secret_string

启动服务器:

配置好环境变量后,运行以下命令启动服务器:

pnpm start

服务器默认运行在 'http://localhost:3001'。

基本使用方法

  1. 客户端连接: MCP 客户端根据上述服务器配置连接到 'http://localhost:3001/sse'。
  2. OAuth 授权: 客户端会引导用户进行 OAuth 2.0 授权流程,用户需要登录 LinkedIn 并授权应用程序访问其基本信息。
  3. 调用工具: 授权成功后,客户端可以调用 'user-info' 工具获取当前用户的 LinkedIn 信息。工具返回 JSON 格式的响应,包含用户姓名、头衔和头像(如果可用)。

示例工具调用 (MCP 客户端请求):

{
  "jsonrpc": "2.0",
  "method": "callTool",
  "params": {
    "tool_name": "user-info",
    "arguments": {}
  },
  "id": "1"
}

示例工具响应 (MCP 服务器返回):

{
  "jsonrpc": "2.0",
  "result": {
    "content": [
      {
        "type": "text",
        "text": "Currently logged in user is Frederic Barthelet - Software Engineer"
      },
      {
        "type": "image",
        "mimeType": "image/jpeg",
        "data": "base64_encoded_image_data..."
      }
    ]
  },
  "id": "1"
}

请注意,此服务器仅提供了一个简单的用户信息查询工具,你可以根据 LinkedIn API 的文档和 MCP 协议规范,扩展更多功能和工具。

信息

分类

通信与社交