LinkedIn Automation MCP Server
An MCP server for LinkedIn automation that provides tools for automatically posting messages to LinkedIn, scheduling posts, and managing LinkedIn API integration.
README
LinkedIn Automation MCP Server
An MCP (Model Context Protocol) server for LinkedIn automation that provides tools for automatically posting messages to LinkedIn, scheduling posts, and managing LinkedIn API integration.
Features
- Authentication: OAuth2 authentication with LinkedIn API
- Text Posts: Create and publish text posts to LinkedIn
- Image Posts: Upload and post images with text content
- Post Scheduling: Schedule posts to be published at specific times
- Profile Management: Get authenticated user's LinkedIn profile information
- Scheduled Post Management: View, cancel, and manage scheduled posts
Installation
- Clone this repository
- Install dependencies:
npm install - Build the project:
npm run build
Configuration
Before using this MCP server, you need to:
-
Create a LinkedIn App:
- Go to LinkedIn Developer Portal
- Create a new app and get your Client ID and Client Secret
- Configure OAuth redirect URLs
-
Get an Access Token:
- Implement OAuth2 flow to get an access token
- The access token needs the following scopes:
r_liteprofile(read profile information)r_emailaddress(read email address)w_member_social(write posts)
Tools Available
authenticate_linkedin
Authenticate with LinkedIn using an OAuth2 access token.
Parameters:
accessToken(string): LinkedIn OAuth2 access token
post_to_linkedin
Post a text message to LinkedIn.
Parameters:
text(string): The text content of the post (1-3000 characters)visibility(string): Post visibility - "PUBLIC", "CONNECTIONS", or "LOGGED_IN_MEMBERS" (default: "PUBLIC")
post_image_to_linkedin
Post an image with text to LinkedIn.
Parameters:
text(string): The text content of the post (1-3000 characters)imageUrl(string): URL of the image to include in the postaltText(string, optional): Alternative text for the imagevisibility(string): Post visibility - "PUBLIC", "CONNECTIONS", or "LOGGED_IN_MEMBERS" (default: "PUBLIC")
schedule_linkedin_post
Schedule a post to be published later on LinkedIn.
Parameters:
text(string): The text content of the post (1-3000 characters)scheduledTime(string): ISO 8601 timestamp for when to publish the postvisibility(string): Post visibility - "PUBLIC", "CONNECTIONS", or "LOGGED_IN_MEMBERS" (default: "PUBLIC")
get_linkedin_profile
Get the authenticated user's LinkedIn profile information.
Parameters: None
get_scheduled_posts
Get all scheduled posts.
Parameters: None
cancel_scheduled_post
Cancel a scheduled post.
Parameters:
scheduleId(string): The ID of the scheduled post to cancel
Usage with Claude Desktop
-
Build the server:
npm run build -
Add to Claude Desktop configuration (
claude_desktop_config.json):{ "mcpServers": { "linkedin-automation": { "command": "node", "args": ["/absolute/path/to/linkedin-automation-mcp/build/index.js"] } } } -
Restart Claude Desktop
Development
# Install dependencies
npm install
# Build the project
npm run build
# Run the server (for testing)
npm start
# Development mode (build and run)
npm run dev
LinkedIn API Rate Limits
This server respects LinkedIn API rate limits:
- Rate limit information is tracked and logged
- Automatic retry with backoff for rate-limited requests
- Best practices for API usage
Security Considerations
- Access Tokens: Never commit access tokens to version control
- Scopes: Only request necessary OAuth scopes
- Rate Limiting: Respect LinkedIn's API rate limits
- Error Handling: Proper error handling for API failures
Error Handling
The server includes comprehensive error handling for:
- Authentication failures
- API rate limits
- Network errors
- Invalid parameters
- LinkedIn API errors
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
License
MIT License - see LICENSE file for details
Support
For issues and questions:
- Check the LinkedIn Developer Documentation
- Review the MCP documentation at https://modelcontextprotocol.io/
- Create an issue in this repository
Disclaimer
This project is not officially affiliated with LinkedIn. Use in accordance with LinkedIn's API Terms of Service and Community Guidelines.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.