agentsclimarketplace

Linkedin posting

Skill Eng-Muhammad-Affan/digital-fte/.qwen/skills/linkedin-posting

Personal AI agent that handles social media as well as any social media

Install
npx -y skills add Eng-Muhammad-Affan/digital-fte --skill linkedin-posting

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Post content to LinkedIn using browser automation (Playwright). Supports creating posts, draft posts for approval, and profile info retrieval. Use when tasks require social media posting, business updates, or professional content sharing.

SKILL.md

3.7 KB, as published. Nobody here has run it

LinkedIn Posting Skill

Post to LinkedIn via Playwright-based MCP server built with FastMCP.

MCP Server Setup

Start LinkedIn MCP Server

# Start with stdio transport (for Claude Code integration)
uv run python mcp-servers/linkedin/server.py

# Or start with HTTP transport
uv run python mcp-servers/linkedin/server.py --transport http --port 8802

Configure Claude Code MCP

{
  "mcpServers": {
    "linkedin": {
      "command": "uv",
      "args": ["run", "python", "mcp-servers/linkedin/server.py"]
    }
  }
}

LinkedIn Credentials

Set environment variables:

export [email protected]
export LINKEDIN_PASSWORD=your_password
export PLAYWRIGHT_HEADLESS=true  # Set to 'false' for visible browser

Note: For security, use a credential manager instead of plain text passwords.

Tools

create_post

Create and publish a post on LinkedIn.

uv run python scripts/mcp-client.py call -t create_post -p '{
  "content": "Excited to announce our new product launch! #innovation #startup",
  "hashtags": ["innovation", "startup", "tech"]
}'

Parameters:

  • content (required): Post content text
  • image_path (optional): Path to image to attach
  • hashtags (optional): List of hashtags to append

create_draft_post

Create a draft post for approval (does not publish).

uv run python scripts/mcp-client.py call -t create_draft_post -p '{
  "content": "Our Q1 results are in and we exceeded all targets!",
  "hashtags": ["business", "growth", "success"]
}'

This creates a draft file in /Pending_Approval/ for human review.

get_profile_info

Get current LinkedIn profile information.

uv run python scripts/mcp-client.py call -t get_profile_info -p '{}'

close_session

Close LinkedIn browser session.

uv run python scripts/mcp-client.py call -t close_session -p '{}'

Workflow: Post Business Update

  1. Generate post content based on business goals
  2. Create draft post (creates file in /Pending_Approval/)
  3. Human reviews and moves file to /Approved/
  4. Orchestrator detects approval and publishes post

Workflow: Automated Sales Post

  1. Read Business_Goals.md for messaging
  2. Generate post about services/products
  3. Create draft with hashtags
  4. Await approval
  5. On approval, publish via MCP server

Environment Variables

# LinkedIn credentials
[email protected]
LINKEDIN_PASSWORD=your_password

# Browser settings
PLAYWRIGHT_HEADLESS=true

# Vault path
VAULT_PATH=./vault

# Dry run mode
DRY_RUN=true  # Set to 'false' for production

Approval Workflow

Draft posts are saved to /Pending_Approval/:

---
type: linkedin_post_draft
created: 2026-01-07T10:30:00Z
status: pending_approval
content_length: 150
hashtags: ["business", "growth"]
---

# LinkedIn Post Draft

## Content

Our Q1 results are in and we exceeded all targets!

---

## To Approve
Move this file to /Approved folder.

## To Reject
Move this file to /Rejected folder.

Troubleshooting

IssueSolution
Not logged inCheck credentials, scan QR if needed
Post not publishingCheck DRY_RUN variable
Browser not startingInstall Playwright: uv run playwright install chromium
Session expiredClose session and re-authenticate

Related Skills

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.