linkedin-company-admin-mcp

linkedin-company-admin-mcp

MCP server for LinkedIn Company Page administration. Enables reading analytics, managing posts, editing page details, growing followers, and bridging personal profile for employee advocacy workflows.

Category
访问服务器

README

linkedin-company-admin-mcp

Language: English - Romana

PyPI Python License: MIT CI Code style: ruff Checked with mypy

MCP server for LinkedIn Company Page administration. Read analytics, manage posts, edit page details, grow followers, and bridge your personal profile for employee advocacy workflows.

Complementary to stickerdaniel/linkedin-mcp-server. Stickerdaniel's project covers personal LinkedIn use cases (feed, messaging, search). This project fills the gap nobody else fills: full administrative control of your LinkedIn Company Page, plus a small set of personal-profile bridge tools used exclusively for employee-advocacy flows.

⚠️ Terms of Service & account risk. LinkedIn's User Agreement prohibits automated access to the platform. This server drives a real browser session on your behalf and LinkedIn may detect, rate-limit, or permanently restrict accounts that use it - including loss of access to the Company Page itself. Use at your own risk. Do not use this on a personal or business account you cannot afford to lose. There is no way for the authors to recover a restricted account for you. Prefer LinkedIn's Community Management API if you qualify for it.

🔐 Security note - session dir equals credentials. "No credentials stored" means this server never asks for your password and never puts one in a config file. It does not mean the profile directory is safe to share. After login, ~/.linkedin-company-admin/profile contains LinkedIn session cookies that are functionally equivalent to your password + 2FA combined. Anyone who reads that directory gets full admin access to your account and Company Page. In particular: do not sync this directory to OneDrive / iCloud / Dropbox / any cloud backup. Keep it on local disk only, on a machine you trust.

Why this project

LinkedIn's official Community Management API is invite-only. Scraping personal profiles is already well covered. What was missing: a stable, browser-first MCP that lets a page admin (or their assistant LLM) read analytics, draft posts, edit the about section, invite followers, and tag the page from a personal post - without any of it touching a stored password.

Features at a glance

  • 24 MCP tools across 6 categories - see Tool reference below.
  • Zero credentials on disk. Interactive login via a visible Chromium window; session lives in a persistent profile directory (chmod 0o700 on Unix).
  • Stealth Chromium via Patchright (anti-detection fork of Playwright).
  • Provider abstraction (AdminProvider, PostsProvider) so a future Community Management API backend can slot in without rewriting tools.
  • Rate limiting actually applied (not just imported) - every write tool has a conservative hourly cap.
  • aria-label / role / innerText selectors only - no obfuscated CSS class hashes. When LinkedIn ships a new UI, only selectors/__init__.py changes.
  • No god-files (cap ~300 LOC per file), type-checked with mypy, linted with ruff.

Installation

Option 1: uvx (recommended)

Published on PyPI as linkedin-company-admin-mcp.

uvx linkedin-company-admin-mcp@latest --login

Then add to your Claude Desktop config (~/.config/Claude/claude_desktop_config.json or platform equivalent):

{
  "mcpServers": {
    "linkedin-company-admin": {
      "command": "uvx",
      "args": ["linkedin-company-admin-mcp@latest"]
    }
  }
}

Option 2: Local development

git clone https://github.com/negrueu/linkedin-company-admin-mcp.git
cd linkedin-company-admin-mcp
uv sync
uv run linkedin-company-admin-mcp --login

Option 3: Docker

docker build -t linkedin-company-admin-mcp .
docker run --rm -it \
  -v linkedin_profile:/home/mcp/.linkedin-company-admin \
  linkedin-company-admin-mcp --login

First-time login

Credentials are never stored in this server. Login is interactive:

uvx linkedin-company-admin-mcp --login

A visible Chromium window opens. Sign in to LinkedIn normally (including 2FA). The persistent browser profile is saved to ~/.linkedin-company-admin/profile (chmod 0o700 on Unix). All subsequent MCP calls reuse this session automatically.

To log out: uvx linkedin-company-admin-mcp --logout (wipes the profile directory).

Tool reference

Full argument lists and examples live in docs/TOOL_REFERENCE.md. Summary:

Session (3)

Tool Purpose
session_status Is the persistent profile live and logged in?
session_warmup Pre-open the browser + /feed/ to reduce first-call latency.
session_logout Close the browser and wipe the profile directory.

Company read (6)

Tool Purpose
company_read_page Name, tagline, followers, about, industry, website.
company_list_posts Recent posts with URN, text, reactions, comments.
company_list_followers Followers list (admin-only; paginated).
company_list_mentions Posts that mentioned the page (admin notifications).
company_manage_admins List admins and their roles.
company_analytics Followers / posts metrics for a 7d / 28d / 90d window.

Company admin write (3)

Tool Purpose
company_edit_about Update the About section (with tagline fallback).
company_edit_logo Upload a new logo (and optional banner).
company_update_details Website, industry, size, specialties.

Company content (6)

Tool Purpose
company_create_post Publish a text post (optional link / image).
company_edit_post Replace the body of an existing post.
company_delete_post Permanent delete - see docs/RCA_DELETE_POST.md.
company_schedule_post Publish at a future ISO-8601 datetime.
company_reply_comment Reply as the page to a comment on one of your posts.
company_reshare_post Reshare another post on the page, optional commentary.

Company growth (2)

Tool Purpose
company_invite_to_follow Send follow invitations to 1st-degree connections (LinkedIn caps 250/month).
company_list_scheduled List posts queued for future publication.

Personal -> Company bridge (4)

Tool Purpose
personal_tag_company Publish a personal post that @-mentions the page.
personal_reshare_company_post Reshare a page post on your personal profile.
personal_comment_as_admin Comment on a page post as the page (or as you).
personal_read_company_mentions Scan your recent activity for posts that tag the page.

Security model

  • No email/password handling. Credentials never touch this code.
  • Session state lives in a persistent browser profile directory, isolated per OS user, outside the repo.
  • .env contains only configuration (log level, transport, tool timeout). No secrets.
  • The profile directory is chmod'd to 0o700 on first login (Unix).
  • Rate limiting is enforced per-tool; the caps are conservative by design, tuned to what LinkedIn tolerates rather than what it allows.

Supported workflows

  • Draft, review, and publish a post on your company page from Claude.
  • Tag the page from a personal post and track how the community responds.
  • Audit who has posted about your page this week (admin mentions).
  • Invite a batch of 1st-degree connections to follow the page, stopping at LinkedIn's monthly quota.
  • Run a full CRUD pass on scheduled posts before a launch.

See docs/TOOL_REFERENCE.md for end-to-end examples.

Troubleshooting

Selector drift, captcha, rate limits, cookie expiry and Chromium launch issues are all covered in docs/TROUBLESHOOTING.md.

Contributing

Contributions welcome. See docs/CONTRIBUTING.md for local setup, test layout, and the workflow for adding a new tool.

Status

Under active development. See CHANGELOG.md for version history and issues for the roadmap.

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选