linkedin-mcp-server-ts
LinkedIn MCP Server (TypeScript / Bun)
Descargo de responsabilidad: Este es un proyecto independiente de código abierto impulsado por la comunidad. No está afiliado, patrocinado, autorizado ni respaldado por LinkedIn Corporation ni Microsoft Corporation. "LinkedIn" es una marca registrada de LinkedIn Corporation y se utiliza únicamente con fines descriptivos.
Un servidor Model Context Protocol (MCP) ultrarrápido y ligero para la automatización y el scraping de LinkedIn, reescrito en TypeScript y con el tiempo de ejecución Bun.
Proporciona a los asistentes de IA (como Claude Desktop, Cursor, OpenCode, VS Code y Windsurf/Antigravity) 19 herramientas MCP de nivel de producción para navegar por perfiles, buscar empleos y empresas, interactuar con mensajes y extraer feeds utilizando tu propia sesión de navegador autenticada.
⚡ ¿Por qué TypeScript + Bun?
linkedin-mcp-server-ts es un puerto nativo TypeScript/Bun de stickerdaniel/linkedin-mcp-server, diseñado para ofrecer la máxima eficiencia y una huella de recursos mínima:
🚀 Inicio instantáneo y sobrecarga casi nula: El JIT nativo de Bun y la ejecución rápida de paquetes eliminan los retrasos de arranque en frío.
🌐 WebView nativo y motor CDP directo: Automatiza Chromium mediante el Protocolo directo de Chrome DevTools (CDP) y
Bun.WebViewsin capas pesadas de demonios de navegador externos.🔄 Paridad total de contratos y esquemas: Reemplazo directo 1:1 de las herramientas, esquemas y formatos de respuesta del servidor MCP de Python.
🔑 Compatibilidad de sesión perfecta: 100% compatible con el almacenamiento de sesión y el formato de cookies estándar de
~/.linkedin-mcp/profile.
Comparación de arquitectura
Característica | Versión de Python ( | Versión TypeScript / Bun ( |
Tiempo de ejecución | Python 3.10+ ( | Bun 1.2+ ( |
Lenguaje | Python ( | TypeScript 6 ( |
Motor de navegador | Fork de Chromium de Patchright |
|
Memoria / Huella | Moderada (~150MB+ en tiempo de ejecución) | Ultraligera (~30-60MB base) |
Transportes |
|
|
Directorio de sesión |
|
|
Validación | Pydantic | Esquemas de Zod |
Número de herramientas | 19 herramientas | 19 herramientas |
Related MCP server: LinkedIn MCP Pro Max
🛠️ Resumen de herramientas MCP (19 herramientas)
Herramienta | Categoría | Descripción | Tipo de acceso |
| Personas | Extrae detalles del perfil con secciones granulares (experiencia, educación, habilidades, proyectos, certificaciones, publicaciones, etc.) | Solo lectura |
| Personas | Extrae el perfil del propio usuario autenticado | Solo lectura |
| Personas | Busca personas por palabras clave, ubicación, grado de conexión ( | Solo lectura |
| Personas | Envía una solicitud de conexión o acepta una invitación con una nota personalizada opcional | Escritura / Acción |
| Personas | Extrae enlaces de perfiles recomendados en la barra lateral ("Personas que quizás conozcas", "Más perfiles") | Solo lectura |
| Empresa | Extrae detalles de la empresa, información «Acerca de», publicaciones, empleos e IDs numéricos de URN de la empresa | Solo lectura |
| Empresa | Recupera publicaciones recientes del feed de la empresa | Solo lectura |
| Empresa | Busca empresas por palabra clave | Solo lectura |
| Empresa | Enumera los empleados de la empresa desde la sección | Solo lectura |
| Empleos | Obtiene los detalles completos y las descripciones de una oferta de empleo específica | Solo lectura |
| Empleos | Busca empleos con filtros: palabras clave, ubicación, fecha de publicación, tipo de empleo, modalidad de trabajo, nivel de experiencia, solicitud fácil | Solo lectura |
| Empleos | Recupera las ofertas de empleo guardadas por el usuario autenticado | Solo lectura |
| Mensajería | Enumera los hilos de conversación recientes de la bandeja de entrada de mensajería | Solo lectura |
| Mensajería | Lee los mensajes de un hilo por nombre de usuario o | Solo lectura |
| Mensajería | Busca hilos de mensajería por palabra clave | Solo lectura |
| Mensajería | Envía un mensaje directo de LinkedIn (requiere | Escritura / Acción |
| Feed | Recupera publicaciones recientes de tu feed de inicio | Solo lectura |
| Feed | Búsqueda global en publicaciones de LinkedIn con filtro de antigüedad ( | Solo lectura |
| Sesión | Finaliza correctamente la sesión del navegador y limpia los recursos en segundo plano | Escritura / Acción |
🚀 Inicio rápido
Requisitos previos
Instala Bun (v1.2 o superior):
# Windows (PowerShell) powershell -c "irm bun.sh/install.ps1 | iex" # macOS / Linux curl -fsSL https://bun.sh/install | bashGoogle Chrome / Chromium: instalado en tu sistema.
Ejecución con un solo comando (bunx)
Puedes ejecutar el servidor directamente sin instalación manual usando bunx:
bunx linkedin-mcp-server-tsClonación local y configuración de desarrollo
# 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💻 Configuración del cliente MCP
1. Claude Desktop
Añade lo siguiente a tu 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"]
}
}
}O cuando se ejecuta desde un clon local:
{
"mcpServers": {
"linkedin": {
"command": "bun",
"args": ["run", "src/index.ts"],
"cwd": "D:/linkedin/linkedin-mcp-server-ts"
}
}
}2. Cursor
Añade lo siguiente a .cursor/mcp.json de tu proyecto o a los ajustes globales de Cursor:
{
"mcpServers": {
"linkedin": {
"command": "bunx",
"args": ["linkedin-mcp-server-ts"]
}
}
}3. OpenCode
Añade lo siguiente a tu opencode.json (o a ~/.config/opencode/opencode.json):
{
"mcp": {
"linkedin": {
"type": "stdio",
"command": "bunx",
"args": ["linkedin-mcp-server-ts"]
}
}
}4. Antigravity / Windsurf / VS Code (Cline / Roo Code)
Añade lo siguiente a mcp_config.json:
{
"mcpServers": {
"linkedin": {
"command": "bunx",
"args": ["linkedin-mcp-server-ts"],
"disabled": false,
"autoApprove": []
}
}
}5. Modo Streamable HTTP
Para exponer el servidor a través de HTTP para agentes remotos o entornos contenedorizados:
bun run src/index.ts --transport streamable-http --host 127.0.0.1 --port 8000URL del endpoint: http://127.0.0.1:8000/mcp
Comprobación de salud: http://127.0.0.1:8000/health
🔐 Autenticación y gestión de sesiones
El servidor utiliza un perfil de navegador persistente almacenado en ~/.linkedin-mcp/profile, de modo que solo necesitas autenticarte una vez.
Opción A: Importación automática desde tu navegador habitual (la más rápida)
Si ya has iniciado sesión en LinkedIn en tu navegador (Chrome, Brave, Edge, Arc, Vivaldi), importa tu sesión al instante:
# 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 edgeOpción B: Inicio de sesión visual interactivo
Abre una ventana interactiva de Chrome para iniciar sesión:
bunx linkedin-mcp-server-ts --login
# Or from local source:
bun run loginSe abrirá una ventana del navegador Chrome con la página de inicio de sesión de LinkedIn.
Completa tu inicio de sesión (incluidos 2FA / CAPTCHA si se solicitan).
El servidor detecta la navegación correcta a tu feed y guarda tu perfil de sesión de forma segura.
Comprobar el estado de la sesión
bunx linkedin-mcp-server-ts --status
# Or from local source:
bun run statusCerrar sesión y borrar la sesión
bunx linkedin-mcp-server-ts --logout
# Or from local source:
bun run logout⚙️ Configuración y variables de entorno
Crea un archivo .env en el directorio raíz (o pasa argumentos de la CLI) para personalizar el comportamiento:
Variable | Indicador CLI | Valor por defecto | Descripción |
|
|
| Ruta al directorio de perfil persistente del navegador |
|
|
| Ejecutar el navegador en modo headless |
|
|
| Protocolo de transporte: |
|
|
| Host de enlace HTTP |
|
|
| Puerto HTTP |
|
|
| Ruta del endpoint HTTP |
|
|
| Tiempo de espera de navegación/interacción DOM (ms) |
|
|
| Tiempo de espera de ejecución de MCP por herramienta (segundos) |
|
|
| Tiempo máximo de espera durante |
|
|
| Tiempo de espera para la autenticación en línea alternativa (segundos) |
|
|
| Importar cookies automáticamente si no existe un perfil |
|
|
| Ruta personalizada al ejecutable de Chrome/Chromium |
|
|
| Anulación opcional del User-Agent del navegador |
|
|
| Dimensiones del viewport del navegador ( |
|
|
| Puerto de depuración remota de Chrome utilizado durante |
|
|
| Nivel de registro ( |
🧪 Desarrollo, Pruebas y Calidad
Ejecutar Pruebas de Contrato y Unitarias
Ejecuta el conjunto completo de pruebas que verifica las 19 herramientas, las validaciones de esquema, los clasificadores de metadatos de enlaces y el manejo de errores:
bun testLinting y Formateo
El estilo del código y el formateo se aplican con Biome:
# Check code for lint issues
bun run lint
# Auto-fix formatting and linting
bun run lint:fix
# Format files
bun run formatArquitectura del Proyecto
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📦 Publicación en NPM
Este proyecto utiliza bunfig.toml para publicar directamente en el registro npm con Bun:
# Verify typecheck & tests pass
bun test
bun run lint
# Publish public package
bun publish🤝 Contribuciones
¡Las contribuciones, los informes de errores y las solicitudes de extracción son bienvenidos!
Haz un fork del repositorio en GitHub:
https://github.com/joaovjo/linkedin-mcp-server-tsCrea una rama de características:
git checkout -b feature/amazing-featureConfirma tus cambios:
git commit -m 'feat: add amazing feature'Asegúrate de que todas las pruebas pasen:
bun test && bun run lintEmpuja a la rama:
git push origin feature/amazing-featureAbre una solicitud de extracción.
📄 Licencia y Créditos
Licencia: Distribuido bajo la Licencia MIT.
Créditos: Agradecimientos especiales a Daniel Sticker y a los contribuidores de
stickerdaniel/linkedin-mcp-serverpor la arquitectura original en Python, la lógica de scraping y la investigación.
This server cannot be deployed
Maintenance
Related MCP Connectors
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
A hosted LinkedIn MCP server for your own account. Paste one address into Claude, ChatGPT, Cursor or n8n to read your inbox, send messages and invitations, and search people. Free to start. Not made by LinkedIn.
LinkedIn outreach MCP server — 19 tools for AI agents to prospect, sequence, and manage contacts.
Hosted LinkedIn MCP server on your own account: 35 tools for search, profiles, inbox, posts, pages.
Related MCP Servers
- AlicenseAqualityDmaintenanceFully featured MCP server that provides automation tools for LinkedIn, supporting browser-based scraping and API-based operations for content management, media uploads, and reactions.63MIT
- AlicenseAqualityDmaintenanceHigh-performance autonomous MCP server that turns LinkedIn into an API for AI workflows, enabling profile management, job search, content posting, and document generation.141MIT
- AlicenseAqualityCmaintenanceSelf-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.581MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for programmable LinkedIn automation via Playwright, offering 20 tools for profile management, messaging, feed interaction, and job searching through real browser automation.17 npmMIT