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.

Список инструментов сервера (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.
linkedin-mcp: подключить к Claude, ChatGPT, Cursor · Connectors.fun