Skip to main content
Glama
MCP-Layer

linkedin-mcp-server

by MCP-Layer

LinkedIn MCP Server

License: MIT Node.js Version MCP Version Tests

Готовый к продакшену сервер Model Context Protocol (MCP), подключающий AI-агентов (Google Gemini Spark, OpenAI Codex, Claude Desktop, Cursor, Windsurf) к официальному LinkedIn REST API.

Позволяет AI-агентам автономно создавать и публиковать текстовые обновления, делиться ссылками с предпросмотром, загружать изображения, создавать интерактивные опросы, управлять существующими публикациями, а также взаимодействовать с реакциями и комментариями в ветках.

https://github.com/user-attachments/assets/cda965be-d6a2-4a37-8d3c-29a68a9959e1


Возможности

  • Двухрежимный транспорт MCP:

    • Server-Sent Events (SSE) через GET /mcp и POST /messages для клиентов вроде Google Gemini Spark и Claude.

    • Streamable HTTP через POST /mcp для современных сред выполнения командной строки и агентов, таких как OpenAI Codex (rmcp).

  • 12 комплексных инструментов:

    • Создание контента: Текстовые обновления, карточки-превью ссылок на статьи, загрузка бинарных изображений (3-этапный конвейер) и опросы с несколькими вариантами ответов.

    • Управление контентом: Удаление публикаций по URN, получение статистики вовлеченности (лайки, комментарии, репосты) и проверка связей профиля учетной записи.

    • Социальное взаимодействие: Добавление реакций (LIKE, CELEBRATE, LOVE, INSIGHTFUL, FUNNY, EMPATHY), удаление реакций, добавление комментариев, ответы в ветках и удаление комментариев.

  • Надежная валидация: Работает на основе схем Zod для всех входных параметров инструментов.

  • Готовность к корпоративному использованию: Автоматизированный набор модульных и интеграционных тестов со 100% покрытием конечных точек.


Related MCP server: @isteam/linkedin-mcp

Справочник по инструментам

Инструмент

Категория

Описание

Параметры

create_text_post

Контент

Опубликовать стандартную текстовую публикацию в ленте LinkedIn

content (строка, обязательно)

create_link_post

Контент

Опубликовать публикацию с кликабельной карточкой-превью

content (строка), url (строка, URL), title (строка)

create_image_post

Контент

Загрузить изображение по URL, выгрузить его в LinkedIn и опубликовать

content (строка), image_url (строка, URL)

create_poll_post

Контент

Создать опрос с настраиваемой длительностью

question (строка), options (массив строк, 2-4 элемента), duration (ONE_DAY, THREE_DAYS, ONE_WEEK, TWO_WEEKS)

delete_post

Управление

Удалить публикацию, используя её URN

post_urn (строка, например urn:li:ugcPost:...)

get_user_profile

Управление

Получить детали аутентифицированного профиля (имя, ID участника)

Нет

get_post_stats

Управление

Получить метрики вовлеченности (лайки, комментарии, репосты)

post_urn (строка)

react_to_post

Взаимодействие

Добавить реакцию на публикацию

post_urn (строка), reaction_type (LIKE, CELEBRATE, LOVE, INSIGHTFUL, FUNNY, EMPATHY)

remove_reaction

Взаимодействие

Удалить свою реакцию с публикации

post_urn (строка)

comment_on_post

Взаимодействие

Добавить комментарий верхнего уровня к публикации

post_urn (строка), comment_text (строка)

delete_comment

Взаимодействие

Удалить свой комментарий

post_urn (строка), comment_id (строка)

reply_to_comment

Взаимодействие

Опубликовать ответ в ветке к существующему комментарию

post_urn (строка), parent_comment_urn (строка), reply_text (строка)


Настройка и аутентификация

1. Настройка портала разработчиков LinkedIn

  1. Создайте приложение LinkedIn на Портале разработчиков LinkedIn.

  2. На вкладке Продукты запросите доступ к:

    • Share on LinkedIn (предоставляет разрешение w_member_social)

    • Sign In with LinkedIn using OpenID Connect (предоставляет разрешения openid и profile)

  3. На вкладке Auth добавьте URL перенаправления (например, https://httpbin.org/get или ваш домен).

2. Генерация токена доступа пользователя

  1. Сформируйте URL авторизации в вашем браузере:

    https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&scope=openid%20profile%20w_member_social
  2. Авторизуйте приложение и скопируйте параметр запроса code из URL перенаправления.

  3. Обменяйте код на токен доступа на 60 дней:

    curl -X POST https://www.linkedin.com/oauth/v2/accessToken \
      -d "grant_type=authorization_code" \
      -d "code=YOUR_AUTHORIZATION_CODE" \
      -d "client_id=YOUR_CLIENT_ID" \
      -d "client_secret=YOUR_CLIENT_SECRET" \
      -d "redirect_uri=YOUR_REDIRECT_URI"
  4. Получите ваш ID участника:

    curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://api.linkedin.com/v2/userinfo

    Поле sub — это ваш идентификатор участника (например, urn:li:person:<sub_id>).


Конфигурация

Скопируйте пример файла окружения:

cp .env.example .env

Настройте переменные вашего файла .env:

LINKEDIN_ACCESS_TOKEN=your_oauth2_access_token
LINKEDIN_AUTHOR_URN=urn:li:person:your_member_sub_id
PORT=3000

Локальный запуск

# Install dependencies
npm install

# Run unit and integration tests
npm test

# Start the server
npm start

# Start in development mode (with live reload)
npm run dev

Интеграция с клиентами

OpenAI Codex CLI

Добавьте сервер с помощью Codex CLI:

codex mcp add linkedin --url https://your-server-domain.com/mcp

Или добавьте его напрямую в ~/.codex/config.toml:

[mcp_servers.linkedin]
url = "https://your-server-domain.com/mcp"

Claude Desktop

Добавьте в ваш claude_desktop_config.json:

{
  "mcpServers": {
    "linkedin": {
      "command": "node",
      "args": ["/path/to/linkedin-mcp-server/server.js"],
      "env": {
        "LINKEDIN_ACCESS_TOKEN": "your_access_token",
        "LINKEDIN_AUTHOR_URN": "urn:li:person:your_sub_id"
      }
    }
  }
}

Google Gemini Spark

В настройках вашего пользовательского приложения Gemini Spark укажите URL вашей публичной SSE-конечной точки:

https://your-server-domain.com/mcp

Развертывание

Развертывание на Railway

  1. Установите Railway CLI: npm i -g @railway/cli

  2. Привяжите или создайте проект:

    railway init
    railway up
  3. Установите переменные окружения:

    railway variable set LINKEDIN_ACCESS_TOKEN="your_token" LINKEDIN_AUTHOR_URN="urn:li:person:your_sub_id"
  4. Сгенерируйте публичный домен:

    railway domain

Разработка и тестирование

Набор тестов включает 62 автоматизированных модульных и интеграционных теста, охватывающих клиент LinkedIn API, все 12 регистраций инструментов и обработчиков выполнения, а также транспорты SSE и Streamable HTTP.

# Run tests once
npm test

# Run tests in watch mode
npm run test:watch

Лицензия

Этот проект лицензирован в соответствии с лицензией MIT.

Related MCP Connectors

Related MCP Servers