Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

Explore

  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Tags index
  • Submit a server
  • Pricing

Learn

  • Guides hub
  • What is MCP?
  • Install guide
  • Troubleshooting
  • Security
  • Blog
  • Blog RSS

Tools

  • All tools
  • Config generator
  • Config validator
  • MCP playground
  • OpenAPI β†’ MCP
  • Badge generator

For agents

  • API docs
  • Trust & traffic
  • llms.txt β†— (opens in a new tab)
  • Catalog JSON β†— (opens in a new tab)
  • Remote MCP β†— (opens in a new tab)

Company

  • About
  • Contact
  • X (@AllMCPs) β†— (opens in a new tab)
  • GitHub β†— (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on Buildlist
Β© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. 🌐 Social Media
  3. Linkedctl
L
Health: Not checked yetWe have not completed a health check for this listing yet.Last checked 8/11/2026, 12:24:44 AM

Linkedctl

Enrichment pendingWe haven’t run our AI enrichment pass on this listing yet, so the overview, use cases, and FAQ below may be sparse or missing. We work through the catalog over time β€” check back soon.
View Repository

CLI and MCP server for the LinkedIn API

Quick Install

Automated & IDE Setup

Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β€” or use 1-click editor setup below.

Add to CursorAdd to VS Code
Manual Client & Custom JSON ConfigExpand JSON β–Ύ

Install Config Generator

Choose your client
claude_desktop_config.json
{
  "mcpServers": {
    "linkedctl": {
      "command": "npx",
      "args": [
        "-y",
        "linkedctl"
      ]
    }
  }
}

πŸ’‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

Install Directory Badge Claim listing Alternatives🌐 More in Social Media

Documentation Overview

LinkedCtl: The Complete CLI & MCP for LinkedIn

CI CodeQL License

OAuth2 CLI and MCP server for the LinkedIn API.

What It Does

  • Post content β€” text, images, video, documents, articles, multi-image carousels, and polls
  • Comments & reactions β€” create, list, and delete comments and reactions on posts
  • Organization support β€” post, comment, react, and view analytics as an organization
  • Analytics β€” per-post, per-member, and per-organization statistics
  • Media uploads β€” upload images, video, and documents to LinkedIn
  • Draft posts β€” save posts as drafts before publishing
  • OAuth 2.0 authentication with your own LinkedIn app
  • Direct token passing for tokens obtained from other applications
  • MCP server for AI assistant integration (Claude, Cursor, etc.)
  • CLI for scriptable LinkedIn operations

Prerequisites

  • Node.js >= 24
  • A LinkedIn Developer App with appropriate permissions

Installation

Terminal
npm install -g linkedctl

Or run directly:

Terminal
npx linkedctl --help

Quick Start

  1. Create a LinkedIn app at linkedin.com/developers
  2. Configure OAuth 2.0 credentials
  3. Authenticate:
    sh
    linkedctl auth login --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET
    
  4. Start using:
    sh
    linkedctl post "Hello from LinkedCtl!"
    

See the OAuth Setup Guide for detailed step-by-step instructions.

MCP Integration

MCP Client Configuration

Claude Desktop

Add to your Claude Desktop configuration (claude_desktop_config.json):

config.json
{
    "mcpServers": {
        "linkedctl": {
            "command": "npx",
            "args": ["linkedctl", "mcp"]
        }
    }
}
Claude Code
Terminal
claude mcp add linkedctl -- npx linkedctl mcp
Cursor

Add to .cursor/mcp.json in your project root:

config.json
{
    "mcpServers": {
        "linkedctl": {
            "command": "npx",
            "args": ["linkedctl", "mcp"]
        }
    }
}
Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

config.json
{
    "mcpServers": {
        "linkedctl": {
            "command": "npx",
            "args": ["linkedctl", "mcp"]
        }
    }
}

Available Tools

All tools accept an optional profile parameter to select a configuration profile.

Authentication

ToolDescription
whoamiShow the current user's name, email, and profile picture URL
auth_statusShow authentication status for a profile
auth_revokeRevoke the access token server-side and clear local credentials

Posts

ToolDescription
post_createCreate a post on LinkedIn with optional media, poll, or article attachment
post_getFetch a single post by URN
post_listList posts with pagination (supports as_org for organization posts)
post_updateUpdate the commentary text of an existing post
post_deleteDelete a post by URN

post_create supports rich content types:

ParameterDescription
textPost text content (required)
visibilityPUBLIC or CONNECTIONS (default PUBLIC)
draftSave as draft instead of publishing
image / image_fileAttach a single image (URN or local file path)
video / video_fileAttach a video (URN or local file path)
document / document_fileAttach a document (URN or local file path)
images / image_filesAttach multiple images (minimum 2)
article_urlAttach an article link
pollPoll question text
poll_optionsPoll answer options (2–4 required when poll is set)
poll_durationONE_DAY, THREE_DAYS, ONE_WEEK, or TWO_WEEKS
as_orgPost as an organization (numeric ID)

Comments

ToolDescription
comment_createCreate a comment on a post (supports as_org)
comment_listList comments on a post
comment_getGet a specific comment by URN
comment_deleteDelete a comment by URN

Reactions

ToolDescription
reaction_createAdd a reaction to a post (supports as_org). Types: LIKE, PRAISE, EMPATHY, INTEREST, APPRECIATION, ENTERTAINMENT
reaction_listList reactions on a post
reaction_deleteRemove a reaction from a post (supports as_org)

Organizations

ToolDescription
org_listList organizations the authenticated user administers
org_getFetch a single organization by ID
org_followersGet the follower count for an organization

Analytics

ToolDescription
stats_postGet analytics for a single post (impressions, reach, reactions, comments, reshares)
stats_meGet aggregated analytics across all your posts
stats_orgGet share statistics for an organization (lifetime or time-bucketed)

Media

ToolDescription
document_uploadUpload a document to LinkedIn (PDF, DOCX, PPTX, DOC, PPT; max 100 MB)

Configuration

Config File Format

LinkedCtl stores configuration in YAML files. Each file represents a single profile:

yaml
api-version: "202601"
oauth:
    client-id: "YOUR_CLIENT_ID"
    client-secret: "YOUR_CLIENT_SECRET"
    access-token: "YOUR_ACCESS_TOKEN"
    refresh-token: "YOUR_REFRESH_TOKEN"
    token-expires-at: "2026-05-03T12:00:00.000Z"

Available keys:

KeyDescription
api-versionLinkedIn API version (e.g. 202601)
oauth.client-idOAuth 2.0 client ID
oauth.client-secretOAuth 2.0 client secret
oauth.access-tokenOAuth 2.0 access token
oauth.refresh-tokenOAuth 2.0 refresh token
oauth.token-expires-atToken expiration timestamp (ISO 8601)

Config files are written with 0600 permissions (owner read/write only).

File Location and Precedence

Without a profile, LinkedCtl searches for config files in this order:

  1. .linkedctl.yaml in the current working directory
  2. ~/.linkedctl.yaml in the home directory

The first file found is used. When writing (e.g. after auth login), LinkedCtl writes to the CWD file if it exists, otherwise to the home directory file.

Profiles

Profiles let you manage multiple LinkedIn accounts or configurations. Each profile is stored as a separate YAML file under ~/.linkedctl/:

ProfileConfig file path
(default)~/.linkedctl.yaml
work~/.linkedctl/work.yaml
personal~/.linkedctl/personal.yaml

Use the --profile flag with any command:

sh
linkedctl --profile work auth login --client-id ID --client-secret SECRET
linkedctl --profile work post "Hello from my work account!"

Manage profiles with the profile command:

sh
linkedctl profile create work --access-token YOUR_TOKEN --api-version 202601
linkedctl profile list
linkedctl profile show work
linkedctl profile delete work

Authentication Methods

OAuth 2.0 (Recommended)

LinkedCtl supports OAuth 2.0 with your own LinkedIn Developer App:

sh
linkedctl auth login --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET

Direct Token

If you already have an access token from another application:

sh
linkedctl auth token --access-token YOUR_TOKEN

Environment Variables

VariableDescription
LINKEDCTL_CLIENT_IDLinkedIn OAuth 2.0 client ID
LINKEDCTL_CLIENT_SECRETLinkedIn OAuth 2.0 client secret
LINKEDCTL_ACCESS_TOKENDirect access token (bypasses OAuth flow)
LINKEDCTL_API_VERSIONLinkedIn API version string (e.g. 202601) required

Environment variables take precedence over config file values.

Profile-Prefixed Environment Variables

When using a named profile, LinkedCtl also reads profile-prefixed environment variables. The profile name is uppercased with hyphens converted to underscores:

ProfileVariable
(default)LINKEDCTL_ACCESS_TOKEN
workLINKEDCTL_WORK_ACCESS_TOKEN
my-brandLINKEDCTL_MY_BRAND_ACCESS_TOKEN

The same pattern applies to CLIENT_ID, CLIENT_SECRET, and API_VERSION.

Precedence Order

Configuration values are resolved in this order (highest priority first):

  1. Environment variables (profile-prefixed if a profile is active)
  2. Config file (profile-specific file, or CWD/home fallback)

CLI Reference

Global Options

OptionDescription
--profile <name>Use a specific configuration profile
--jsonForce JSON output
-q, --quietSuppress informational output
--no-colorDisable color output

auth β€” Manage Authentication

CommandDescription
auth setupConfigure OAuth client credentials interactively
auth loginAuthenticate via OAuth 2.0 (opens browser)
auth tokenStore a direct access token
auth statusShow authentication status and token expiry
auth logoutClear stored credentials from the active profile
auth refreshRefresh the access token using a stored refresh token
auth revokeRevoke the access token server-side and clear local tokens

auth login options:

OptionDescriptionDefault
--client-id <id>OAuth 2.0 client IDfrom config
--client-secret <secret>OAuth 2.0 client secretfrom config
--scope <scopes>OAuth 2.0 scopes (space-separated)openid profile w_member_social

auth token options:

OptionDescription
--access-token <token>Access token to store (required)

post β€” Manage LinkedIn Posts

sh
# Shorthand: pass text as an argument
linkedctl post "Hello from LinkedCtl!"

# Explicit subcommand
linkedctl post create --text "Hello from LinkedCtl!"

# Pipe content from stdin
echo "Hello from LinkedCtl!" | linkedctl post create
CommandDescription
post createCreate a post on LinkedIn
post get <urn>Fetch a post by URN
post listList posts with pagination
post update <urn>Update a post's commentary text
post delete <urn>Delete a post (with confirmation)

post create options:

OptionDescriptionDefault
--text <text>Text content (also accepts --text-file, positional, or stdin)
--visibility <visibility>PUBLIC or CONNECTIONSPUBLIC
--draftSave as draft instead of publishing
--image <urn>Image URN to attach
--image-file <path>Local image file to upload and attach
--video <urn>Video URN to attach
--video-file <path>Local video file to upload and attach
--document <urn>Document URN to attach
--document-file <path>Local document file to upload and attach
--images <urns>Multiple image URNs (comma-separated, minimum 2)
--image-files <paths>Multiple local image files (comma-separated, minimum 2)
--article-url <url>Article URL to attach
--poll <question>Poll question text
--option <text>Poll option (repeat 2–4 times)
--poll-duration <duration>ONE_DAY, THREE_DAYS, ONE_WEEK, or TWO_WEEKSTHREE_DAYS
--as-org <id>Post as an organization (numeric ID)
--format <format>Output format (json, table)auto

post list options:

OptionDescriptionDefault
--count <n>Number of posts to return (max 100)10
--start <n>Starting index for pagination0
--as-org <id>List posts of an organization (numeric ID)

comment β€” Manage Comments

CommandDescription
comment create <post-urn>Create a comment on a post
comment list <post-urn>List comments on a post
comment get <comment-urn>Get a specific comment by URN
comment delete <comment-urn>Delete a comment (with confirmation)

comment create options:

OptionDescription
--text <text>Comment text (required)
--as-org <id>Comment as an organization (numeric ID)

reaction β€” Manage Reactions

CommandDescription
reaction create <urn>Add a reaction to a post
reaction list <urn>List reactions on a post
reaction delete <urn>Remove a reaction from a post

reaction create options:

OptionDescription
--type <type>LIKE, PRAISE, EMPATHY, INTEREST, APPRECIATION, or ENTERTAINMENT (default LIKE)
--as-org <id>React as an organization (numeric ID)

org β€” Manage Organizations

CommandDescription
org listList organizations the authenticated user administers
org get <id>Get organization details
org followers <id>Get organization follower count

media β€” Upload Media

CommandDescription
media upload-image <file>Upload an image (JPG, PNG, GIF)
media upload-video <file>Upload a video
media upload-document <file>Upload a document (PDF, DOCX, PPTX, DOC, PPT; max 100 MB)

All media commands accept --as-org <id> and --format json|table.

stats β€” View Analytics

CommandDescription
stats post <urn>Get post analytics (impressions, reach, engagement)
stats meGet aggregated analytics across all your posts
stats org <id>Get organization share statistics

Common options:

OptionDescription
--from <date> / --start <date>Start of date range (YYYY-MM-DD)
--to <date> / --end <date>End of date range (YYYY-MM-DD)
--time-granularity <granularity>DAY or MONTH (org stats only)

profile β€” Manage Configuration Profiles

CommandDescription
profile create <name>Create a new profile
profile listList all profiles
profile show [<name>]Show profile details (redacted)
profile delete <name>Delete a profile (with confirmation)

profile create options:

OptionDescription
--access-token <token>OAuth 2.0 access token (required)
--api-version <version>LinkedIn API version, e.g. 202601 (required)

whoami β€” Show Current User

sh
linkedctl whoami
linkedctl whoami --format json
OptionDescriptionDefault
--format <format>Output format (json, table)auto

completion β€” Shell Completions

sh
linkedctl completion bash
linkedctl completion zsh

Security

  • Dependabot keeps dependencies up to date with automated pull requests
  • CodeQL analysis runs on every push and pull request for automated vulnerability detection
  • Path traversal validation on profile names prevents directory escape attacks
  • Unified auth error handling across all MCP tools provides consistent authentication failure messages
  • Destructive operations (delete post, delete comment, delete profile) require interactive confirmation unless --force is passed

Disclaimer

This is an independent project and is not affiliated with, endorsed by, or associated with LinkedIn Corporation. LinkedIn is a trademark of LinkedIn Corporation.

License

AGPL-3.0-only

Using LinkedCtl as a CLI tool or MCP server: No license obligations β€” use freely.

Using @linkedctl/core as a library in your project: Your combined work must be licensed under AGPL-3.0 (or a compatible license).

Related MCP Servers

View all in Social Media View all alternatives
  • G
    Glitch Grow Linkedin Ad Mcp

    MCP server for the LinkedIn Marketing API β€” campaigns, analytics, creatives.

    🌐 Social Media0 views
    Compare vs Glitch Grow Linkedin Ad Mcp β†’
  • L
    LinkedIn MCP (by TalkToHumans)

    Let AI tools securely access your LinkedIn network and DMs

    🌐 Social Media0 views
    Compare vs LinkedIn MCP (by TalkToHumans) β†’
  • S
    Sorsa Mcp

    MCP server for the Sorsa.io X/Twitter data API

    🌐 Social Media0 views
    Compare vs Sorsa Mcp β†’
  • L
    Linkedin Outreach Mcp

    AI-powered linkedin outreach MCP server for agents. Supports generate connection request, ge...

    🌐 Social Media0 views
    Compare vs Linkedin Outreach Mcp β†’

Frequently Asked Questions about Linkedctl

Add the following block to your claude_desktop_config.json under mcpServers: "mcpServers": { "linkedctl": { "command": "npx", "args": ["-y", "linkedctl"] } }

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewLinkedctl AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/linkedctl?style=directory)](https://allmcps.com/mcp/linkedctl)
HTML Embed
<a href="https://allmcps.com/mcp/linkedctl"><img src="https://allmcps.com/api/badge/linkedctl?style=directory" alt="Linkedctl on AllMCPs" /></a>

Technical Specs & Signals

Category🌐Social Media
More technical detailsExpand β–Ύ
TransportSTDIO
RuntimeNode.js
Views0
Unique ViewsTotal visits recorded for this listing page on AllMCPs.
Installs0
Installs & Copy ActionsTotal times users copied install commands or configuration snippets for this server.
24Quality signal: Emerging Β· 24/100How this signal is calculated β–Ύ
Server availabilityNot measured

Not scored for repo-hosted servers β€” we can't reach the running server, only its GitHub page. Hosted MCP endpoints are health-checked live.

Verified ownership8/20
Documentation & tools9/30
Adoption & activity1/15
Community engagement0/10

A guidance signal from public completeness & health data β€” not a user rating. New listings start lower and rise as they add docs, get verified, and grow adoption. Signals we can't observe for a listing are skipped, not counted against it.

β˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Free dofollow backlink: after claiming, verify your product site and place a dofollow AllMCPs badge β€” we recheck it stays live.

Claim & get free dofollow

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.

Explore more

More in 🌐 Social Media β†’Best MCP servers for Social Media β†’Alternatives to Linkedctl β†’Install in Claude DesktopInstall in CursorInstall in VS Code