Universal LinkedIn MCP Server
Servidor MCP Universal LinkedIn para edição de perfil, postagens ricas (mídia, enquetes), threads de mensagens, crescimento de rede e análises com automação de navegador stealth e proteções rigorosas de conta.
Documentação
Universal LinkedIn MCP Server
Um servidor Model Context Protocol (MCP) de nível de produção que conecta seu assistente de IA (Claude, Grok, Cursor, Antigravity) ao LinkedIn com automação de navegador furtiva semelhante à humana, salvaguardas matemáticas de limites de conta e zero restrições de API oficial.
💡 Por que Isso Existe: O Problema e a Solução
❌ O Problema
- O Muro da API Fechada: As APIs oficiais de desenvolvedores do LinkedIn são bloqueadas por programas de parceria empresarial (LinkedIn Marketing Developer Platform / LinkedIn Talent Solutions). Desenvolvedores independentes, freelancers e criadores de agentes de IA não conseguem obter acesso de escrita para publicar posts, enviar convites de conexão ou atualizar perfis programaticamente.
- A Armadilha de Banimento Anti-Bot: Ferramentas de automação padrão (Puppeteer, Selenium, binários Chromium puros) disparam os pontos de verificação de detecção de bot do LinkedIn em minutos. Elas transmitem
navigator.webdriver = true, não possuem gerenciamento persistente de cookies, digitam em velocidades robóticas e falham quando apresentadas a 2FA ou CAPTCHAs, resultando em restrições imediatas de conta. - O Perigo de Segurança e Injeção de Prompt em LLMs: Dar acesso ao navegador a um LLM autônomo é perigoso. Sem salvaguardas rígidas, injeções de prompt podem enganar uma IA para editar contas não intencionais, raspar alvos não autorizados ou enviar spam pela sua rede profissional.
- Fragmentação de IA Desktop vs. Nuvem: Ferramentas de IA desktop (Claude Desktop, Cursor) comunicam-se via
stdiolocal, enquanto IAs de nuvem baseadas na web (como Grok.com) rodam em servidores remotos e não conseguem acessar seu navegador ou sessão local sem tunelamento seguro e suporte a CORS.
✅ A Solução
- Plataforma Completa com 29 Ferramentas Sem Chaves de API: Fornece à sua IA capacidades humanas completas—edição de perfil, posts ricos (com imagens/PDFs), enquetes interativas, histórico de caixa de entrada, gerenciamento de conexões, análises e briefings de inteligência executiva.
- Mecanismo Furtivo Nativo do Google Chrome: Usa a instalação real e nativa do Google Chrome do seu computador em vez de binários Chromium genéricos. Remove marcadores de automação (
navigator.webdriver), introduz variação de atraso de digitação humana e executa movimentos naturais de mouse em curva de Bézier. - Gerenciamento de Sessão Sem Senha e Compatível com 2FA: Nunca solicita ou armazena sua senha do LinkedIn em texto puro. Você faz login interativamente uma vez pelo seu navegador real, resolve qualquer desafio de 2FA, e o estado da sessão criptografada é salvo localmente em
~/.linkedin_mcp. A telemetria integrada de keep-alive estende automaticamente a janela de atividade deslizante de 30 dias do LinkedIn. - Limites Matemáticos de Conta: As ferramentas de mutação de perfil (
update_my_headline,update_my_about,add_experience, etc.) não aceitam um parâmetro de perfil alvo. Elas são codificadas para/in/me. É matematicamente impossível para uma IA modificar um perfil externo. - Arquitetura Universal Multi-Transporte: Roda localmente via
stdiousandouvxsem clonagem, ou remotamente viastreamable-http/ssecom suporte completo a CORS e um script de túnel Cloudflare com 1 clique para Grok.com.
📋 Pré-requisitos
Antes de configurar, certifique-se de que seu computador tenha:
- Google Chrome: Instalado e funcionando normalmente.
- Python 3.10 ou superior: python.org/downloads
uv(Executor Rápido de Pacotes Python):- Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" - macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Windows (PowerShell):
⚡ Passo 1: Autenticação Interativa Única
Você só precisa fazer login uma vez. O servidor salva o estado da sua sessão em ~/.linkedin_mcp para que seus assistentes de IA permaneçam autenticados entre reinicializações.
Abra seu terminal e execute:
uvx --from git+https://github.com/ChimbuezeDavid/linkedin-mcp python -c "import asyncio; from linkedin_mcp.tools.auth import linkedin_start_login; asyncio.run(linkedin_start_login())"
O que acontece:
- Uma janela real do Google Chrome será aberta automaticamente.
- Insira suas credenciais do LinkedIn e complete a 2FA / verificação se solicitado.
- Quando seu feed inicial do LinkedIn carregar, a ferramenta verifica automaticamente sua identidade, salva seus cookies criptografados e fecha o navegador.
- Seu terminal exibirá:
Active session verified for <Your Name>.
🔌 Passo 2: Conecte ao Seu Assistente de IA
Escolha sua configuração abaixo com base em se você está usando um Cliente de IA Desktop (Claude, Cursor, Antigravity) ou uma IA Web na Nuvem (Grok.com).
Opção A: Clientes de IA Desktop (Sem Clonagem via uvx)
Você não precisa baixar ou clonar este repositório. Seu cliente de IA o executará diretamente usando uvx.
1. Claude Desktop
Adicione este trecho ao seu 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": "uvx",
"args": [
"--from",
"git+https://github.com/ChimbuezeDavid/linkedin-mcp",
"linkedin-mcp"
]
}
}
}
2. Antigravity
Abra suas configurações MCP do Antigravity (mcp_config.json ou Configurações > MCP):
{
"mcpServers": {
"linkedin": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/ChimbuezeDavid/linkedin-mcp",
"linkedin-mcp"
]
}
}
}
3. Cursor e Windsurf
Adicione ao .cursor/mcp.json ou às configurações globais do Cursor:
{
"mcpServers": {
"linkedin": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/ChimbuezeDavid/linkedin-mcp",
"linkedin-mcp"
]
}
}
}
4. Claude Code CLI
Execute diretamente do seu terminal:
claude mcp add linkedin uvx --from git+https://github.com/ChimbuezeDavid/linkedin-mcp linkedin-mcp
Opção B: IA Baseada na Web na Nuvem (Grok.com)
Assistentes de IA baseados na nuvem (como grok.com/connectors) não conseguem se conectar a localhost. Eles precisam de um túnel público e criptografado com suporte a CORS e HTTP Streamable.
Incluímos um script de inicialização pré-configurado com 1 clique que inicia o servidor MCP em modo HTTP Streamable na porta 8765 e lança um túnel Cloudflare.
Passo 1: Execute o Script do Conector Grok
Clone o repositório e execute o script:
git clone https://github.com/ChimbuezeDavid/linkedin-mcp.git
cd linkedin-mcp
- No Windows (PowerShell):
powershell -ExecutionPolicy Bypass -File .\run_for_grok.ps1 - No macOS / Linux:
# Terminal 1: Launch MCP server in Streamable HTTP mode uv run linkedin-mcp --transport streamable-http --port 8765 # Terminal 2: Expose via Cloudflare Tunnel cloudflared tunnel --url http://127.0.0.1:8765
Passo 2: Configure o Grok.com
- Copie a URL pública do túnel exibida no seu terminal (ex.:
https://example-subdomain.trycloudflare.com). - Vá para grok.com/connectors no seu navegador.
- Clique em Adicionar Servidor MCP Personalizado:
- Nome:
LinkedIn MCP - URL:
https://example-subdomain.trycloudflare.com/mcp(⚠️ Importante: você deve anexar/mcpao final da URL)
- Nome:
- Clique em Salvar e comece a conversar com o Grok!
[!TIP] Por que
/mcpem vez de/sse? Túneis rápidos do Cloudflare não suportam Server-Sent Events (SSE) persistentes devido ao buffer de proxy, mas funcionam perfeitamente com HTTP Streamable (/mcp). O servidor inclui middleware CORS integrado para garantir comunicação perfeita comgrok.com.
Opção C: Configuração de Desenvolvimento Local
Se você quiser contribuir ou modificar o código localmente:
git clone https://github.com/ChimbuezeDavid/linkedin-mcp.git
cd linkedin-mcp
uv sync
Para configurar seu cliente de IA para apontar para seu código local:
{
"mcpServers": {
"linkedin": {
"command": "uv",
"args": [
"--directory",
"<ABSOLUTE_PATH_TO_LINKEDIN_MCP>",
"run",
"linkedin-mcp"
]
}
}
}
🛠️ Ferramentas MCP Disponíveis (29 Ferramentas)
Todas as ferramentas operam estritamente dentro do limite da conta autenticada e aplicam @require_auth.
| Categoria | Nome da Ferramenta | Argumentos Principais | Descrição |
|---|---|---|---|
| Autenticação e Keep-Alive | check_login_status | (nenhum) | Inspeciona a validade da sessão, identidade da conta ativa e idade da janela deslizante. |
start_login | timeout_seconds | Abre uma janela interativa do Chrome para login com 1 clique e 2FA. | |
logout | (nenhum) | Limpa tokens de sessão armazenados, cookies locais e dados de perfil em cache. | |
refresh_session | (nenhum) | Executa um heartbeat silencioso para estender a janela deslizante de sessão de 30 dias. | |
| Auto-Perfil | get_my_profile | (nenhum) | Recupera os detalhes do seu perfil autenticado (nome, título, bio, experiência). |
(Bloqueado para /in/me) | update_my_headline | headline | Atualiza seu título sob seu nome. |
update_my_about | summary | Atualiza seu texto de resumo Sobre / bio. | |
add_education | school, degree, field_of_study, start_year, end_year, ... | Adiciona uma credencial acadêmica ao seu perfil. | |
add_experience | title, company, employment_type, location, description, ... | Adiciona um emprego ou função à sua seção de Experiência. | |
add_skill | skill_name | Adiciona uma habilidade à sua seção de Habilidades (com auto-seleção de sugestões). | |
add_project | title, description, url, start_year, end_year | Adiciona um projeto à sua seção de Projetos. | |
update_job_preferences | job_titles, location_types, locations, employment_types | Configura preferências de carreira "Aberto a oportunidades". | |
update_my_services | services_to_add, services_to_remove, description | Atualiza serviços e ofertas de clientes no seu perfil. | |
| Navegação e Pesquisa | search_people | keywords, location, current_company, limit | Pesquisa profissionais no LinkedIn com selos de grau de conexão (1º/2º/3º). |
view_profile | profile_url | Lê os detalhes públicos/de rede de qualquer membro em modo somente leitura. | |
| Feed, Posts e Enquetes | get_feed | limit | Lê posts recentes do seu feed inicial pessoal. |
create_post | text, media_path (opcional) | Publica um post de autoria da sua conta, opcionalmente anexando imagem/PDF. | |
create_poll | question, options, duration | Publica uma enquete interativa no seu feed (2-4 opções, duração personalizada). | |
comment_on_post | post_url, comment_text | Comenta em um post como seu perfil autenticado. | |
| Análises e Insights | get_post_analytics | limit | Recupera impressões, reações e comentários dos seus posts recentes. |
get_profile_views | (nenhum) | Recupera contagens privadas de visualizações de perfil e dados demográficos dos visitantes. | |
| Mensagens Diretas | list_conversations | limit | Lista threads recentes de mensagens diretas na sua caixa de entrada. |
get_conversation_messages | recipient_name, limit | Lê o histórico completo de mensagens e respostas de uma thread específica. | |
send_message | recipient_profile_url, message_text | Envia uma mensagem direta da sua conta. | |
| Crescimento de Rede | send_connection_request | profile_url, custom_note | Envia um convite de conexão com uma nota personalizada opcional. |
get_pending_invitations | (nenhum) | Lista convites de conexão recebidos pela sua conta. | |
manage_invitation | sender_name, action | Aceita ou ignora um convite de conexão pendente. | |
| Habilidades de Agente | get_network_briefing | limit | Gera um resumo executivo diário: caixa de entrada, convites, análises e tendências do feed. |
analyze_profile_strength | (nenhum) | Audita a completude em 6 seções e fornece uma pontuação acionável e dicas. |
🧪 Testes Automatizados e Verificação
O repositório inclui uma suíte abrangente de testes unitários que verifica restrições de limites, invariantes de segurança, validação de parâmetros e cálculo de saúde da sessão:
uv run python -m unittest discover tests
Saída esperada:
Ran 12 tests in 0.015s
OK
🔒 Invariantes de Segurança e Privacidade
- Exposição Zero de Senha em Texto Puro: O servidor nunca solicita, lê ou armazena sua senha do LinkedIn.
- Somente Armazenamento Local: Todo o estado da sessão, cookies e caches de identidade são salvos estritamente na sua máquina local em
~/.linkedin_mcp. Nenhuma telemetria externa ou servidores em nuvem são usados. - Impossibilidade Matemática de Personificação: As ferramentas de edição de auto-perfil são codificadas para navegar até
/in/me/. Não há parâmetrotarget_profile_url, impedindo LLMs com injeção de prompt de alterar perfis de outros membros.
📄 Licença
Licença MIT. Consulte LICENSE para detalhes. Criado com ❤️ por Chimbueze (David) Okoroji.