Publishes LinkedIn posts, comments, and reactions through Unipile with preview-first safeguards.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
Inspect callable tools, capabilities, and parameters exposed to AI agents by MCP Linkedin.
The timkulbaev/mcp-linkedin MCP server gives MCP-compatible AI clients three LinkedIn actions: create an original post, add a comment to an existing post, and react to a post. The server sends these requests to Unipile, which connects the configured LinkedIn account and handles LinkedIn OAuth.
Post creation accepts text, optional media, company mentions, and a dry-run flag. Text is limited to 3,000 characters. Media can be supplied as local paths or URLs, and supported formats include JPG, JPEG, PNG, GIF, WEBP, and MP4. Company names are resolved through Unipile's LinkedIn company search so they can become clickable mentions.
An MCP client communicates with the local process using JSON-RPC over stdio. The server validates tool inputs, prepares media and mentions, then calls the Unipile API. For remote media URLs, files are downloaded to a temporary directory and removed after the publish attempt.
The intended publishing sequence is preview first, publish second. linkedin_publish and linkedin_comment use dry_run: true by default. A preview reports the proposed content, character count, media validation, resolved mentions, and warnings. The client must call the tool again with dry_run: false to perform the action. linkedin_react has no preview mode and acts immediately.
After a successful post, the response includes a post ID and indicates that the post was automatically liked. A LinkedIn feed URL can be formed from that ID using the activity URN format shown by the project.
To run timkulbaev/mcp-linkedin, use Node.js 18 or later. Clone the repository, change into its directory, and run npm install. Configure the MCP client to start index.js with Node and provide an absolute path to that entry point.
Two environment variables are required:
UNIPILE_API_KEY: the API key from the Unipile dashboard.UNIPILE_DSN: the Unipile data source name, such as an apiXX.unipile.com:XXXXX value.The credentials are passed in the MCP client configuration and read from process.env when the process starts; the README does not use a .env file. Before connecting the server, create a Unipile account, connect a LinkedIn account, and retrieve the API key and DSN from the dashboard. Restart Claude Code or Claude Desktop after changing the MCP configuration.
The available tools are:
linkedin_publish: previews or publishes an original post, with optional media and company mentions.linkedin_comment: previews or posts a comment using a LinkedIn post URL or raw post URN.linkedin_react: applies like, celebrate, support, love, insightful, or funny to a LinkedIn post.The media handler checks that local files exist, are non-empty, and use a supported type. Unresolved company names remain visible as preview warnings, and the post may still be published without those mentions.
The timkulbaev/mcp-linkedin MCP server requires an active Unipile account connected to LinkedIn; it does not manage LinkedIn credentials directly. Reactions are not protected by dry-run mode, so they should be treated as immediate operations. URL media is temporary and is cleaned up after publishing succeeds or fails.
The repository includes unit tests using Node's built-in test runner and a Biome lint script. The documented client examples cover Claude Code and Claude Desktop, while the server is described as usable with other MCP-compatible clients.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/timkulbaev-mcp-linkedin)<a href="https://allmcps.com/mcp/timkulbaev-mcp-linkedin"><img src="https://allmcps.com/api/badge/timkulbaev-mcp-linkedin?style=directory" alt="MCP Linkedin on AllMCPs" /></a>