LinkedIn MCP Server
by FilippTrigub
Verified
# LinkedIn MCP Server
Post to LinkedIn directly from Claude Desktop with support for text and media attachments.
## Features
- Post text updates to LinkedIn
- Attach images and videos to posts
- Control post visibility (public/connections)
- OAuth2 authentication flow
- Secure token storage
## Tools
- `authenticate`: Authenticate with LinkedIn
- `create_post`: Create and share posts optionally with media attachments
- state the file path to the relevant media file to attach it to the post
## Setup
1. Create a LinkedIn Developer App:
```
Visit https://www.linkedin.com/developers/apps
Create new app
Add product permissions: Log In to LinkedIn and Share on LinkedIn
Configure OAuth redirect URL: http://localhost:3000/callback
```
2. Install
Install `pipx` if not already installed
```bash
pip install pipx
```
Install linkedin-mcp
```bash
pipx install linkedin-mcp
```
3. Create `.env` file:
```env
LINKEDIN_CLIENT_ID=your_client_id
LINKEDIN_CLIENT_SECRET=your_client_secret
LINKEDIN_REDIRECT_URI=http://localhost:3000/callback
```
## Claude Desktop Configuration
Add the following configuration to `claude-desktop.json`:
```json
{
"mcpServers": {
"linkedin-mcp": {
"command": "linkedin-mcp",
"env": {
"LINKEDIN_CLIENT_ID": "<yours>",
"LINKEDIN_CLIENT_SECRET": "<yours>",
"LINKEDIN_REDIRECT_URI": "<yours>"
}
}
}
}
```
## Development
Clone the repository and install the package in editable mode:
```bash
git clone https://github.com/FilippTrigub/linkedin-mcp.git
cd linkedin-mcp
uv venv
```
Run the server from development directory:
```json
{
"mcpServers": {
"linkedin-mcp": {
"command": "uv",
"args": [
"--directory",
"absolute\\path\\to\\linkedin-mcp",
"run",
"-m",
"linkedin_mcp.server"
],
"env": {
"LINKEDIN_CLIENT_ID": "<yours>",
"LINKEDIN_CLIENT_SECRET": "<yours>",
"LINKEDIN_REDIRECT_URI": "<yours>"
}
}
}
}
```
## License
MIT License