Atlas / MCP servers / alinaqi / LinkedIn Browser

LinkedIn BrowserBLOCK

mcp/alinaqi/linkedin-browser

LinkedIn MCP Server for local automation

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
7 6r · 1w · 0d
Transport
stdio
License
—
Stars
55
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

A FastMCP-based server for LinkedIn automation and data extraction using browser automation. This server provides a set of tools for interacting with LinkedIn programmatically while respecting LinkedIn's terms of service and rate limits.

Features

  • Secure Authentication
  • Environment-based credential management
  • Session persistence with encrypted cookie storage
  • Rate limiting protection
  • Automatic session recovery
  • Profile Operations
  • View and extract profile information
  • Search for profiles based on keywords
  • Browse LinkedIn feed
  • Profile visiting capabilities
  • Post Interactions
  • Like posts
  • Comment on posts
  • Read post content and engagement metrics

Prerequisites

  • Python 3.8+
  • Playwright
  • FastMCP library
  • LinkedIn account

Installation

  1. Clone the repository:
git clone [repository-url]
cd mcp-linkedin-server
  1. Create and activate a virtual environment:
python -m venv env
source env/bin/activate  # On Windows: env\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
playwright install chromium
  1. Set up environment variables:

Create a .env file in the root directory with:

[email protected]
LINKEDIN_PASSWORD=your_password
COOKIE_ENCRYPTION_KEY=your_encryption_key  # Optional: will be auto-generated if not provided

Usage

  1. Start the MCP server:
python linkedin_browser_mcp.py
  1. Available Tools:
  • login_linkedin_secure: Securely log in using environment credentials
  • browse_linkedin_feed: Browse and extract posts from feed
  • search_linkedin_profiles: Search for profiles matching criteria
  • view_linkedin_profile: View and extract data from specific profiles
  • interact_with_linkedin_post: Like, comment, or read posts

Example Usage

from fastmcp import FastMCP

# Initialize client
client = FastMCP.connect("http://localhost:8000")

# Log
Read from source at commit dbc1f65c96c1OBSERVED · 2026-10-08
Advertisement
02

Exposed tools (7)

6 read · 1 write · 0 destructive.

ToolRiskDescription
browse_linkedin_feedreadBrowse LinkedIn feed and return recent posts
get_linkedin_profilereadGet LinkedIn profile information
interact_with_linkedin_postwriteInteract with a LinkedIn post (like, comment)
login_linkedinreadOpen LinkedIn login page in browser for manual login.
login_linkedin_securereadOpen LinkedIn login page in browser for manual login using environment credentials as default values.
search_linkedin_profilesreadSearch for LinkedIn profiles matching a query
view_linkedin_profilereadVisit and extract data from a specific LinkedIn profile
03

Trust audit

BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (2 observation(s))
Network
none-observed
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (8)

HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
docs/mcp-server-devs.md:7
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
docs/mcp-server-devs.md:20
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
docs/mcp-server-devs.md:233
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
docs/mcp-server-devs.md:251
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
LOWInventory / provenance · inv.no_license · CWE-1104
Why it matters. no LICENSE file and no repo licence
Fix. add a licence
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
requirements.txt
mcp, fastmcp, python-dotenv, cryptography, asyncio, httpx
Why it matters. 6 requirement(s) not pinned with ==
Fix. pin exact versions
INFOPrompt injection · prompt.credential_read · CWE-94, CWE-1427
docs/mcp-client-devs.md:74
load_dotenv()  # load environment variables from .env
Why it matters. asks the agent to read credentials
INFOSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
docs/mcp-server-devs.md:50
curl -LsSf https://astral.sh/uv/install.sh | sh

Gates applied: no_behavioural_pass, no_license.

Audited 2026-10-08 · audit v0.4.1 · source sha dbc1f65c96c1full audit observations/trust-audit/mcp-server/alinaqi__linkedin-browser.json · Report an issue / request a re-scan
04

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-08dbc1f65c96c1BLOCKD69first audit
05

Questions

What is the LinkedIn Browser MCP server?

LinkedIn MCP Server for local automation

What tools does LinkedIn Browser expose?

7 in total: 6 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is LinkedIn Browser safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (69/100) and found 4 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does LinkedIn Browser need?

It reads COOKIE_ENCRYPTION_KEY and LINKEDIN_PASSWORD from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does LinkedIn Browser run?

It speaks stdio, so it runs as a local process your client starts.

How current is this page?

The grade is for one exact copy of the source (dbc1f65c96c1), read on 2026-10-08. The repository is watched and re-audited when it changes.

Advertisement