linkedin-mcp-scheduler-ldraney (0.1.2)

Published 2026-03-01 18:24:37 +00:00 by forgejo_admin

Installation

pip install --index-url  linkedin-mcp-scheduler-ldraney

About this package

Standalone MCP server for LinkedIn post scheduling with a publisher daemon

PyPI License: MIT Python 3.10+

linkedin-mcp-scheduler

Schedule and manage LinkedIn posts through conversation with an AI agent. Posts publish reliably on time — locally or in a container.

User Story

You're chatting with your AI agent. You say:

"Schedule that post for tomorrow at 9am"

Done. Then later:

"Show me my queue"

You see everything — what's pending, what published, what failed. You say:

"Actually push that one to Thursday and change the second paragraph"

The agent edits it in-place and reschedules. No cancelling, no re-creating, no UUIDs to copy-paste.

"That failed post from yesterday — retry it now"

Retried. Published. You never opened LinkedIn.

This is what linkedin-mcp-scheduler provides: a standalone MCP server with a reliable publishing daemon, full CRUD on your post queue, and a conversational UX designed for AI agents to manage your LinkedIn presence.

Why a Separate Project

linkedin-mcp wraps the LinkedIn API as MCP tools — posting, engagement, auth. It has basic scheduling, but scheduling is a different problem:

  • It needs a daemon that runs continuously and publishes due posts. The API wrapper doesn't.
  • It needs persistent state (a database) with its own lifecycle. The API wrapper is stateless.
  • It needs to be containerizable — running in k8s with a volume-backed DB, HTTP transport, and env-based credentials. The API wrapper runs fine as a local stdio MCP.
  • The UX surface area is large enough to be its own product: queue management, editing, rescheduling, retries, media scheduling, recurring posts.

Architecture

┌──────────────────────────────────────┐
│  Container (or local)                │
│                                      │
│  MCP Server (HTTP/SSE)               │
│    - schedule, list, edit, cancel     │
│    - reschedule, retry, queue summary │
│     ↕ reads/writes                   │
│  SQLite DB  ← persistent volume      │
│     ↕ reads/writes                   │
│  Publisher Daemon (poll loop)         │
│    - publishes due posts via SDK      │
│    - retries failures                 │
│                                      │
└──────────────────────────────────────┘

Both processes share one SQLite database. In a container, the DB lives on a persistent volume. Locally, it defaults to ~/.linkedin-mcp-scheduler/scheduled.db.

Deployment Modes

  • Local: uv run linkedin-mcp-scheduler — stdio MCP for Claude Code, daemon as a background process or launchd job
  • Container: docker-compose with HTTP transport, volume-mounted DB, env-var credentials — ready to lift into k8s

MCP Tools

Core (from linkedin-mcp, to be extracted)

Tool Description
schedule_post Schedule a text post (+ optional URL) for future publication
list_scheduled_posts List scheduled posts, filterable by status
get_scheduled_post Get details of a specific scheduled post
cancel_scheduled_post Cancel a pending scheduled post

Planned

Tool Description
update_scheduled_post Edit content, URL, or visibility of a pending post in-place
reschedule_post Change the scheduled time of a pending post
retry_failed_post Retry a failed post, optionally at a new time
queue_summary Formatted overview: counts by status, next due, recent failures
schedule_post_with_image Schedule a post with an image attachment
schedule_post_with_document Schedule a post with a document attachment
schedule_post_with_poll Schedule a post with a poll

Status

Early stage — establishing scope, setting up the project, and creating issues for the build-out.

Requirements

Requires Python: >=3.10
Details
PyPI
2026-03-01 18:24:37 +00:00
2
33 KiB
Assets (2)
Versions (1) View all
0.1.2 2026-03-01