LinkedIn Content Planner MCP
Enables AI agents to draft, format, and manage LinkedIn posts through a review pipeline, with human approval via a web UI before publication.
README
LinkedIn Content Planner (MCP)
A LinkedIn content pipeline built for AI agents, not humans typing into a text box. Your agent
(Claude Code, Claude Desktop, or any MCP-compatible client, on
whatever schedule you run it — cron, an agent loop, a chat session) drafts, formats, and moves
posts through a review pipeline by calling MCP tools directly: create_post,
update_post_content, submit_review, and more. A human just reviews, comments, and
approves/requests changes from the web UI before anything goes live — the same shape as reviewing
a PR before merge, not manually operating a scheduling tool.
Multi-tenant and OAuth-secured out of the box: agents authenticate against the planner's own OAuth 2.1 authorization server (PKCE, dynamic client registration) and every MCP call is scoped to the caller's workspace.
See PLAN.md and ARCHITECTURE.md for the full design.
Local development
Requirements: Node 20+, pnpm, a Postgres 16 instance (via infra/docker-compose.yml or a local install).
# 1. Start Postgres
docker compose -f infra/docker-compose.yml up -d
# (or point DATABASE_URL at any local Postgres 16 instance)
# 2. Install dependencies
pnpm install
# 3. Configure env
cp apps/server/.env.example apps/server/.env
# edit DATABASE_URL if not using the default docker-compose credentials
# 4. Generate + run migrations, seed default workspace
pnpm --filter @linkedin-planner/db generate
DATABASE_URL=postgres://linkedin_planner:linkedin_planner@localhost:5432/linkedin_planner_dev pnpm --filter @linkedin-planner/db migrate
DATABASE_URL=postgres://linkedin_planner:linkedin_planner@localhost:5432/linkedin_planner_dev pnpm --filter @linkedin-planner/db seed
# 5. Run the server
pnpm dev:server
MCP tool surface
Posts: create_post, list_posts, get_post, update_post_content, str_replace_post_content,
set_post_state, set_post_date, delete_post. Versions: list_versions, get_version_diff,
revert_to_version. Review: submit_review, list_reviews. Comments: add_comment,
list_comments, resolve_comment. Attachments: attach_file, list_attachments. Preview:
render_preview. Webhooks (subscribe to post lifecycle events): create_webhook,
list_webhooks, update_webhook, delete_webhook, list_webhook_deliveries. Full tool schemas
are served at the /mcp endpoint itself; see PLAN.md for the design rationale behind
each.
Monorepo layout
apps/server— REST API + MCP server (Streamable HTTP at/mcp), same process, same core logic.apps/web— React UI: backlog, calendar, post review.packages/core— domain types and service layer shared by REST and MCP.packages/formatting— markdown-subset ⇄ LinkedIn Unicode formatting.packages/db— Drizzle ORM schema and migrations.
License
PolyForm Noncommercial License 1.0.0. Source-available, not OSI open source: free to use, modify, and self-host for any noncommercial purpose; any commercial or paid use requires a separate license from Theona, Inc.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.