项目简介
本项目是一个基于 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 交互的工具。
安装步骤
-
克隆仓库:
git clone https://github.com/fredericbarthelet/mcp-server-linkedin.git cd mcp-server-linkedin -
安装依赖: 确保已安装 pnpm 包管理器 (https://pnpm.io/installation)。然后运行:
pnpm install -
构建服务器:
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'。
基本使用方法
- 客户端连接: MCP 客户端根据上述服务器配置连接到 'http://localhost:3001/sse'。
- OAuth 授权: 客户端会引导用户进行 OAuth 2.0 授权流程,用户需要登录 LinkedIn 并授权应用程序访问其基本信息。
- 调用工具: 授权成功后,客户端可以调用 '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 协议规范,扩展更多功能和工具。
信息
分类
通信与社交