LinkedIn Automation MCP Server
# LinkedIn Claude Automation
Full LinkedIn growth automation using Claude Code and a custom LinkedIn MCP server. Runs daily via Windows Task Scheduler with zero manual interaction required.
## What it does
Every day at 2pm automatically:
- Checks your LinkedIn inbox and replies to messages in In English (Serbian also supported) with high-quality, human-feeling responses
- Relevant, high-quality and human-feeling posts
- Sends 7 to 8 personalized connection requests
- Tracks your connection count growth daily
- Prints a full session report
On Monday, Wednesday, and Friday it also:
- Asks you for a post idea (60 second window)
- Auto-generates and publishes a post in your voice if you don't respond
## How it works
This project extends the [linkedin-scraper-mcp](https://github.com/stickerdaniel/linkedin-mcp-server) package by adding two missing tools:
- `create_post` - publishes a post to your LinkedIn profile
- `comment_on_post` - leaves a comment on any LinkedIn post
These tools use browser automation (Patchright/Chromium) to interact with LinkedIn's UI directly.
Claude Code reads a prompt file (`linkedin_daily.md`) that contains detailed instructions for the daily automation. Windows Task Scheduler fires the bat file at 2pm every day.
## Requirements
- Windows PC (always on during automation time)
- [Claude Code](https://claude.ai/code) installed
- [UV](https://astral.sh/uv) installed
- Claude Pro or API access
## Setup
### 1. Install UV
```powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```
### 2. Clone and install the custom MCP
```powershell
git clone https://github.com/dzigi00/linkedin-claude-automation C:\Users\<you>\linkedin-mcp-custom
cd C:\Users\<you>\linkedin-mcp-custom
uv sync
```
### 3. Login to LinkedIn
```powershell
uv run -m linkedin_mcp_server --login
```
A browser opens. Log in to your LinkedIn account. Session is saved automatically.
### 4. Register the MCP with Claude Code
```powershell
claude mcp add linkedin -s user -- "C:\Users\<you>\.local\bin\uv.exe" "--directory" "C:\Users\<you>\linkedin-mcp-custom" "run" "-m" "linkedin_mcp_server" "--transport" "stdio"
```
### 5. Copy the automation files
Copy `linkedin_daily.md` and `run_linkedin.bat` to `C:\Users\<you>\`
Edit `linkedin_daily.md` to match your profile, niche, and content topics.
Edit `run_linkedin.bat` to replace the path with your actual username.
### 6. Schedule with Windows Task Scheduler
- Open Task Scheduler
- Create Basic Task
- Name: LinkedIn Daily
- Trigger: Daily at 2:00 PM
- Action: Start a program
- Program: `C:\Users\<you>\run_linkedin.bat`
- Start in: `C:\Users\<you>`
### 7. Customize for your profile
Before running the automation, open `linkedin_daily.md` and update these sections to match your own profile:
- **Your story** - replace the mechanic to funnel builder background with your own journey
- **Content pillars** - replace the listed topics with your own niche and expertise
- **Target audience** - update the countries, job titles, and industries you want to connect with
- **Brands and clients** - replace AICom, EcomDegree, Publishing.com with your own work history
- **Location exclusions** - update or remove the North Macedonia exclusion based on your situation
- **Voice and tone** - the casual, direct style works for most people but adjust if needed
The `linkedin_daily.md` file is the brain of the automation. Everything Claude does daily is driven by the instructions in that file. Spend 10 minutes personalizing it before your first run.
### 8. Fix: Auto-trust the working directory
By default Claude Code asks "Do you trust this folder?" every first run. To skip this permanently, run this once in PowerShell:
```powershell
$json = Get-Content "C:\Users\<you>\.claude.json" -Raw | ConvertFrom-Json
$json.projects."C:\Users\<you>".hasTrustDialogAccepted = $true
$json | ConvertTo-Json -Depth 100 | Set-Content "C:\Users\<you>\.claude.json" -Encoding utf8
```
Replace `<you>` with your actual Windows username.
## Files
- `linkedin_mcp_server/tools/posting.py` - custom create_post and comment_on_post tools
- `linkedin_daily.md` - daily automation prompt instructions
- `run_linkedin.bat` - Windows Task Scheduler script
## Credit
Built on top of [stickerdaniel/linkedin-mcp-server](https://github.com/stickerdaniel/linkedin-mcp-server). This project adds write capabilities (posting and commenting) that the original package does not include.
## License
MIT
TDQS
Scored across 17 tools
Each tool targets a distinct resource and action: profiles, searches, messaging, feed, session, etc. Even the messaging-related tools (search_conversations, get_inbox, get_conversation, send_message) have clear, non-overlapping purposes. No two tools appear to do the same thing.
All tool names follow a consistent verb_noun pattern in snake_case (get_person_profile, search_jobs, send_message, close_session). The naming is predictable and easy to infer the function of each tool. Minor variations like 'connect_with_person' still fit the overall pattern.
With 17 tools, the server is slightly above the ideal typical range of 3-15 but not excessive. Each tool covers a distinct aspect of LinkedIn automation, so the count is justified for the scope. It feels on the heavier side but still manageable.
The tools cover the primary LinkedIn automation domains: profiles (get, search), companies (search, profile, posts, employees), jobs (search, details), messaging (search, inbox, read, send), connections (send/accept), feed, and session management. Minor gaps exist such as no explicit 'reject connection' or 'create post', but these are not core for most automation workflows. Overall, the surface is well-rounded.