LinkedIn Evidence MCP
LinkedIn Evidence MCP
Независимый инструмент, созданный сообществом. Не аффилирован с LinkedIn Corporation или Microsoft, не одобрен и не спонсируется ими. «LinkedIn» — товарный знак LinkedIn Corporation, используемый здесь только для описания сервиса, с которым взаимодействует это программное обеспечение.
Локальное рабочее пространство LinkedIn с одним общим движком и двумя синхронизированными способами его использования:
stdio MCP-сервер — основной рабочий движок для доказательств, профиля, черновиков, аналитики и обслуживания;
опциональная loopback-панель — визуальная поддержка и поверхность для проверки человеком поверх тех же инструментов и данных.
Приложение хранит собственную базу данных SQLite и хранилище артефактов на этом компьютере. Оно не содержит LLM, размещённого сервиса, планировщика, скрапинга, автоматизации браузера, повторного использования cookie или автоматизированного взаимодействия.
Ничто здесь не обновляется по таймеру. Данные LinkedIn извлекаются только тогда, когда вы или агент вызываете инструмент, который это делает. Это продуктовое решение о предсказуемости, а не ограничение, наложенное условиями LinkedIn — см. чтение последнего профиля LinkedIn.
Для чего это предназначено
Приложение превращает доказательства, которыми вы управляете — резюме, документы, репозитории, экспорт LinkedIn и вручную импортированную историю — в:
проверяемый реестр утверждений;
канонический профиль, подкреплённый доказательствами;
точные патчи изменений профиля для ручного копирования/вставки;
черновики постов LinkedIn с детерминированной валидацией;
контентные столпы, возможности и календарь планирования;
одобрения публикаций и журнал аудита с защитой от перезаписи;
локальные резервные копии, экспорт и контроль хранения.
Внешние функции LinkedIn опциональны. Они остаются недоступными, пока соответствующие учётные данные приложения-разработчика не сохранены, не проверены через LinkedIn и явно не включены там, где это требуется. Остальная часть продукта работает без этих учётных данных.
Related MCP server: linkedin-mcp
Требования
Windows 10 или новее, Linux или macOS. Все три поддерживаются, и все три запускают полный набор тестов при каждом push.
Node.js 24 или новее (база данных использует встроенный
node:sqlite)npm
Импорт доказательств принимает форму абсолютных путей, характерную для каждой платформы: пути с буквой диска в Windows, пути с корнем / в Linux и macOS. Правила действительно различаются — Windows также отклоняет UNC-пути, альтернативные потоки данных и зарезервированные имена устройств, тогда как правила POSIX отклоняют встроенные NUL-байты и неоднозначный корень // — потому что опасные формы различаются, а не потому что одной платформе доверяют больше.
Хранилище учётных данных тоже различается, и эти различия стоит знать, прежде чем полагаться на него. Все три дают одинаковую практическую гарантию — домашний каталог данных, скопированный на другую машину или в другую учётную запись, не может быть открыт — но они не одинаково сильны:
Платформа | Как запечатан главный ключ | |
macOS | Случайный ключ в связке ключей входа, удерживаемый ОС за списком контроля доступа | самый сильный |
Windows | DPAPI, привязанный к вашей учётной записи Windows | |
Linux | Производный от идентификатора хост-машины и вашего идентификатора пользователя, никогда не записывается | самый слабый — |
Ни один из них не защищает от программного обеспечения, работающего от вашего имени, что SECURITY.md всегда указывал как выходящее за рамки. Ранжирование имеет значение только в том случае, если локальный злоумышленник входит в вашу модель угроз; если да, предпочитайте macOS или Windows, либо вообще не храните учётные данные LinkedIn — всё остальное работает без них.
Интерактивный помощник по настройке доступен только в Windows, потому что это PowerShell. В Linux и macOS вы настраиваете MCP-клиент вручную, что представляет собой один JSON-блок — см. настройка MCP-сервера. npm run setup:mcp печатает именно этот блок с правильным домашним каталогом данных для вашей платформы, а не завершается ошибкой.
Опциональный канал чтения LinkedIn имеет второй, отдельный предел: LinkedIn выдаёт токены Member Data Portability только участникам, находящимся в Европейской экономической зоне или Швейцарии. Всё, что не касается LinkedIn, работает независимо от этого.
Быстрый старт
Из корня репозитория:
npm run setup:mcpВ Windows это запускает интерактивный помощник, описанный ниже. В Linux и macOS помощник не применяется — это PowerShell, и он записывает пути клиентов Windows — поэтому npm run setup:mcp вместо этого печатает один JSON-блок, который вы добавляете в свой MCP-клиент вручную, с правильным домашним каталогом данных для вашей платформы, а остальная часть этого раздела (команды PowerShell) предназначена только для Windows. Примеры для каждого клиента приведены в настройке MCP-сервера; краткая версия — Использование MCP без панели ниже, которая идентична на всех платформах.
Сначала посмотрите, что он сделает (Windows):
powershell -NoProfile -ExecutionPolicy Bypass -File .\setup-mcp.ps1 -All -NonInteractive -DryRunWindows отказывается запускать неподписанный .ps1 при политике выполнения Restricted по умолчанию, поэтому голый .\setup-mcp.ps1 завершается ошибкой, ничего не сделав. -ExecutionPolicy Bypass применяется только к этому одному вызову и ничего не меняет на машине — что также ровно то, что делает npm run setup:mcp. Прочитайте скрипт сначала, если не хотите принимать это на веру; -DryRun печатает каждый файл, которого он коснётся, не открывая ни один из них для записи.
Помощник редактирует файлы конфигурации, принадлежащие другим приложениям, поэтому стоит знать, какие именно, прежде чем позволить ему запуститься. В зависимости от выбранных клиентов он может записывать в ~/.codex/config.toml, ~/.claude.json, %APPDATA%\Claude\claude_desktop_config.json, %APPDATA%\Code\User\mcp.json, ~/.copilot/mcp-config.json, ~/.cursor/mcp.json и ~/.gemini/config/mcp_config.json. Если вы не передадите -NoPersistUserEnvironment, он также сохраняет LINKEDIN_MCP_HOME как переменную окружения на уровне пользователя.
Каждый файл, которого он касается, сначала резервируется копией с меткой времени, заменяется только запись linkedin, файл, не являющийся строгим JSON, отклоняется, а не переписывается, а при сбое восстанавливается оригинал.
Интерактивный помощник проверяет Node.js, устанавливает зависимости при необходимости, собирает MCP-сервер, спрашивает, какие AI-клиенты настроить, и указывает каждый выбор на один общий домашний каталог данных. Он поддерживает Codex, Claude Code, Claude Desktop, VS Code/Copilot Chat, GitHub Copilot CLI, Cursor и Google Antigravity. Существующие JSON-конфигурации объединяются и резервируются; заменяется только запись MCP linkedin.
Перезапустите настроенные клиенты, затем выберите одну или обе поверхности:
# MCP server: normally started automatically by your AI client
npm run mcp:start
# Optional human review dashboard
npm run dashboardmcp:start общается через JSON-RPC по stdin/stdout и поэтому выглядит ожидающим при запуске в обычном терминале. Это ожидаемо. Настройте MCP-клиент на его запуск; см. настройку MCP-сервера.
Панель печатает одноразовый URL для http://127.0.0.1:4780. См. использование панели.
Для повторяемой или автоматической настройки:
powershell -NoProfile -ExecutionPolicy Bypass -File .\setup-mcp.ps1 -Clients Codex,Cursor,VSCode -NonInteractive
powershell -NoProfile -ExecutionPolicy Bypass -File .\setup-mcp.ps1 -All -NonInteractiveИспользуйте -DataHome "C:\absolute\path", чтобы выбрать другой общий домашний каталог. Помощник сохраняет этот абсолютный путь как LINKEDIN_MCP_HOME текущего пользователя; откройте новый терминал перед запуском панели, чтобы она унаследовала только что сохранённое пользовательское значение. Передайте -NoPersistUserEnvironment, если вы хотите изменить только записи выбранных клиентов. Помощник никогда не запрашивает и не записывает учётные данные LinkedIn.
Общее состояние между MCP и панелью
Панель и каждый настроенный MCP-процесс открывают один и тот же локальный домашний каталог приложения. Вы можете работать в панели, закрыть её, продолжить через AI-агента и вернуться позже без ручного импорта или сверки чего-либо.
Все пути ниже находятся в домашнем каталоге данных (см. Расположение данных).
Общее состояние | Где оно хранится |
Доказательства, утверждения, состояние профиля, решения, черновики, ревизии, одобрения, история публикаций, события аудита, настройки и прогресс |
|
Импортированные рабочие копии и сгенерированные артефакты |
|
Зашифрованные учётные данные LinkedIn | Шифротекст в SQLite плюс запечатанный главный ключ в |
Резервные копии |
|
Режим WAL в SQLite и ограниченные повторные попытки записи позволяют панели и MCP-клиентам работать одновременно. Панель обновляет текущий экран при возврате фокуса и периодически, пока видима, поэтому изменения на стороне агента появляются без её перезапуска.
Это локальная синхронизация в рамках одной учётной записи пользователя, а не облачная или межмашинная синхронизация. Секреты остаются доступными обоим процессам, но никогда не копируются в конфигурацию AI-клиента, не возвращаются модели, не экспортируются, не регистрируются и не включаются в резервные копии.
Использование MCP без панели
Панель и MCP-сервер — это отдельные процессы. Вам не нужно запускать панель перед подключением Codex, Claude, Copilot, Cursor, Antigravity, VS Code или другого stdio MCP-хоста.
После сборки настройте клиент на запуск скомпилированной точки входа с абсолютным путём (обратные слэши в Windows, / в Linux и macOS):
node <absolute-path-to-repo>/linkedin-mcp-server/dist/index.jsЧтобы добавить и импортировать первый источник доказательств из терминала, управляемого человеком — путь является примером, используйте свой собственный абсолютный путь в форме, которую принимает ваша платформа:
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"Эта команда явно регистрирует, включает и импортирует источник без открытия панели. Виды источников: repo, document, folder, linkedin_export и manual; уровни доверия: personal_doc, own_repo и local_clone_reference.
Затем вы можете попросить подключённого агента:
Use the LinkedIn MCP capability-status tool, then list my evidence sources and candidate claims.MCP управляет обычным рабочим процессом. Панель включает специально созданные экраны проверки, а также System → All MCP tools, который предоставляет точно такой же проверенный реестр инструментов — не существует копии бизнес-логики только для панели. Ввод секретов — единственная операция, намеренно недоступная через чат. Другие важные операции требуют явного подтверждения, привязанного к действию:
Действие | Вариант без дашборда | |
Регистрировать, включать и импортировать доказательства | MCP ( | |
Изменять несекретные настройки | MCP-инструмент | |
Хранить токены доступа LinkedIn | `npm run control -- lane configure read ` write --client-id ` (ввод маскируется) | |
Выдавать, отклонять или пересматривать разрешение на публикацию | Сообщите подключённому агенту ваше решение и подтвердите связанную с ним команду для | |
Включить реальную публикацию |
| |
Опубликовать в аккаунте |
| |
Удалять только данные переносимости LinkedIn |
| |
Полностью удалить все локальные данные | Подтверждённый |
Запуск npm run control без аргументов открывает интерактивное меню. CLI также является поверхностью для ввода секретов без дашборда; токены доступа маскируются и никогда не попадают в данные MCP.
Общие элементы управления функциями
Девять групп функций хранятся в общей базе данных SQLite и применяются и MCP-обработчиками, и маршрутами дашборда: evidence, profile, content, publication_workflow, analytics, linkedin_sync, maintenance, configuration и live_publishing. Первые восемь по умолчанию включены. Только live_publishing по умолчанию выключена.
Просмотреть описания и текущие значения можно через linkedin_feature_control, Система → Функции или:
npm run control -- feature list
npm run control -- feature disable analytics --confirm
npm run control -- feature enable analytics --confirmПолитика функций отделена от готовности учётных данных и API LinkedIn. Поэтому включение live_publishing по-прежнему требует проверенного канала записи, а каждая реальная публикация — выданного разрешения, привязанного к конкретной ревизии, и точной команды публикации.
Порядок работы с доказательствами и решения
Предполагаемый порядок работы — в первую очередь MCP:
Зарегистрируйте источник evidence в MCP, затем явно подтвердите
ENABLE <source_id>через агента, дашборд или control CLI.Позвольте агенту импортировать его, проверить целостность сохранённых байтов, извлечь артефакты и предложить узкие утверждения с цитатами.
Проверьте точные формулировки. Непротиеположные утверждения становятся подтверждёнными только после явного подтверждения человеком.
Конфликты, неоднозначные формулировки и преувеличения выносите на рассмотрение человека. Решайте их через диалог с MCP или через дашборд — оба варианта вызывают одни и те же сервисы утверждений и конфликтов.
Утверждения — неизменяемая история. «Изменить» создаёт исправленную формулировку как новое утверждение, после чего старое утверждение отклоняется или объединяется. Так прежние решения остаются доступными для аудита, а не тихо перезаписываются.
Расположение данных
По умолчанию домашний каталог определяется соглашениями каждой платформы:
Платформа | Домашний каталог |
Windows |
|
macOS |
|
Linux |
|
Укажите LINKEDIN_MCP_HOME абсолятный каталог, чтобы использовать другой home или изолированный тестовый корпус; эта переменная переопределяет значение по умолчанию на всех платформах. Относительные пути отклоняются: иначе в разных рабочих каталогах клиентов могли бы создаваться отдельные базы данных — и на Windows путь относительно пода диска, например \linkedin-data, отклоняется по той же причине, поскольку он разрешается относительно диска, на котором работает. Мастер настройки задаёт одним и то же абсолютное значение везде.
Не помещайте рабочий home в OneDrive, Dropbox, Google Drive, iCloud Drive или другую синхронизируемую папку. SQLite использует «живую» WAL-базу, которую нельзя копировать в открытом состоянии. Вместо этого используйте вст секторнtocommand резервного копирования.
Карта репозитория
Путь | Ответственность |
Основной движок: 44 инструмента MCP, 5 ресурсов, 5 рабочих промптов, stdio-транспорт | |
Необязательная визуальная поддержка через подоси двухконтурной сети, ручная проверка и консоль точных MCP-инструментов | |
| Доказательства, профиль, черновики, разрешения, публикация, аудит, политика хранения |
| SQLite-драйвер, миграции, оптимистическая конкурентность, хранение артефактов |
| ZIP, CSV, PDF, DOCX с безопасной обработкой путей, сканирование репозиториев, редактирование данных при выгрузке |
| Адаптеры LinkedIn OIDC, DMA и публикаций с закрытым состоянием при сбое |
| Канонический JSON, идентификаторы и контракты ошибок |
| Команды онбординга, обслуживания и проверки, выполняемые человеком |
Модель безопасности
Только подтверждённые утверждения могут лежать в основе публичного текста профиля или черновиков.
Импортированный контент всегда рассматривается как ненадёжные данные, никогда — как инструкции.
MCP может выдать, отклонить или пересмотреть запрос публикации только после того, как пользователь явно подтвердит точную команду одобрения; выданные одобрения привязаны к думлю ревизии.
Разрешение привязано к одной конкретной ревизии черновика и списывается при публикации.
Неопределённый сетевой результат помечается как
ambiguous; он никогда не повторяется автоматически.Журнал аудита построен по хэш-цепочке; разорванная цепочка блокирует разрешения и публикации.
Импортируемые материалы копируются в хранилище артефактов и никогда ни изменяются исходники.
Секреты исключаются из MCP-данных, журналов, отвечают экспорту и резервных копий.
Разработка и проверка
npm ci
npm run typecheck
npm run build
npm test
npm run inspect:list
npm run test:visualСначала сборка, затем тест. Набор проверок протокольной целостности запускает скомпилированный stdio-сервер, поэтому для npm test требуется наличие linkedin-mcp-server/dist/index.js index`. Выполните приведённые выше шаги по порядку — отдельная настройка не нужна.
inspect:list запускает скомпилированный stdio-сервер через MCP Inspector и запрашивает его каталог инструментов. Визуальные тесты требуют установки браузеров Playwright.
По опциональной настройке приложения LinkedIn для разработчика см. docs/linkedin-app-setup.md.
Документация
Документ | Что описывает |
Две поверхности, один движок; швы, которые неочевидны | |
Поддерживаемые платформы, среда выполнения, MCP-клиенты и известный пробел в верификации | |
Что эта система не делает и какие ограничения выбраны напланизационно | |
Что хранится, что покидает компьютер и как это удалить | |
Активы, границы доверия и где защита заканчивается | |
Управление версиями, обновление и почему откататься нельзя | |
Создание двух LinkedIn-приложений разработчика | |
Чего эта система не делает и какие ограничения намеренны | |
Активы, границы доверия и где защита заканчивается | |
Дизайн-система дашборда | |
Ручной чеклист доступности и визуальных размеров | |
Как сообщить об уязกวา; некортуальные цели | |
Как получить зелёнуюсяборку; правила, которые не обсуждаются | |
Куда обращаться и что вне рамок поддержки |
Лицензия
MIT — см. LICENSE. Здесь вставать лицензии сторонних зависимостей указаны в THIRD-PARTY-NOTICES.md; сведения о товарных знаках и ссылках между агенциями находятся в 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