Skip to main content
Glama
vahabcore

linkedin-mcp-server

by vahabcore

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.

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.

  • MCP server for LeadDelta — manage LinkedIn connections and CRM data via AI assistants.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vahabcore/linkedin-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server