Skip to main content
Glama
joaovjo

linkedin-mcp-server-ts

by joaovjo

LinkedIn MCP Server (TypeScript / Bun)

Отказ от ответственности: Это независимый проект с открытым исходным кодом, поддерживаемый сообществом. Он не связан с LinkedIn Corporation или Microsoft Corporation, не спонсируется, не авторизуется и не одобряется ими. "LinkedIn" является зарегистрированным товарным знаком LinkedIn Corporation и используется исключительно в описательных целях.

Молниеносный и легковесный сервер Model Context Protocol (MCP) для автоматизации и скрейпинга LinkedIn, переписанный на TypeScript и работающий на рантайме Bun.

Он предоставляет AI-ассистентам (таким как Claude Desktop, Cursor, OpenCode, VS Code и Windsurf/Antigravity) 19 готовых к продакшену MCP-инструментов для навигации по профилям, поиска вакансий и компаний, взаимодействия с сообщениями и получения ленты с использованием вашей собственной аутентифицированной сессии браузера.


⚡ Почему TypeScript + Bun?

linkedin-mcp-server-ts — это нативный порт TypeScript/Bun проекта stickerdaniel/linkedin-mcp-server, созданный для максимальной эффективности и минимального потребления ресурсов:

  • 🚀 Мгновенный запуск и почти нулевые накладные расходы: нативные JIT и быстрое выполнение пакетов в Bun устраняют задержки холодного старта.

  • 🌐 Нативный WebView и прямой CDP-движок: автоматизирует Chromium через прямой протокол Chrome DevTools Protocol (CDP) и Bun.WebView без тяжёлых внешних слоёв браузерных демонов.

  • 🔄 100% соответствие контрактов и схем: полная замена Python MCP-сервера 1:1 по инструментам, схемам и форматам возвращаемых данных.

  • 🔑 Бесшовный обмен сессиями: 100% совместим со стандартным хранилищем сессий и форматом cookie ~/.linkedin-mcp/profile.

Сравнение архитектуры

Характеристика

Python-версия (mcp-server-linkedin)

TypeScript / Bun версия (linkedin-mcp-server-ts)

Рантайм

Python 3.10+ (uv / uvx)

Bun 1.2+ (bun / bunx)

Язык

Python (fastmcp)

TypeScript 6 (@modelcontextprotocol/server v2)

Браузерный движок

Форк Chromium Patchright

Нативный Bun.WebView + прямой CDP (Chrome DevTools Protocol)

Память / занимаемое место

Умеренное (~150MB+ рантайм)

Сверхлёгкое (~30-60MB базовый уровень)

Транспорты

stdio, streamable-http

stdio, streamable-http (через нативный Bun.serve)

Каталог сессий

~/.linkedin-mcp/profile

~/.linkedin-mcp/profile (общий и интероперабельный)

Валидация

Pydantic

Схемы Zod

Количество инструментов

19 инструментов

19 инструментов


Related MCP server: LinkedIn MCP Pro Max

🛠️ Обзор MCP-инструментов (19 инструментов)

Инструмент

Категория

Описание

Тип доступа

get_person_profile

Люди

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

Только чтение

get_my_profile

Люди

Извлекает профиль аутентифицированного пользователя

Только чтение

search_people

Люди

Поиск людей по ключевым словам, местоположению, степени связи (F=1-я, S=2-я, O=3-я и выше) и текущей компании

Только чтение

connect_with_person

Люди

Отправить запрос на установление связи или принять приглашение с необязательным персонализированным сообщением

Запись / Действие

get_sidebar_profiles

Люди

Извлекает рекомендуемые ссылки на профили с боковой панели («Вы можете знать этих людей», «Другие профили»)

Только чтение

get_company_profile

Компании

Извлекает информацию о компании, сведения, публикации, вакансии и числовые URN-идентификаторы компании

Только чтение

get_company_posts

Компании

Получает последние публикации компании в ленте

Только чтение

search_companies

Компании

Поиск компаний по ключевому слову

Только чтение

get_company_employees

Компании

Список сотрудников компании из раздела /people/ с дополнительными фильтрами

Только чтение

get_job_details

Вакансии

Получает полные сведения и описание для конкретной вакансии

Только чтение

search_jobs

Вакансии

Поиск вакансий с фильтрами: ключевые слова, местоположение, дата публикации, тип занятости, формат работы, уровень опыта, быстрый отклик

Только чтение

get_saved_jobs

Вакансии

Получает сохранённые вакансии аутентифицированного пользователя

Только чтение

get_inbox

Сообщения

Список последних бесед из входящих сообщений

Только чтение

get_conversation

Сообщения

Читает сообщения в беседе по имени пользователя или thread_id

Только чтение

search_conversations

Сообщения

Поиск бесед по ключевому слову

Только чтение

send_message

Сообщения

Отправляет личное сообщение в LinkedIn (требуется confirm_send: true для безопасного двухэтапного подтверждения)

Запись / Действие

get_feed

Лента

Получает последние публикации вашей домашней ленты

Только чтение

search_posts

Лента

Глобальный поиск по публикациям LinkedIn с фильтром по давности (past-24h, past-week, past-month)

Только чтение

close_session

Сессия

Корректно завершает сессию браузера и очищает фоновые ресурсы

Запись / Действие


🚀 Быстрый старт

Предварительные требования

  1. Установите Bun (версии 1.2 или выше):

    # Windows (PowerShell)
    powershell -c "irm bun.sh/install.ps1 | iex"
    
    # macOS / Linux
    curl -fsSL https://bun.sh/install | bash
  2. Google Chrome / Chromium: установлен в вашей системе.

Запуск одной командой (bunx)

Вы можете запустить сервер напрямую без ручной установки с помощью bunx:

bunx linkedin-mcp-server-ts

Локальное клонирование и настройка разработки

# Clone the repository
git clone https://github.com/joaovjo/linkedin-mcp-server-ts.git
cd linkedin-mcp-server-ts

# Install dependencies
bun install

# Start the server (stdio mode for MCP clients)
bun run start

# Start the HTTP server (for web MCP debugging)
bun run dev

💻 Настройка MCP-клиентов

1. Claude Desktop

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

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "linkedin": {
      "command": "bunx",
      "args": ["linkedin-mcp-server-ts"]
    }
  }
}

Или при запуске из локального клона:

{
  "mcpServers": {
    "linkedin": {
      "command": "bun",
      "args": ["run", "src/index.ts"],
      "cwd": "D:/linkedin/linkedin-mcp-server-ts"
    }
  }
}

2. Cursor

Добавьте в .cursor/mcp.json вашего проекта или в глобальные настройки Cursor:

{
  "mcpServers": {
    "linkedin": {
      "command": "bunx",
      "args": ["linkedin-mcp-server-ts"]
    }
  }
}

3. OpenCode

Добавьте в ваш opencode.json (или ~/.config/opencode/opencode.json):

{
  "mcp": {
    "linkedin": {
      "type": "stdio",
      "command": "bunx",
      "args": ["linkedin-mcp-server-ts"]
    }
  }
}

4. Antigravity / Windsurf / VS Code (Cline / Roo Code)

Добавьте в mcp_config.json:

{
  "mcpServers": {
    "linkedin": {
      "command": "bunx",
      "args": ["linkedin-mcp-server-ts"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

5. Режим Streamable HTTP

Чтобы открыть доступ к серверу по HTTP для удалённых агентов или контейнерных окружений:

bun run src/index.ts --transport streamable-http --host 127.0.0.1 --port 8000

URL эндпоинта: http://127.0.0.1:8000/mcp
Проверка работоспособности: http://127.0.0.1:8000/health


🔐 Аутентификация и управление сессиями

Сервер использует постоянный профиль браузера, хранящийся в ~/.linkedin-mcp/profile, поэтому вам нужно аутентифицироваться только один раз.

Вариант A: автоматический импорт из вашего обычного браузера (самый быстрый)

Если вы уже вошли в LinkedIn в своём браузере (Chrome, Brave, Edge, Arc, Vivaldi), импортируйте сессию мгновенно:

# Auto-detect the most recent browser session
bunx linkedin-mcp-server-ts --import-from-browser

# Or specify a target browser
bunx linkedin-mcp-server-ts --import-from-browser brave
bunx linkedin-mcp-server-ts --import-from-browser chrome
bunx linkedin-mcp-server-ts --import-from-browser edge

Вариант B: интерактивный визуальный вход

Запустите интерактивное окно Chrome для входа:

bunx linkedin-mcp-server-ts --login
# Or from local source:
bun run login
  1. Откроется окно браузера Chrome со страницей входа в LinkedIn.

  2. Завершите вход (включая 2FA / CAPTCHA, если потребуется).

  3. Сервер обнаружит успешный переход к вашей ленте и безопасно сохранит профиль сессии.

Проверка статуса сессии

bunx linkedin-mcp-server-ts --status
# Or from local source:
bun run status

Выход и очистка сессии

bunx linkedin-mcp-server-ts --logout
# Or from local source:
bun run logout

⚙️ Конфигурация и переменные окружения

Создайте файл .env в корневом каталоге (или передайте аргументы командной строки), чтобы настроить поведение:

Переменная

Флаг CLI

По умолчанию

Описание

USER_DATA_DIR

--user-data-dir

~/.linkedin-mcp/profile

Путь к каталогу постоянного профиля браузера

HEADLESS

--headless / --no-headless

true

Запускать браузер в headless-режиме

TRANSPORT

--transport

stdio

Транспортный протокол: stdio или streamable-http

HOST

--host

127.0.0.1

HTTP-хост для привязки

PORT

--port

8000

HTTP-порт

HTTP_PATH

--path

/mcp

Путь конечной точки HTTP

TIMEOUT

--timeout

5000

Тайм-аут навигации/взаимодействия с DOM (мс)

TOOL_TIMEOUT

--tool-timeout

180

Тайм-аут выполнения MCP для каждого инструмента (секунды)

LOGIN_TIMEOUT

--login-timeout

1800

Максимальное время ожидания во время --login (секунды)

LOGIN_INLINE_WAIT

--login-inline-wait

25

Время ожидания для резервной встроенной аутентификации (секунды)

AUTO_IMPORT_FROM_BROWSER

--auto-import / --no-auto-import

true

Автоматически импортировать cookies, если профиль не существует

CHROME_PATH

--chrome-path

"" (auto-detected)

Пользовательский путь к исполняемому файлу Chrome/Chromium

USER_AGENT

--user-agent

""

Необязательное пользовательское переопределение User-Agent браузера

VIEWPORT

--viewport

1280x720

Размеры окна браузера (WIDTHxHEIGHT)

DEBUG_PORT

--debug-port

9222

Порт удалённой отладки Chrome, используемый во время --login

LOG_LEVEL

--log-level

WARNING

Уровень журналирования (DEBUG, INFO, WARNING, ERROR)


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

Запуск контрактных и модульных тестов

Запустите полный набор тестов, проверяющий все 19 инструментов, валидацию схем, классификаторы метаданных ссылок и обработку ошибок:

bun test

Линтинг и форматирование

Стиль кода и форматирование обеспечиваются с помощью Biome:

# Check code for lint issues
bun run lint

# Auto-fix formatting and linting
bun run lint:fix

# Format files
bun run format

Архитектура проекта

linkedin-mcp-server-ts/
├── src/
│   ├── index.ts               # CLI Entrypoint & Transport routing (stdio / HTTP)
│   ├── config.ts              # CLI flags & environment configuration
│   ├── browser/
│   │   ├── auth.ts            # Login, logout, status, and browser cookie importer
│   │   ├── cdp.ts             # Direct Chrome DevTools Protocol helper functions
│   │   ├── chrome-launch.ts   # Process launcher for visual login & remote attach
│   │   ├── manager.ts         # Bun.WebView & CDP lifecycle manager
│   │   └── types.ts           # Browser status types
│   ├── errors/                # Unified error handling & custom error hierarchy
│   ├── mcp/
│   │   └── create-server.ts   # MCP Server registration & tool mounting
│   ├── middleware/            # Concurrency serialization queue
│   ├── scraping/              # DOM extraction, noise removal, link classification & URNs
│   ├── session/               # Cookie storage, profile directories, and persistence
│   ├── tools/                 # 19 MCP tool implementations
│   └── utils/                 # General helpers
├── tests/                     # Bun test suite & contract validations
├── bunfig.toml                # Bun configuration & npm publish registry settings
└── package.json               # Package metadata, dependencies, and scripts

📦 Публикация в NPM

Этот проект использует bunfig.toml для публикации напрямую в npm-реестр с помощью Bun:

# Verify typecheck & tests pass
bun test
bun run lint

# Publish public package
bun publish

🤝 Участие

Приветствуются вклад, сообщения об ошибках и пул-реквесты!

  1. Сделайте форк репозитория на GitHub: https://github.com/joaovjo/linkedin-mcp-server-ts

  2. Создайте ветку для новой функции: git checkout -b feature/amazing-feature

  3. Зафиксируйте свои изменения: git commit -m 'feat: add amazing feature'

  4. Убедитесь, что все тесты проходят: bun test && bun run lint

  5. Отправьте изменения в ветку: git push origin feature/amazing-feature

  6. Откройте Pull Request.


📄 Лицензия и авторство

  • Лицензия: Распространяется под MIT License.

  • Авторство: Особая благодарность Daniel Sticker и авторам stickerdaniel/linkedin-mcp-server за оригинальную архитектуру на Python, логику парсера и исследования.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Fully featured MCP server that provides automation tools for LinkedIn, supporting browser-based scraping and API-based operations for content management, media uploads, and reactions.
    6
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    High-performance autonomous MCP server that turns LinkedIn into an API for AI workflows, enabling profile management, job search, content posting, and document generation.
    14
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Self-hosted, ban-safe MCP server for LinkedIn that provides 22 tools for profiles, search, jobs, posts, connections, and messages. Integrates with any MCP-compatible client like Claude Desktop.
    58
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for programmable LinkedIn automation via Playwright, offering 20 tools for profile management, messaging, feed interaction, and job searching through real browser automation.
    17 npm
    MIT