LinkedIn Automation MCP Server
by pashaarshad
README.md
# 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
1. Clone this repository
2. Install dependencies:
```bash
npm install
```
3. Build the project:
```bash
npm run build
```
## Configuration
Before using this MCP server, you need to:
1. **Create a LinkedIn App**:
- Go to [LinkedIn Developer Portal](https://developer.linkedin.com/)
- Create a new app and get your Client ID and Client Secret
- Configure OAuth redirect URLs
2. **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 post
- `altText` (string, optional): Alternative text for the image
- `visibility` (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 post
- `visibility` (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
1. Build the server:
```bash
npm run build
```
2. Add to Claude Desktop configuration (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"linkedin-automation": {
"command": "node",
"args": ["/absolute/path/to/linkedin-automation-mcp/build/index.js"]
}
}
}
```
3. Restart Claude Desktop
## Development
```bash
# 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
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Submit a pull request
## License
MIT License - see LICENSE file for details
## Support
For issues and questions:
1. Check the LinkedIn Developer Documentation
2. Review the MCP documentation at https://modelcontextprotocol.io/
3. 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.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues