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 |
🛠️ 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 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