LinkedIn Evidence MCP
LinkedIn Evidence MCP
Ein unabhängiges, von der Community entwickeltes Werkzeug. Nicht verbunden mit, unterstützt von oder gesponsert durch LinkedIn Corporation oder Microsoft. „LinkedIn" ist eine Marke der LinkedIn Corporation, die hier nur zur Beschreibung des Dienstes verwendet wird, mit dem diese Software zusammenarbeitet.
Ein lokaler LinkedIn-Arbeitsbereich mit einer gemeinsamen Engine und zwei synchronisierten Nutzungsmöglichkeiten:
der stdio MCP-Server, der die primäre Workflow-Engine für Nachweise, Profile, Entwürfe, Analysen und Wartung ist;
ein optionales Loopback-Dashboard, das die visuelle Unterstützungs- und manuelle Prüfungsoberfläche über dieselben Tools und Daten bietet.
Die Anwendung führt eine eigene SQLite-Datenbank und einen Artefakt-Speicher auf diesem Computer. Sie enthält kein LLM, keinen gehosteten Dienst, keinen Planer, kein Scraping, keine Browser-Automatisierung, keine Cookie-Wiederverwendung und keine automatisierte Interaktion.
Nichts hier aktualisiert sich zeitgesteuert. LinkedIn-Daten werden nur abgerufen, wenn Sie oder ein Agent ein Tool aufrufen, das dies tut. Das ist eine Produktentscheidung zur Vorhersehbarkeit, keine Einschränkung durch LinkedIn-Bedingungen – siehe Aktuelles LinkedIn-Profil lesen.
Wofür es gedacht ist
Die App wandelt Nachweise, die Sie kontrollieren – Lebensläufe, Dokumente, Repositories, LinkedIn-Exporte und manuell importierte Verläufe – um in:
ein verifiziertes Anspruchsregister;
ein nachweisgestütztes kanonisches Profil;
exakte Profiländerungs-Patches zum manuellen Kopieren/Einfügen;
LinkedIn-Beitragsentwürfe mit deterministischer Validierung;
Content-Säulen, Chancen und einen Planungskalender;
Veröffentlichungsfreigaben und eine append-only Prüfhistorie;
lokale Backups, Exporte und Aufbewahrungskontrollen.
Externe LinkedIn-Funktionen sind optional. Sie bleiben nicht verfügbar, bis die entsprechende Entwickler-App-Anmeldedaten gespeichert, gegen LinkedIn verifiziert und bei Bedarf explizit aktiviert wurden. Der Rest des Produkts funktioniert ohne diese Anmeldedaten.
Related MCP server: linkedin-mcp
Anforderungen
Windows 10 oder neuer, Linux oder macOS. Alle drei werden unterstützt und alle drei führen bei jedem Push die vollständige Testsuite aus.
Node.js 24 oder neuer (die Datenbank verwendet das integrierte
node:sqlite)npm
Der Nachweisimport akzeptiert die absolute Pfadform jeder Plattform: Laufwerksbuchstaben-Pfade unter Windows, /-verwurzelte Pfade unter Linux und macOS. Die Regeln unterscheiden sich tatsächlich – Windows lehnt auch UNC-Pfade, alternative Datenströme und reservierte Gerätenamen ab, während die POSIX-Regeln eingebettete NUL-Bytes und die mehrdeutige //-Wurzel ablehnen – weil die gefährlichen Formen unterschiedlich sind, nicht weil einer Plattform mehr vertraut wird.
Auch der Anmeldedaten-Tresor unterscheidet sich, und die Unterschiede sind es wert, zu kennen, bevor man sich darauf verlässt. Alle drei bieten dieselbe praktische Garantie – ein Datenverzeichnis, das auf einen anderen Computer oder ein anderes Konto kopiert wird, kann nicht geöffnet werden – aber sie sind nicht gleich stark:
Plattform | Wie der Hauptschlüssel versiegelt wird | |
macOS | Ein zufälliger Schlüssel im Login-Keychain, vom Betriebssystem hinter einer Zugriffskontrollliste gehalten | am stärksten |
Windows | DPAPI, an Ihr Windows-Konto gebunden | |
Linux | Abgeleitet aus der Host-Maschinen-ID und Ihrer Benutzer-ID, nie aufgeschrieben | am schwächsten – |
Keiner davon schützt vor Software, die als Sie läuft, was SECURITY.md immer als außerhalb des Geltungsbereichs aufgeführt hat. Die Rangfolge ist nur relevant, wenn ein lokaler Angreifer in Ihrem Bedrohungsmodell ist; wenn ja, bevorzugen Sie macOS oder Windows, oder speichern Sie gar keine LinkedIn-Anmeldedaten – alles andere funktioniert ohne sie.
Der interaktive Einrichtungsassistent ist nur für Windows, weil er PowerShell ist. Unter Linux und macOS konfigurieren Sie Ihren MCP-Client von Hand, was ein JSON-Block ist – siehe MCP-Server-Einrichtung. npm run setup:mcp gibt genau diesen Block mit dem richtigen Datenverzeichnis für Ihre Plattform aus, anstatt zu scheitern.
Die optionale LinkedIn-Lesespur hat eine zweite, separate Einschränkung: LinkedIn stellt Member Data Portability-Tokens nur Mitgliedern aus, die im Europäischen Wirtschaftsraum oder in der Schweiz ansässig sind. Alles, was LinkedIn nicht berührt, funktioniert unabhängig davon.
Schnellstart
Vom Repository-Stammverzeichnis:
npm run setup:mcpUnter Windows führt dies den unten beschriebenen interaktiven Assistenten aus. Unter Linux und macOS gilt der Assistent nicht – er ist PowerShell und schreibt Windows-Client-Pfade – daher gibt npm run setup:mcp stattdessen den einen JSON-Block aus, den Sie Ihrem MCP-Client von Hand hinzufügen, mit dem richtigen Datenverzeichnis für Ihre Plattform, und der Rest dieses Abschnitts (die PowerShell-Befehle) ist nur für Windows. Beispiele pro Client finden Sie in MCP-Server-Einrichtung; die Kurzversion ist MCP ohne Dashboard verwenden unten, die auf jeder Plattform identisch ist.
Zuerst ansehen, was es tun würde (Windows):
powershell -NoProfile -ExecutionPolicy Bypass -File .\setup-mcp.ps1 -All -NonInteractive -DryRunWindows weigert sich, ein unsigniertes .ps1 unter seiner Standard-Ausführungsrichtlinie Restricted auszuführen, daher schlägt ein bloßes .\setup-mcp.ps1 fehl, bevor es etwas tut. -ExecutionPolicy Bypass gilt nur für diesen einen Aufruf und ändert nichts am System – was genau das ist, was npm run setup:mcp tut. Lesen Sie das Skript zuerst, wenn Sie das nicht auf Vertrauen nehmen möchten; -DryRun gibt jede Datei aus, die es berühren würde, ohne eine davon zum Schreiben zu öffnen.
Der Assistent bearbeitet Konfigurationsdateien, die zu anderen Anwendungen gehören, daher ist es wichtig zu wissen, welche, bevor Sie ihn ausführen lassen. Je nach ausgewählten Clients kann er in ~/.codex/config.toml, ~/.claude.json, %APPDATA%\Claude\claude_desktop_config.json, %APPDATA%\Code\User\mcp.json, ~/.copilot/mcp-config.json, ~/.cursor/mcp.json und ~/.gemini/config/mcp_config.json schreiben. Sofern Sie nicht -NoPersistUserEnvironment übergeben, speichert er auch LINKEDIN_MCP_HOME als Umgebungsvariable im Benutzerbereich.
Jede Datei, die er berührt, wird zuerst mit einer Zeitstempel-Kopie gesichert, nur der linkedin-Eintrag wird ersetzt, eine Datei, die kein striktes JSON ist, wird abgelehnt statt neu geschrieben, und ein Fehler stellt das Original wieder her.
Der interaktive Assistent prüft Node.js, installiert bei Bedarf Abhängigkeiten, baut den MCP-Server, fragt, welche KI-Clients konfiguriert werden sollen, und zeigt alle Auswahlen auf ein gemeinsames Datenverzeichnis. Er unterstützt Codex, Claude Code, Claude Desktop, VS Code/Copilot Chat, GitHub Copilot CLI, Cursor und Google Antigravity. Vorhandene JSON-Konfigurationen werden zusammengeführt und gesichert; nur der linkedin-MCP-Eintrag wird ersetzt.
Starten Sie die konfigurierten Clients neu, dann wählen Sie eine oder beide Oberflächen:
# MCP server: normally started automatically by your AI client
npm run mcp:start
# Optional human review dashboard
npm run dashboardmcp:start spricht JSON-RPC über stdin/stdout und scheint daher zu warten, wenn es in einem normalen Terminal ausgeführt wird. Das ist erwartet. Konfigurieren Sie einen MCP-Client, um es stattdessen zu starten; siehe MCP-Server-Einrichtung.
Das Dashboard gibt eine Einmal-URL für http://127.0.0.1:4780 aus. Siehe Dashboard-Nutzung.
Für wiederholbare oder unbeaufsichtigte Einrichtung:
powershell -NoProfile -ExecutionPolicy Bypass -File .\setup-mcp.ps1 -Clients Codex,Cursor,VSCode -NonInteractive
powershell -NoProfile -ExecutionPolicy Bypass -File .\setup-mcp.ps1 -All -NonInteractiveVerwenden Sie -DataHome "C:\absoluter\Pfad", um ein anderes gemeinsames Verzeichnis zu wählen. Der Assistent speichert diesen absoluten Pfad als LINKEDIN_MCP_HOME des aktuellen Benutzers; öffnen Sie ein neues Terminal, bevor Sie das Dashboard starten, damit es einen neu gespeicherten benutzerdefinierten Wert erbt. Übergeben Sie -NoPersistUserEnvironment, wenn Sie nur die ausgewählten Client-Einträge geändert haben möchten. Der Assistent fragt nie nach LinkedIn-Anmeldedaten und schreibt sie nie.
Gemeinsamer Zustand zwischen MCP und Dashboard
Das Dashboard und jeder konfigurierte MCP-Prozess öffnen dasselbe lokale Anwendungsverzeichnis. Sie können im Dashboard arbeiten, es schließen, über einen KI-Agenten fortfahren und später zurückkehren, ohne etwas manuell zu importieren oder abzugleichen.
Alle Pfade unten liegen unter dem Datenverzeichnis (siehe Datenstandort).
Gemeinsamer Zustand | Wo es lebt |
Nachweise, Ansprüche, Profilzustand, Entscheidungen, Entwürfe, Revisionen, Freigaben, Veröffentlichungshistorie, Prüfereignisse, Einstellungen und Fortschritt |
|
Importierte Arbeitskopien und generierte Artefakte |
|
Verschlüsselte LinkedIn-Anmeldedaten | Chiffretext in SQLite plus der versiegelte Hauptschlüssel in |
Backups |
|
Der SQLite-WAL-Modus und begrenzte Schreibwiederholungen ermöglichen es dem Dashboard und MCP-Clients, gleichzeitig zu laufen. Das Dashboard aktualisiert den aktuellen Bildschirm, wenn es den Fokus zurückerhält, und regelmäßig, während es sichtbar ist, sodass Änderungen auf Agentenseite erscheinen, ohne es neu zu starten.
Dies ist lokale Synchronisierung auf einem Benutzerkonto, keine Cloud- oder Multi-Maschinen-Synchronisierung. Geheimnisse bleiben für beide Prozesse nutzbar, werden aber nie in KI-Client-Konfigurationen kopiert, an ein Modell zurückgegeben, exportiert, protokolliert oder in Backups aufgenommen.
MCP ohne Dashboard verwenden
Das Dashboard und der MCP-Server sind separate Prozesse. Sie müssen das Dashboard nicht starten, bevor Sie Codex, Claude, Copilot, Cursor, Antigravity, VS Code oder einen anderen stdio-MCP-Host verbinden.
Nach dem Bau konfigurieren Sie den Client, um den kompilierten Einstiegspunkt mit einem absoluten Pfad zu starten (Backslashes unter Windows, / unter Linux und macOS):
node <absolute-path-to-repo>/linkedin-mcp-server/dist/index.jsUm die erste Nachweisquelle von einem menschlich bedienten Terminal hinzuzufügen und zu importieren – der Pfad ist ein Beispiel, verwenden Sie Ihren eigenen absoluten Pfad in der Form, die Ihre Plattform akzeptiert:
npm run evidence:add -- "C:\path\to\cv.pdf" document personal_doc "Current CV"
# Linux / macOS: npm run evidence:add -- "/home/you/cv.pdf" document personal_doc "Current CV"Dieser Befehl registriert, aktiviert und importiert die Quelle explizit, ohne das Dashboard zu öffnen. Quellarten sind repo, document, folder, linkedin_export und manual; Vertrauensstufen sind personal_doc, own_repo und local_clone_reference.
Sie können dann den verbundenen Agenten bitten:
Use the LinkedIn MCP capability-status tool, then list my evidence sources and candidate claims.Das MCP treibt den normalen Workflow. Das Dashboard enthält speziell entwickelte Prüfansichten plus System → Alle MCP-Tools, die genau dasselbe validierte Tool-Register offenlegt – es gibt keine Dashboard-exklusive Kopie der Geschäftslogik. Die Geheimniseingabe ist die einzige Operation, die absichtlich über Chat nicht verfügbar ist. Andere folgenreiche Operationen erfordern eine explizite, an die Aktion gebundene Bestätigung:
Aktion | Option ohne Dashboard | |
Evidenz registrieren, aktivieren und importieren | MCP ( | |
Nicht-geheime Einstellungen ändern |
| |
LinkedIn-Zugriffstokens speichern | `npm run control -- lane configure read | write --client-id ` (maskierte Eingabeaufforderung) |
Veröffentlichungsfreigabe erteilen, ablehnen oder überarbeiten | Teilen Sie dem verbundenen Agenten Ihre Entscheidung mit und bestätigen Sie dessen gebundenen Befehl für | |
Echtes Veröffentlichen aktivieren |
| |
Auf dem Konto veröffentlichen |
| |
Nur LinkedIn-Portabilitätsdaten löschen |
| |
Alle lokalen Daten dauerhaft löschen | Bestätigtes |
Führen Sie npm run control ohne Argumente aus, um ein interaktives Menü zu erhalten. Die CLI ist auch die dashboard-freie Oberfläche für die Eingabe von Geheimnissen; Zugriffstokens werden maskiert und gelangen nie in MCP-Payloads.
Gemeinsame Feature-Steuerung
Neun Feature-Gruppen werden in der gemeinsamen SQLite-Datenbank gespeichert und sowohl von MCP-Handlern als auch von Dashboard-Routen durchgesetzt: evidence, profile, content, publication_workflow, analytics, linkedin_sync, maintenance, configuration und live_publishing. Die ersten acht sind standardmäßig aktiviert. Nur live_publishing ist standardmäßig deaktiviert.
Listen Sie Beschreibungen und aktuelle Werte mit linkedin_feature_control, System → Features oder:
npm run control -- feature list
npm run control -- feature disable analytics --confirm
npm run control -- feature enable analytics --confirmDie Feature-Richtlinie ist getrennt von der LinkedIn-Anmeldedaten-/API-Bereitschaft. Die Aktivierung von live_publishing erfordert daher weiterhin einen verifizierten Schreibpfad, und jeder echte Beitrag erfordert weiterhin eine erteilte, revisionsgebundene Freigabe sowie den exakten Veröffentlichungsbefehl.
Evidenz-Workflow und Entscheidungen
Der vorgesehene Ablauf ist MCP-first:
Registrieren Sie einen Evidenzpfad mit MCP und bestätigen Sie dann explizit
ENABLE <source_id>über den Agenten, das Dashboard oder die Control-CLI.Lassen Sie den Agenten ihn importieren, die Integrität der gespeicherten Bytes verifizieren, die extrahierten Artefakte prüfen und präzise Behauptungen mit Zitaten vorschlagen.
Überprüfen Sie die exakten Aussagen. Nicht widersprüchliche Behauptungen werden erst nach expliziter menschlicher Bestätigung als verifiziert markiert.
Eskalieren Sie Konflikte, mehrdeutige Formulierungen und Übertreibungen zur menschlichen Überprüfung. Lösen Sie sie über MCP-Konversation oder das Dashboard; beide rufen dieselben Behauptungs- und Konfliktdienste auf.
Behauptungsaussagen sind unveränderliche Historie. „Modify" erstellt korrigierte Formulierungen als neue Behauptung und lehnt dann die alte Behauptung ab oder führt sie zusammen. So bleiben frühere Entscheidungen prüfbar, anstatt Evidenz stillschweigend umzuschreiben.
Datenablage
Der Standard-Speicherort folgt der jeweiligen Konvention der Plattform:
Plattform | Standard-Speicherort |
Windows |
|
macOS |
|
Linux |
|
Setzen Sie LINKEDIN_MCP_HOME auf ein absolutes Verzeichnis, um einen anderen Speicherort oder ein isoliertes Testkorpus zu verwenden; es überschreibt den Standard auf jeder Plattform. Relative Pfade werden abgelehnt, da unterschiedliche Client-Arbeitsverzeichnisse sonst separate Datenbanken erzeugen könnten — und unter Windows wird ein laufwerksrelativer Pfad wie \linkedin-data aus demselben Grund abgelehnt, da er sich auf das jeweilige Laufwerk bezieht, auf dem ein Prozess läuft. Der Setup-Assistent konfiguriert denselben absoluten Wert überall.
Platzieren Sie den aktiven Speicherort nicht in OneDrive, Dropbox, Google Drive, iCloud Drive oder einem anderen Synchronisationsordner. SQLite verwendet eine aktive WAL-Datenbank, die nicht kopiert werden sollte, während sie geöffnet ist. Verwenden Sie stattdessen den integrierten Backup-Befehl.
Repository-Übersicht
Pfad | Verantwortlichkeit |
Primäre Engine: 44 MCP-Tools, 5 Ressourcen, 5 Workflow-Prompts, stdio-Transport | |
Optionale Loopback-Visualisierung, menschliche Überprüfung und exakte MCP-Tool-Konsole | |
| Evidenz, Profil, Entwürfe, Freigaben, Veröffentlichung, Audit, Aufbewahrung |
| SQLite-Treiber, Migrationen, optimistische Nebenläufigkeit, Artefaktspeicherung |
| Pfadsicheres ZIP, CSV, PDF, DOCX, Repository-Scanning und Schwärzung |
| Fail-closed LinkedIn-OIDC-, DMA- und Publishing-Adapter |
| Kanonisches JSON, Bezeichner und Fehlerverträge |
| Menschlich betriebene Onboarding-, Wartungs- und Evaluierungsbefehle |
Sicherheitsmodell
Nur verifizierte Behauptungen können öffentlichen Profiltext oder Entwürfe stützen.
Importierte Inhalte werden immer als nicht vertrauenswürdige Daten behandelt, niemals als Anweisungen.
MCP kann eine Veröffentlichungsanfrage nur erteilen, ablehnen oder überarbeiten, nachdem der Benutzer den exakten Freigabebefehl explizit bestätigt hat; Erteilungen sind an den Revisions-Hash gebunden.
Die Freigabe ist an genau eine Entwurfsrevision gebunden und wird vor der Veröffentlichung verbraucht.
Ein ungewisses Netzergebnis wird zu
ambiguous; es wird nie automatisch erneut versucht.Das Audit-Protokoll ist hash-verkettet; eine unterbrochene Kette blockiert Freigaben und Veröffentlichung.
Importe kopieren Inhalte in den Artefaktspeicher und verändern niemals die Originale.
Geheimnisse sind von MCP-Payloads, Protokollen, Exporten und Backups ausgeschlossen.
Entwicklung und Verifizierung
npm ci
npm run typecheck
npm run build
npm test
npm run inspect:list
npm run test:visualVor dem Test bauen. Die Protokoll-Sauberkeits-Suite steuert den kompilierten stdio-Server, daher benötigt npm test, dass linkedin-mcp-server/dist/index.js existiert. Die Schritte in der obigen Reihenfolge auszuführen genügt; es gibt kein separates Setup.
inspect:list startet den kompilierten stdio-Server über den MCP Inspector und fordert dessen Tool-Katalog an. Visuelle Tests erfordern die Installation des Playwright-Browsers.
Für die optionale Konfiguration der LinkedIn-Entwickler-App siehe docs/linkedin-app-setup.md.
Dokumentation
Dokument | Was es abdeckt |
Zwei Oberflächen, eine Engine; die nicht offensichtlichen Nahtstellen | |
Unterstützte Plattformen, Laufzeit, MCP-Clients und die bekannte Verifizierungslücke | |
Was dies nicht tut und welche Grenzen bewusst gewählt sind | |
Was gespeichert wird, was den Rechner verlässt, wie es gelöscht wird | |
Assets, Vertrauensgrenzen und wo der Schutz endet | |
Versionierung, Upgrade und warum Downgrade nicht unterstützt wird | |
Erstellen der beiden LinkedIn-Entwickler-Apps | |
Dashboard-Designsystem | |
Manuelle Barrierefreiheits- und Viewport-Checkliste | |
Melden einer Schwachstelle; Nicht-Ziele | |
Einen grünen Build erreichen; die nicht verhandelbaren Regeln | |
Wo man fragen kann und was außerhalb des Rahmens liegt |
Lizenz
MIT — siehe LICENSE. Lizenzen von Drittanbieter-Abhängigkeiten sind in THIRD-PARTY-NOTICES.md aufgelistet; Marken- und Zugehörigkeitsformulierungen befinden sich in NOTICE.
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 Servers
- AlicenseNot gradedqualityBmaintenanceLocal-first MCP server for research on AI-assisted browsing of a user-owned professional-network account (e.g., LinkedIn), providing read-focused tools such as profile, company, search, and feed reads.MIT
- AlicenseNot gradedqualityCmaintenanceA personal-use remote MCP server that lets you post to LinkedIn, queue/schedule drafts, and pull your own post analytics from Claude.24MIT
- AlicenseAqualityCmaintenanceA local-first MCP server for auditing, drafting, and planning updates to your personal LinkedIn profile safely, without automation or scraping.10MIT
- AlicenseAqualityBmaintenanceLocal-first MCP server using LinkedIn's official OAuth and REST APIs to connect a member account, read profile, and publish text posts.4177MIT
Related MCP Connectors
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Search, label and export your LinkedIn saved posts, then draft, schedule and publish from them.
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/victoryotzev/linkedin-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server