linkedin-mcp-server-ts
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-версия ( | TypeScript / Bun версия ( |
Рантайм | Python 3.10+ ( | Bun 1.2+ ( |
Язык | Python ( | TypeScript 6 ( |
Браузерный движок | Форк Chromium Patchright | Нативный |
Память / занимаемое место | Умеренное (~150MB+ рантайм) | Сверхлёгкое (~30-60MB базовый уровень) |
Транспорты |
|
|
Каталог сессий |
|
|
Валидация | Pydantic | Схемы Zod |
Количество инструментов | 19 инструментов | 19 инструментов |
🛠️ Обзор MCP-инструментов (19 инструментов)
Инструмент | Категория | Описание | Тип доступа |
| Люди | Извлекает детали профиля с разбивкой по разделам (опыт, образование, навыки, проекты, сертификаты, публикации и т. д.) | Только чтение |
| Люди | Извлекает профиль аутентифицированного пользователя | Только чтение |
| Люди | Поиск людей по ключевым словам, местоположению, степени связи ( | Только чтение |
| Люди | Отправить запрос на установление связи или принять приглашение с необязательным персонализированным сообщением | Запись / Действие |
| Люди | Извлекает рекомендуемые ссылки на профили с боковой панели («Вы можете знать этих людей», «Другие профили») | Только чтение |
| Компании | Извлекает информацию о компании, сведения, публикации, вакансии и числовые URN-идентификаторы компании | Только чтение |
| Компании | Получает последние публикации компании в ленте | Только чтение |
| Компании | Поиск компаний по ключевому слову | Только чтение |
| Компании | Список сотрудников компании из раздела | Только чтение |
| Вакансии | Получает полные сведения и описание для конкретной вакансии | Только чтение |
| Вакансии | Поиск вакансий с фильтрами: ключевые слова, местоположение, дата публикации, тип занятости, формат работы, уровень опыта, быстрый отклик | Только чтение |
| Вакансии | Получает сохранённые вакансии аутентифицированного пользователя | Только чтение |
| Сообщения | Список последних бесед из входящих сообщений | Только чтение |
| Сообщения | Читает сообщения в беседе по имени пользователя или | Только чтение |
| Сообщения | Поиск бесед по ключевому слову | Только чтение |
| Сообщения | Отправляет личное сообщение в LinkedIn (требуется | Запись / Действие |
| Лента | Получает последние публикации вашей домашней ленты | Только чтение |
| Лента | Глобальный поиск по публикациям LinkedIn с фильтром по давности ( | Только чтение |
| Сессия | Корректно завершает сессию браузера и очищает фоновые ресурсы | Запись / Действие |
🚀 Быстрый старт
Предварительные требования
Установите Bun (версии 1.2 или выше):
# Windows (PowerShell) powershell -c "irm bun.sh/install.ps1 | iex" # macOS / Linux curl -fsSL https://bun.sh/install | bashGoogle 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.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:
~/.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 8000URL эндпоинта: 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Откроется окно браузера Chrome со страницей входа в LinkedIn.
Завершите вход (включая 2FA / CAPTCHA, если потребуется).
Сервер обнаружит успешный переход к вашей ленте и безопасно сохранит профиль сессии.
Проверка статуса сессии
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 | По умолчанию | Описание |
|
|
| Путь к каталогу постоянного профиля браузера |
|
|
| Запускать браузер в headless-режиме |
|
|
| Транспортный протокол: |
|
|
| HTTP-хост для привязки |
|
|
| HTTP-порт |
|
|
| Путь конечной точки HTTP |
|
|
| Тайм-аут навигации/взаимодействия с DOM (мс) |
|
|
| Тайм-аут выполнения MCP для каждого инструмента (секунды) |
|
|
| Максимальное время ожидания во время |
|
|
| Время ожидания для резервной встроенной аутентификации (секунды) |
|
|
| Автоматически импортировать cookies, если профиль не существует |
|
|
| Пользовательский путь к исполняемому файлу Chrome/Chromium |
|
|
| Необязательное пользовательское переопределение User-Agent браузера |
|
|
| Размеры окна браузера ( |
|
|
| Порт удалённой отладки Chrome, используемый во время |
|
|
| Уровень журналирования ( |
🧪 Разработка, тестирование и качество
Запуск контрактных и модульных тестов
Запустите полный набор тестов, проверяющий все 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🤝 Участие
Приветствуются вклад, сообщения об ошибках и пул-реквесты!
Сделайте форк репозитория на GitHub:
https://github.com/joaovjo/linkedin-mcp-server-tsСоздайте ветку для новой функции:
git checkout -b feature/amazing-featureЗафиксируйте свои изменения:
git commit -m 'feat: add amazing feature'Убедитесь, что все тесты проходят:
bun test && bun run lintОтправьте изменения в ветку:
git push origin feature/amazing-featureОткройте Pull Request.
📄 Лицензия и авторство
Лицензия: Распространяется под MIT License.
Авторство: Особая благодарность Daniel Sticker и авторам
stickerdaniel/linkedin-mcp-serverза оригинальную архитектуру на Python, логику парсера и исследования.
This server cannot be installed
Maintenance
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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