From 49c26e03656284b46e41ac3a7d45d8b41658ec7d Mon Sep 17 00:00:00 2001 From: zgaetano Date: Tue, 31 Mar 2026 15:33:44 -0400 Subject: [PATCH] Add linkedin-mcp/SETUP.md --- linkedin-mcp/SETUP.md | 170 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 linkedin-mcp/SETUP.md diff --git a/linkedin-mcp/SETUP.md b/linkedin-mcp/SETUP.md new file mode 100644 index 0000000..79c969d --- /dev/null +++ b/linkedin-mcp/SETUP.md @@ -0,0 +1,170 @@ +# LinkedIn MCP Server Setup + +## Prerequisites + +1. **Python 3.12+** on your host machine +2. **LinkedIn account** with valid credentials +3. **Create LinkedIn profile locally** (one-time setup) + +## Step 1: Install LinkedIn MCP (Host Machine) + +Run this on your **host machine** (not in Docker): + +```bash +pip install linkedin-scraper-mcp +``` + +## Step 2: Create LinkedIn Profile (One-time Authentication) + +Run this command to authenticate and create your profile: + +```bash +linkedin-mcp-server --login +``` + +Or use the alternate command: + +```bash +linkedin-scraper-mcp --login +``` + +This will: +- Open a browser window +- Ask you to log into LinkedIn +- Handle captcha challenges (manual solving required) +- Save your session at `~/.linkedin-mcp/profile/` + +**Important:** Only one active LinkedIn session is supported. If you need to re-authenticate: +```bash +rm -rf ~/.linkedin-mcp/profile +linkedin-mcp-server --login +``` + +## Step 3: Build Docker Image + +```bash +cd /mnt/NVME/Docker/mcp-gateway +docker compose build linkedin-mcp +``` + +## Step 4: Start the Service + +```bash +docker compose up linkedin-mcp +``` + +The service is already configured in your `docker-compose.yml` with: +- Python 3.12 slim image +- LinkedIn profile mounted from `~/.linkedin-mcp/profile` +- LOG_LEVEL environment variable from `.env` +- Automatic restart + +## Configuration Options + +### Environment Variables (in .env) + +```env +# LinkedIn MCP Server +LINKEDIN_LOG_LEVEL=INFO +LINKEDIN_TIMEOUT=10000 +``` + +### Available Log Levels + +- `DEBUG` - Detailed logging +- `INFO` - Standard logging (recommended) +- `WARNING` - Only warnings and errors +- `ERROR` - Only errors + +## Docker Integration + +The Dockerfile: +- Uses `python:3.12-slim` as base image +- Clones the GitHub repository +- Installs dependencies with pip +- Mounts profile from host at `~/.linkedin-mcp/profile:/root/.linkedin-mcp/profile` + +## Troubleshooting + +### Profile Not Found +```bash +# Verify profile exists on host +ls ~/.linkedin-mcp/profile + +# Create new profile if missing +linkedin-mcp-server --login +``` + +### Build Fails - Git Clone Issues +- Ensure you have internet access +- Check git is installed: `git --version` +- Try manual clone first: `git clone https://github.com/stickerdaniel/linkedin-mcp-server.git` + +### Container Won't Start +Check the logs: +```bash +docker logs mcp-linkedin + +# Restart container +docker compose restart mcp-linkedin +``` + +### Session Expired +LinkedIn sessions may expire. To refresh: +```bash +# Delete old profile +rm -rf ~/.linkedin-mcp/profile + +# Create new profile +linkedin-mcp-server --login + +# Restart container +docker compose restart mcp-linkedin +``` + +### Captcha Loop +If you keep hitting captchas: +1. Create profile manually on your machine first +2. Mount that profile into Docker +3. Run with `--no-headless` temporarily to debug + +## Integration with Gateway Proxy + +The gateway proxy (`gateway_proxy.py`) should have: + +```python +MCP_BACKEND_LINKEDIN=http://mcp-linkedin:3000/mcp +``` + +This is already configured in the docker-compose.yml. + +## Verification + +Test the connection: + +```bash +# Check if container is running +docker ps | grep mcp-linkedin + +# View logs +docker logs mcp-linkedin + +# Check gateway can reach it +docker exec mcp-gateway curl http://mcp-linkedin:3000/mcp/tools +``` + +## Entry Point + +The container runs: +``` +linkedin-mcp-server --log-level INFO +``` + +This starts the MCP server that communicates with the gateway proxy via HTTP. + +## Performance Notes + +- First run may be slower as Patchright downloads browser dependencies +- Profile authentication takes 30-60 seconds +- Subsequent tool calls should respond in 1-5 seconds +- Browser automation is CPU-intensive; allocate resources accordingly