Skip to main content
Glama
AriOliv
by AriOliv

LinkedIn MCP

Неофициальный сервер Model Context Protocol для LinkedIn — читайте свой профиль, сеть и контакты, ищите людей и вакансии и отправляйте сообщения из любого MCP-клиента (Claude и др.).

Работает в двух режимах:

  • HTTP + OAuth 2.1 (рекомендуется) — сервер является авторизационным сервером OAuth 2.1 для MCP-клиентов и служит мостом к настоящему 3-legged OAuth от LinkedIn с экраном согласия. Каждый пользователь входит на linkedin.com; сервер никогда не видит его пароль.

  • stdio — локальный сервер, который читает LINKEDIN_ACCESS_TOKEN из окружения. Удобен для одного пользователя или быстрого тестирования.

Это повторяет архитектуру аутентификации @aol/ifood-mcp и @aol/uber-mcp, заменяя их реверс-инжиниринг логинов на первоклассный OAuth от LinkedIn.


Инструменты

Инструмент

Конечная точка LinkedIn

Примечания

linkedin_me

GET /v2/userinfo

Работает со стандартными скоупами openid profile email.

linkedin_network_stats

GET /v2/networkSizes/{urn}

Требуется r_1st_connections_size.

linkedin_connections

GET /v2/connections

Требуется одобренный продукт connections.

linkedin_get_profile

GET /v2/people/{id}

Требуется одобренный продукт profile.

linkedin_search_people

GET /v2/search/people

Требуется одобренный продукт search.

linkedin_search_jobs

GET /v2/jobs/search

Требуется одобренный продукт jobs.

linkedin_send_message

POST /v2/messages

Требуется w_member_social (обмен сообщениями).

Доступ к API LinkedIn. Из коробки стандартное приложение LinkedIn предоставляет только скоупы OpenID Connect (openid profile email), поэтому linkedin_me работает сразу. Остальные инструменты вызывают конечные точки, которые LinkedIn ограничивает одобренными продуктами (Sign In, Marketing, Talent Solutions и т. д.). Пока ваше приложение не одобрено для них, эти инструменты будут возвращать 403 — это ограничение платформы LinkedIn, а не ошибка. После одобрения добавьте предоставленные скоупы в LINKEDIN_SCOPES.


Related MCP server: Linkd MCP Server

Быстрый старт (HTTP + OAuth)

1. Создайте приложение LinkedIn

  1. Перейдите на https://www.linkedin.com/developers/appsCreate app.

  2. В разделе Auth скопируйте Client ID и Client Secret.

  3. Добавьте свой callback в Authorized redirect URLs: http://localhost:3000/login/callback (или PUBLIC_URL + /login/callback).

  4. В разделе Products добавьте Sign In with LinkedIn using OpenID Connect (и любые другие, которые вам нужны).

2. Настройка

cp .env.example .env
# then edit .env:
#   MCP_JWT_SECRET=$(openssl rand -hex 32)
#   LINKEDIN_CLIENT_ID=...
#   LINKEDIN_CLIENT_SECRET=...
#   PUBLIC_URL=http://localhost:3000

3. Запуск

npm install
npm run build
npm run start:http      # or: npm run dev  (tsx watch)

Укажите вашему MCP-клиенту адрес http://localhost:3000/mcp. При первом подключении запускается поток OAuth 2.1, который перенаправляет вас на LinkedIn для входа, а затем вызывает инструменты от вашего имени.


Быстрый старт (stdio)

cp .env.example .env
# set LINKEDIN_ACCESS_TOKEN=... (e.g. from the LinkedIn developer console token generator)
npm install && npm run build
npm start

Конфигурация MCP-клиента:

{
  "mcpServers": {
    "linkedin": {
      "command": "node",
      "args": ["/absolute/path/to/linkedin-mcpserver/build/index.js"],
      "env": { "LINKEDIN_ACCESS_TOKEN": "AQV..." }
    }
  }
}

Как работает мост OAuth

MCP client ──/authorize──▶ this server ──302──▶ /login ──▶ /login/start
                                                              │
                                                    302 ▼ linkedin.com/oauth/v2/authorization
                                              user signs in on LinkedIn
                                                              │
      /login/callback ◀──302 code&state──────────────────────┘
            │  exchange code → LinkedIn access + refresh token
            │  fetch /v2/userinfo → stable member id (sub)
            │  store tokens per‑user, mint an MCP auth code
            ▼
MCP client ──/token──▶ this server ──▶ HS256 JWT (audience‑bound to /mcp)
MCP client ──/mcp (Bearer JWT)──▶ tools call LinkedIn with the member's token
  • MCP-токены доступа — это кратковременные HS256 JWT, подписанные MCP_JWT_SECRET, привязанные к аудитории ресурса /mcp (RFC 8707), с ротацией refresh-токенов.

  • Нижестоящие токены LinkedIn прозрачно обновляются, когда приложение одобрено для refresh-токенов; в противном случае пользователь повторно проходит аутентификацию.

  • Всё состояние хранится в памяти (один процесс). Замените хранилища в src/http/store.ts на Redis/БД для горизонтального масштабирования.


Окружение

Переменная

Обязательная

По умолчанию

Назначение

PORT

3000

HTTP-порт.

PUBLIC_URL

HTTP

http://localhost:PORT

URL, который видят клиент и LinkedIn.

MCP_JWT_SECRET

HTTP

Ключ HS256 (≥32 символов). openssl rand -hex 32.

LINKEDIN_CLIENT_ID

HTTP

Client id приложения LinkedIn.

LINKEDIN_CLIENT_SECRET

HTTP

Client secret приложения LinkedIn.

LINKEDIN_SCOPES

openid profile email

Запрашиваемые скоупы OAuth.

LINKEDIN_REDIRECT_URI

PUBLIC_URL/login/callback

Переопределение OAuth callback.

LINKEDIN_ACCESS_TOKEN

stdio

Токен для режима stdio.

LINKEDIN_API_BASE

https://api.linkedin.com

Переопределение хоста API.

LINKEDIN_VERSION

Заголовок LinkedIn-Version (ГГГГММ) для /rest.


Структура

src/
  index.ts                 stdio server + tool catalog + executeTool + TokenProvider
  http-server.ts           remote MCP server (Streamable HTTP + OAuth 2.1)
  http/
    provider.ts            LinkedInOAuthProvider (OAuthServerProvider, HS256 JWTs)
    login-router.ts        /login → LinkedIn consent → /login/callback
    linkedin-auth.ts       LinkedIn OAuth client (authorize / token / userinfo)
    session-provider.ts    per-user token lookup + transparent refresh
    store.ts               in-memory OAuth + downstream token stores

Скрипты

Скрипт

Действие

npm run build

Компиляция в build/.

npm run start:http

Запуск HTTP/OAuth-сервера.

npm start

Запуск stdio-сервера.

npm run dev

tsx watch HTTP-сервера.

npm run dev:stdio

tsx watch stdio-сервера.

npm run typecheck

tsc --noEmit.

Лицензия

MIT. См. LICENSE.

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables seamless interaction with LinkedIn for job applications, profile retrieval, feed browsing, and resume analysis through natural language commands.
    31
  • A
    license
    A
    quality
    D
    maintenance
    An unofficial Model Context Protocol server that enables programmatic access to LinkedIn data through tools like user search, company search, profile enrichment, and contact retrieval.
    8
    7
    17
    3
    ISC
  • F
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive Model Context Protocol server that enables AI assistants to interact with LinkedIn APIs for profile management, content creation, networking, messaging, and analytics.
    2
  • A
    license
    A
    quality
    F
    maintenance
    An unofficial Model Context Protocol server that provides LinkedIn tools for searching users, enriching profiles, retrieving contact information, and conducting deep research through natural language interfaces.
    5
    13
    5
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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/AriOliv/linkedin-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server