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 инструментов


🛠️ Обзор 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, логику парсера и исследования.

-
license - not tested
-
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 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.

  • Stealth scraping & search. Bypasses Cloudflare, DataDome & LinkedIn via Cyborg HITL approach.

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/joaovjo/linkedin-mcp-server-ts'

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