Quillpost
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Quillpostdraft a news-style LinkedIn post about our agent launch and preview it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Quillpost is a CLI and an MCP server that publishes to your own LinkedIn profile using LinkedIn's official REST API and OAuth 2.0. No scraping, no browser automation, no third-party service in the middle. It speaks plain MCP over stdio, so it works with any MCP-capable agent (Claude Code and Desktop, Cursor, VS Code / Copilot, Windsurf, Cline, Gemini CLI, Codex CLI and others).
Not affiliated with or endorsed by LinkedIn.
Why
LinkedIn renders plain text only. Markdown from an AI draft shows up as literal **asterisks** and # signs, the feed cuts your post after about 210 characters, and links in the body hurt reach. Quillpost fixes the structure for you:
Styles build a well-formed post from a few fields (hook, items, takeaway, question, hashtags).
Checks catch markdown, over-long hooks, link-in-body and hashtag problems before anything is published.
Safe for agents. An agent can only preview. Publishing needs an explicit approval flag that the agent is told to set only after you say yes in chat.
Related MCP server: mcp-server-linkedin
Quick start
git clone https://github.com/ApiCartOps/quillpost.git
cd quillpost
npm install
npm link # puts `quillpost` on your PATH (or run: node src/cli.js)
quillpost setup --client-id=YOUR_ID --client-secret=YOUR_SECRET
quillpost login
quillpost whoamiYou need a free LinkedIn developer app with two products enabled. Getting started walks through it in five minutes.
Write your first post:
quillpost preview --style=news \
--hook="Three agent releases this week that change how teams ship." \
--item="Walmart launched an MCP server so approved agents can shop. Retail is writing agent access rules." \
--item="OpenAI published two agent incidents. Oversight has to be hard to switch off." \
--takeaway="Agents are getting real access, and controls are becoming the product." \
--cta="Which of these affects your team first?" \
--tag=AIAgents --tag=AgenticAI --tag=TechNews────────────────────────────────────────────
Three agent releases this week that change how teams ship.
→ Walmart launched an MCP server so approved agents can shop. Retail is writing agent access rules.
→ OpenAI published two agent incidents. Oversight has to be hard to switch off.
Agents are getting real access, and controls are becoming the product.
Which of these affects your team first?
#AIAgents #AgenticAI #TechNews
────────────────────────────────────────────
PUBLIC · 385 chars · hook 58 · 3 hashtags · 0 links
feed cut ("see more"): Three agent releases this week that change how teams ship. ↵ → Walmart launched an MCP server so approved agents can shop. Retail is writing agent access rules. ↵ → OpenAI published two agent incidents.…Change preview to post to publish. Add --dry-run to any post to check it without publishing.
Post styles
Style | For | Layout |
| Launches, releases, milestones | hook, intro, → items, question |
| Opinions with reasons | hook, intro, numbered points, takeaway, question |
| Roundups and commentary | hook, → items, takeaway, question |
| Personal stories | hook, paragraphs, lesson, question |
| Tutorials and checklists | hook, numbered steps, question |
| Tips, tools, mistakes | hook, numbered items, takeaway |
| Discussion starters | hook, context, options, prompt |
quillpost styles news shows one with a full example. See Post styles for every field and check.
Already have text from somewhere else? Skip styles: quillpost post --text-file=draft.md --plain converts markdown to LinkedIn plain text and can pull the links out for a first comment.
More than text
quillpost post "New release is out" --link=https://example.com/release --link-title="Release notes"
quillpost post --text-file=post.txt --image=chart.png --alt="Chart of weekly signups"
quillpost post --text-file=post.txt --document=deck.pdf --doc-title="Q3 review"
quillpost post --text-file=post.txt --comment="Sources: https://example.com/a"Images (1 to 20), a PDF or Office document as a swipeable carousel, and link preview cards are covered in Rich posts.
The first comment needs partner access. LinkedIn restricts commenting through its API to approved partners, so on a self-serve app
--commentis refused with a 403. The post still publishes, and Quillpost prints the comment text so you can paste it yourself.
Drafts, schedule and follow-up
quillpost draft save --style=story --hook="..." --item="..." --item="..."
quillpost draft publish a1b2c3
quillpost schedule add --at="2026-10-23 09:00" --text-file=post.txt
quillpost schedule watch # publishes due posts while it runs
quillpost posts # what you published through Quillpost
quillpost delete lastquillpost comment and quillpost react exist too, but LinkedIn only allows them for partner apps (see below), so on a self-serve app they fail with a clear message.
LinkedIn's API has no native scheduling, so the schedule is a local queue. See Scheduling for how to run it from Task Scheduler, cron or launchd.
Use it from an AI agent
claude mcp add quillpost --scope user -- node /absolute/path/to/quillpost/src/cli.js mcpOther clients: quillpost config prints the standard mcpServers snippet. MCP guide covers every tool, the approval model and client configs.
Tool | What it does |
| Browse styles; build and check a post without publishing |
| Publish. Only previews unless |
| Delete a post. Needs |
| Partner-only on LinkedIn's side; fail with 403 on self-serve apps |
| Save, list, show, delete and publish drafts |
| Queue, list, cancel and run scheduled posts |
| Your Quillpost posts; the signed-in account |
Server instructions, one prompt per style (write_news, write_howto, ...) and a quillpost://styles resource are included. The .claude/ folder has a Claude Code skill and slash commands (/quillpost-post, /quillpost-preview, /quillpost-delete).
What it can and cannot do
Quillpost uses only LinkedIn's self-serve products, so it covers your own profile: posting text, images, documents and link cards, and deleting. Reading your feed, searching, analytics, connections, messaging and commenting and reactions need partner approval (the Community Management API) and are not available on a self-serve app. Posts are always published as you.
Status (verified against the live LinkedIn API): text posts, document carousels and deleting work. Commenting is refused with
403 ACCESS_DENIEDon a self-serve app, and reactions very likely are too; Quillpost reports this clearly and still publishes the post. Images and link cards follow LinkedIn's documented request shapes and are covered by an offline test suite with a fake API, but have not been confirmed live. If one behaves differently on your account, please open an issue with the error text.
Security
Credentials and the access token live in
~/.quillpost/(file mode 600), never in the repo.Nothing publishes from an agent without an explicit approval flag; previews are always free.
Access tokens last about 60 days; run
quillpost loginagain when one expires.
See SECURITY.md.
Docs
Getting started · Post styles · Rich posts · CLI reference · MCP guide · Scheduling · Troubleshooting · FAQ · Changelog · Contributing
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Schedule and publish LinkedIn posts to profiles and company pages from AI agents.
Draft LinkedIn posts in your voice, then schedule or publish them through LinkedIn's official API.
LinkedIn for AI agents: inbox, invitations, Sales Navigator search, posts, jobs, quotas, webhooks.
Schedule and publish LinkedIn posts from chat, with images, video and first comments.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables AI agents to manage LinkedIn profiles, posts, connections, skills, education, and certifications through the LinkedIn API.18176 npm64MIT
- AlicenseAqualityDmaintenanceEnables AI agents to publish posts, images, videos, and articles to LinkedIn.10MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to audit professional profiles, check policy compliance, preview posts, and publish explicitly confirmed text posts through LinkedIn's official API.MIT
- AlicenseBqualityBmaintenanceEnables AI agents to manage LinkedIn profiles, posts, connections, skills, education, certifications, and other professional data through the LinkedIn API.19MIT