Skip to main content
Glama
MCPWorks-Technologies-Inc

linkedin-pages-mcp

linkedin-pages-mcp

MCP server for managing LinkedIn Company Pages via the official Community Management API. Post content, manage comments, track analytics, and more — all through the Model Context Protocol.

This is the first MCP server for LinkedIn Company Page management using LinkedIn's official API.

Features

Category

Tools

Posts

Create, list, get, update, delete posts (text, images, articles, polls)

Comments

Read, create, and delete comments on behalf of the company page

Reactions

Read reactions, react to posts (LIKE, PRAISE, EMPATHY, INTEREST, APPRECIATION)

Analytics

Follower stats and demographics, page views/clicks, per-post engagement

Media

Initialize image uploads for rich media posts

Organization

Get company page details (name, industry, website, staff count)

16 tools total. All using LinkedIn's official REST API with proper OAuth 2.0 authentication.

Related MCP server: @isteam/linkedin-mcp

Prerequisites

  1. A LinkedIn Developer Application associated with your company page

  2. Community Management API product enabled (apply via the Products tab)

  3. An OAuth 2.0 access token from a user who is an admin of the company page

  4. Your LinkedIn Organization ID (the numeric ID from your company page URL)

Getting your Organization ID

Your company page URL looks like https://www.linkedin.com/company/111806031/ — the number is your Organization ID.

Getting an access token

LinkedIn uses 3-legged OAuth 2.0. You need these scopes:

  • w_organization_social — post and comment on behalf of the company

  • r_organization_social — read posts, comments, and engagement

  • rw_organization_admin — manage page and read analytics

See LinkedIn OAuth documentation for the full flow.

Installation

pip install linkedin-pages-mcp

Or from source:

git clone https://github.com/MCPWorks-Technologies-Inc/linkedin-pages-mcp.git
cd linkedin-pages-mcp
pip install -e .

Configuration

Set environment variables:

export LINKEDIN_ACCESS_TOKEN="your-oauth-token"
export LINKEDIN_ORGANIZATION_ID="111806031"

Or create a .env file (see .env.example).

Usage

With Claude Code / Cursor / any MCP client (stdio)

Add to your .mcp.json:

{
  "mcpServers": {
    "linkedin-pages": {
      "command": "linkedin-pages-mcp",
      "env": {
        "LINKEDIN_ACCESS_TOKEN": "your-oauth-token",
        "LINKEDIN_ORGANIZATION_ID": "111806031"
      }
    }
  }
}

Then ask your AI assistant:

"Post an update to our LinkedIn company page about our latest release"

"Show me our LinkedIn page analytics for this month"

"Reply to the latest comments on our most recent post"

With MCPWorks (remote, token-efficient)

Add as an MCP server plugin on your MCPWorks namespace:

"Add the LinkedIn Pages MCP server to my namespace"

Then your MCPWorks functions can call LinkedIn tools from inside the sandbox:

from functions import mcp__linkedin_pages__linkedin_get_posts
from functions import mcp__linkedin_pages__linkedin_get_follower_stats

posts = mcp__linkedin_pages__linkedin_get_posts(count=5)
stats = mcp__linkedin_pages__linkedin_get_follower_stats(time_granularity="MONTH")

top_post = max(posts['elements'], key=lambda p: p.get('engagement', 0))
result = {
    'followers': stats.get('followerCount'),
    'top_post': top_post.get('commentary', '')[:100],
    'total_posts': len(posts['elements']),
}

All LinkedIn data stays in the sandbox. Only the summary returns to the AI context.

Available Tools

Posts

Tool

Description

linkedin_create_post

Create a text, article, or media post on the company page

linkedin_get_posts

List recent posts (paginated, sorted by last modified)

linkedin_get_post

Get a single post by ID

linkedin_update_post

Update post text/commentary

linkedin_delete_post

Delete a post

Comments

Tool

Description

linkedin_get_comments

Get comments on a post

linkedin_create_comment

Comment on a post as the company page

linkedin_delete_comment

Delete a comment

Reactions

Tool

Description

linkedin_get_reactions

Get reactions on a post

linkedin_react_to_post

React to a post as the company page

Analytics

Tool

Description

linkedin_get_follower_stats

Follower counts and growth over time

linkedin_get_page_stats

Page views and clicks

linkedin_get_post_stats

Per-post engagement (impressions, clicks, likes, comments, shares)

linkedin_get_follower_demographics

Follower breakdown by location, seniority, industry, company size

Media

Tool

Description

linkedin_init_image_upload

Get an upload URL and media URN for image posts

Organization

Tool

Description

linkedin_get_organization

Get company page details

LinkedIn API Limits

Tier

Calls/App/Day

Calls/Member/Day

Webhooks

Development

500

100

No

Standard

Unrestricted

Unrestricted

Yes

Development tier is granted on application. Standard tier requires a video demo review by LinkedIn (~60 days).

License

MIT License. See LICENSE.

Built by MCPWorks Technologies Inc.

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MCPWorks-Technologies-Inc/linkedin-pages-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server