linkedin-mcp

CClarity remote MCP: LinkedIn-aligned data for AI assistants — tenant profile, ICP, writing style, post performance, profile viewers, outbound engagements…

От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетБез входаГлобальныйБесплатноМожет изменять данные

Что умеет

  • Get User Context: Load the user's stored CClarity context: Profile (who they are, company, about), Writing Style (voice, phrases, guidelines), ICP (target industries, countries, departments, senioriti
  • Billing: Returns the authenticated user's CClarity subscription plan and a live Stripe URL in billingActionUrl. If not subscribed, billingActionUrl is a Stripe Checkout link (promotion codes on the pa
  • Update Profile: Update the user's CClarity context fields that persist across all AI sessions. Use for mid-chat updates like "add logistics to my target industries", "update my voice to be more casual

Какие данные видит

Нужен ли аккаунт

Не нужен: сервер работает без входа

CClarity remote MCP: LinkedIn-aligned data for AI assistants — tenant profile, ICP, writing style, post performance, profile viewers, outbound engagements (reactions/comments), who engaged on your posts, connection invitations (in/out), and followers. Authenticated via OAuth 2.1; active paid subscription and LinkedIn (Unipile) connection are required before gated tools return data.

Как подключить

Как подключить linkedin-mcp к Claude

Адрес сервера, который нужно вставить в настройках Claude:

https://linkedin-mcp--cclarity.run.tools

  1. Откройте Claude (сайт claude.ai или приложение для компьютера).
  2. Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
  3. Нажмите Добавить пользовательский коннектор (Add custom connector).
  4. Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
  5. В чате нажмите + → Коннекторы и включите новый коннектор.

Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.

Авторизация

После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.

Как подключить linkedin-mcp к ChatGPT

Адрес сервера, который нужно вставить в настройках ChatGPT:

https://linkedin-mcp--cclarity.run.tools

  1. Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
  2. Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
  3. Откройте Настройки → Коннекторы и нажмите Создать (Create).
  4. Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
  5. В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
  6. В новом чате откройте + → Приложения/Коннекторы и включите коннектор.

Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.

Авторизация

При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.

Как подключить linkedin-mcp к Cursor

Адрес сервера, который нужно вставить в настройках Cursor:

https://linkedin-mcp--cclarity.run.tools

Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.

Вручную:

  1. В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
  2. Вставьте JSON, скопированный ниже, в открывшийся файл ~/.cursor/mcp.json (для одного проекта: .cursor/mcp.json в корне проекта).
  3. Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.

Авторизация

Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.

Список инструментов сервера (12)

Технические названия из tools/list. Нужны только разработчикам.

get_user_contextLoad the user's stored CClarity context: Profile (who they are, company, about), Writing Style (voice, phrases, guidelines), ICP (target industries, countries, departments, seniorities, excluded companies), and Content Preferences. Call this at the start of a session when you need to answer questions like "what do you know about me?" or "who is my ideal customer?". The data comes from MongoDB (users, mossOwlUserSettings, companyExclusion). No arguments required.
billingReturns the authenticated user's CClarity subscription plan and a live Stripe URL in billingActionUrl. If not subscribed, billingActionUrl is a Stripe Checkout link (promotion codes on the payment page). If subscribed, billingActionUrl is a Stripe Billing Portal link to change plan, payment method, or cancel. Use when the user asks about their plan, pricing, subscription, upgrade, downgrade, or billing. IMPORTANT: Always paste the full billingActionUrl from the tool result into your reply so the user can open it in a browser. Never refer to a link "above" or "in the portal" without including the exact URL string.
update_profileUpdate the user's CClarity context fields that persist across all AI sessions. Use for mid-chat updates like "add logistics to my target industries", "update my voice to be more casual", or "my company is now Acme". All fields are optional — only provided fields are written. After updating, call get_user_context to see the changes.
get_post_performanceReturn the authenticated user's own LinkedIn posts with engagement metrics (impressions, reactions, comments, shares, engagement rate) and media attachments (images, videos, documents). Use for queries like "show me my post performance this month" or "which of my posts performed best?". Posts are returned newest first. RETURN SHAPE — structuredContent.items[] rows: { id, linkedInPostId, text, postedAt (ISO), postUrl, impressions, reactions, comments, shares, views, engagementRate, attachments[], isRepost, repostedContent, originalAuthorVanityName; canonical aliases: displayName=text[:60], profileUrl=postUrl, secondaryLabel="N reactions · N comments", occurredAt=postedAt, occurredAtIsExact }. Top-level: total, vanityName, lastSyncedAt, emptyReason ("NO_DATA"|"NO_VANITY"), schemaVersion=2.
get_viral_post_predictorAnalyse the authenticated user's past LinkedIn posts and return user-relative performance benchmarks, viral tier classification, and content patterns for AI-driven viral prediction. Use for queries like "predict if my draft will go viral", "what makes my posts perform well", "what content patterns drive engagement for me?", or "score my draft against my history". INPUTS: draftText (optional post text to score), limit (1–50, default 30), since (ISO date for window start, default 90 days). RETURN SHAPE — structuredContent fields: baseline { medianEngagementRate, medianImpressions, analyzablePostCount, windowDays }; patterns { avgTextLengthTopQuartile, avgTextLengthAll, attachmentShare, repostWithTextShare, topWeekday }; topPerformers[] { id, linkedInPostId, textPreview, postedAt, postUrl, impressions, reactions, comments, engagementRate }; items[] { id, linkedInPostId, text, textPreview, postedAt, postUrl, impressions, reactions, comments, shares, engagementRate, isRepost, hasAttachments, viralTier (high|typical|low), vsBaselineImpressions, vsBaselineEngagementRate; canonical aliases: displayName, profileUrl, occurredAt, secondaryLabel }; analyzablePostCount, excludedRepostCount (bare reposts without any text), totalPostsInWindow, lastSyncedAt, emptyReason, predictionGuidance; draftContext { charCount, wordCount, text } — populated when draftText provided. Minimum 3 analyzable posts required for full insights. IMPORTANT: Always present baseline metrics + top performers + patterns to the user and use them to reason about whether a provided draft text is likely to be viral.
get_profile_viewersReturn people who recently viewed the authenticated user's LinkedIn profile. Use for queries like "who's been looking at my profile?" or "any good leads checked my profile this week?". Viewer identity only — no post info from the viewer. Cross-reference with ICP for targeting. RETURN SHAPE — structuredContent.items[] rows: { id, name, headline, vanityName, profileUrl, connectionDegree, viewedAt (ISO or null), occurredAt (ISO, coalesced), occurredAtIsExact, viewedAgo; deprecated: fullName, linkedInUrl (one-release aliases); canonical aliases: displayName=name, profileUrl=profileUrl, occurredAt=coalesced viewedAt, secondaryLabel=headline }. Top-level: total, emptyReason, schemaVersion=2.
get_my_activity_engagementsReturn people the authenticated user has been reacting to or commenting on — i.e., warm contacts from outbound engagement. Use for queries like "who did I engage with this week?", "show me my recent reactions", or "people I've been commenting on lately". Results are grouped by person. RETURN SHAPE — structuredContent.items[] rows: { postAuthorVanityName, postAuthorName, name, profileUrl, lastInteractionAt (ISO or null), occurredAt (ISO, coalesced), occurredAtIsExact, reactionCount, commentCount, totalInteractions; deprecated: linkedInUrl (one-release alias); canonical aliases: displayName=name, profileUrl=profileUrl, occurredAt=coalesced lastInteractionAt, secondaryLabel=headline }. Top-level: total, lastSyncedAt, emptyReason, schemaVersion=2.
get_who_engagedReturn people who engaged with your recent LinkedIn post(s): reactions, comments, and replies. Use for questions like "who engaged?", "who commented on my latest post?", or "show warm inbound engagers this week". Results are grouped by engager and include full profile context when a Unipile profile snapshot is available (synced nightly). RETURN SHAPE — structuredContent.items[] rows: { engagerKey, name, fullName, vanityName, linkedInId, linkedInUrl, profileUrl, avatarUrl, headline, location, currentCompany, currentTitle, workExperience[] (title/company/startDate/endDate/current/location/description), profileSyncedAt (ISO or null), profileFetchError (null if ok), lastEngagedAt (ISO or null), occurredAt (ISO, coalesced), occurredAtIsExact, reactionCount, commentCount, replyCount, totalEngagements, recentActivity[]; canonical aliases: displayName=name, profileUrl=profileUrl, occurredAt=coalesced lastEngagedAt, secondaryLabel=headline }. Top-level: total (=totalEngagers), totalEngagers, totalEngagementEvents, hasMore, lastSyncedAt, emptyReason, schemaVersion=2.
get_my_received_invitationsReturn LinkedIn connection invitations received by the authenticated user. Use for queries like "who sent me a connection request?", "any new invites this week?", "show me pending invitations". Results are ordered newest first. RETURN SHAPE — structuredContent.items[] rows: { invitationId, receivedAt (ISO), dateLabel, invitationText, inviterName, inviterPublicIdentifier, inviterDescription, inviterProfileUrl, invitedUserName; canonical aliases: displayName=inviterName, profileUrl=inviterProfileUrl, occurredAt=receivedAt, secondaryLabel=inviterDescription }. Top-level: total, hasMore, lastSyncedAt, emptyReason, schemaVersion=2.
get_my_sent_invitationsReturn LinkedIn connection invitations sent by the authenticated user. Use for queries like "who did I invite?", "show my outgoing connection requests", "did I send a request to John?", "list my pending outbound invitations". Results are ordered newest first. RETURN SHAPE — structuredContent.items[] rows: { invitationId, sentAt (ISO), dateLabel, invitationText, inviteeName, inviteePublicIdentifier, inviteeDescription, inviteeProfileUrl; canonical aliases: displayName=inviteeName, profileUrl=inviteeProfileUrl, occurredAt=sentAt, secondaryLabel=inviteeDescription }. Top-level: total, hasMore, lastSyncedAt, emptyReason, schemaVersion=2.
get_my_followersReturn people who follow the authenticated user on LinkedIn. Use for queries like "who are my recent followers?", "how many new followers did I get this week?", "show me followers I gained this month", or "list my latest followers". Supports filtering by a date range to surface only newly-detected followers. Note: LinkedIn provides no per-follower timestamp — "new" means first observed by CClarity. RETURN SHAPE — structuredContent.items[] rows: { followerId, name, headline, profileUrl, username, firstSeenAt (ISO or null), occurredAt (ISO, coalesced), occurredAtIsExact, firstSeenAgo; canonical aliases: displayName=name, profileUrl=profileUrl, occurredAt=coalesced firstSeenAt, secondaryLabel=headline }. Top-level: total, totalKnown, hasMore, syncPending (bool), rangeFilter, emptyReason ("NOT_SYNCED"|"NO_DATA"), schemaVersion=2.
linkedin_post_publishPublish a text post to the authenticated user's LinkedIn profile. Use when the user explicitly asks to post, publish, or share content on LinkedIn. IMPORTANT: You MUST ask the user to confirm before calling this tool — pass confirm: true only after the user has reviewed the draft and agreed to publish. Text-only posts are supported (no images/video in this version). Plain text with line breaks is accepted; max 3000 characters. A daily limit of 5 successful publishes applies. Requires an active paid CClarity subscription and a connected LinkedIn account.