Skip to main content
Glama
isteamhq

@isteam/linkedin-mcp

by isteamhq

@isteam/linkedin-mcp

npm version License: MIT

MCP server for LinkedIn — post, comment, react, and manage content via AI agents.

Built by is.team — the AI-native project management platform.

Quick Start

Add to your MCP config (.mcp.json for Claude Code, or Claude Desktop settings):

{
  "mcpServers": {
    "linkedin": {
      "command": "npx",
      "args": ["-y", "@isteam/linkedin-mcp"],
      "env": {
        "LINKEDIN_ACCESS_TOKEN": "your-access-token",
        "LINKEDIN_PERSON_ID": "your-person-id"
      }
    }
  }
}

Tools (10)

Content & Engagement

Tool

Description

create_post

Create a LinkedIn text post (max 3000 characters)

create_article_post

Share an article link with commentary

delete_post

Delete a post by URN

comment_on_post

Comment on a post (max 1250 characters)

like_post

Like/react to a post

Profile & Analytics

Tool

Description

get_me

Get authenticated user info

get_post

Get a post by URN (text, author, stats)

get_comments

Get comments on a post

get_own_posts

Get your recent LinkedIn posts

get_post_stats

Get like/comment counts for a post

Environment Variables

Variable

Required

Description

LINKEDIN_ACCESS_TOKEN

Yes

OAuth 2.0 access token

LINKEDIN_PERSON_ID

Yes*

Your LinkedIn person ID (required in member mode)

LINKEDIN_ORGANIZATION_ID

No

Organization ID (for posting as a company page)

LINKEDIN_MODE

No

member (default) or organization

*Required when LINKEDIN_MODE is member (default).

Getting your credentials

  1. Create an app in the LinkedIn Developer Portal

  2. Request the w_member_social and r_liteprofile OAuth scopes

  3. Complete the OAuth 2.0 flow to get an access token

  4. Get your person ID from the /v2/userinfo endpoint

Organization mode

To post as a company page, set LINKEDIN_MODE=organization and provide LINKEDIN_ORGANIZATION_ID:

{
  "env": {
    "LINKEDIN_ACCESS_TOKEN": "your-access-token",
    "LINKEDIN_PERSON_ID": "your-person-id",
    "LINKEDIN_ORGANIZATION_ID": "your-org-id",
    "LINKEDIN_MODE": "organization"
  }
}

Rate Limits & Agent Safety

LinkedIn API enforces per-endpoint rate limits:

Endpoint

Limit

Notes

POST /rest/posts (create post)

1 req/sec, ~100/day

Stricter daily cap on content creation

POST /rest/socialActions/.../comments

2 req/sec

POST /rest/reactions (like)

1 req/sec

GET endpoints (posts, comments, stats)

~100 req/hour

Per authenticated user

General throttle

~60 req/min

Varies by endpoint scope

Idempotency note: LinkedIn does not deduplicate identical posts. If your agent retries on timeout, it may create duplicate content. Use get_own_posts to verify before retrying a create operation.

Backoff: When rate-limited, the API returns 429 with a Retry-After header (seconds). Wait the specified duration before retrying.

Usage Examples

Share a thought leadership post:

"Post on LinkedIn: AI agents are changing how teams collaborate. At is.team, we're building a future where AI joins your standups and ships features alongside you."

Share an article:

"Share this article on LinkedIn with a summary: https://example.com/article-about-ai"

Engage with your network:

"Get my recent LinkedIn posts and show their engagement stats"

About is.team

is.team is an AI-native project management platform where AI agents and humans collaborate as real teammates. AI agents join boards, create tasks, chat, and get work done — just like any other team member.

Part of the is.team open-source MCP ecosystem:

License

MIT