Skip to Content
GuidesPost to LinkedIn via MCP

Post to LinkedIn via MCP

Quick navigation: Which path should I use? · Multi-platform example · Recovery playbook · All 9 platforms at a glance

Prerequisites: VoxBurst MCP server configured. See MCP Server setup.


The complete flow

Find the LinkedIn account ID

list_accounts()

Look for "platform": "linkedin". Note whether it is a personal profile or a company page — company pages require Admin or Content Admin access.

Optionally validate content first

validate_content( content: "Your LinkedIn post text", platforms: ["LINKEDIN"] )

Create the post

See post type examples below.

Check the result

get_post(postId: "post_abc123")
{ "id": "post_abc123", "status": "published", "platforms": [ { "platform": "linkedin", "status": "published", "platformPostUrl": "https://www.linkedin.com/feed/update/urn:li:share:123456789/", "publishedAt": "2026-06-01T09:00:05Z", "error": null } ] }

What type of post do you want?

I want to post…contentTypeMedia required?Notes
Text onlyTEXTNoMax 3,000 chars
Image(s)IMAGEYes — 1–20 imagesMax 5 MB per image
A videoVIDEOYes — 1 videoMax 10 min
A PDF documentDOCUMENTYes — 1 PDFMax 100 MB, 300 pages

Media input options:

  • mediaUrls — public HTTPS image/video URLs (auto-registered)
  • mediaIds — VoxBurst media IDs from prior uploads

Post type examples

Text article / thought leadership

create_post( content: "After 5 years of building remote teams, here is what actually works:\n\n1. Async-first communication\n2. Written decisions over verbal ones\n3. Trust through transparency, not surveillance\n\nThe biggest mistake? Replicating office culture online. Remote-first is a different paradigm entirely.", accountIds: ["acc_linkedin_abc123"], contentType: "TEXT" )

Image post

create_post( content: "Excited to share the results of our Q1 growth sprint. The numbers speak for themselves.", accountIds: ["acc_linkedin_abc123"], contentType: "IMAGE", mediaUrls: ["https://cdn.example.com/q1-results.jpg"] )

Multiple images

create_post( content: "Our team at the product launch. Three cities, one mission.", accountIds: ["acc_linkedin_abc123"], contentType: "IMAGE", mediaUrls: [ "https://cdn.example.com/sf-team.jpg", "https://cdn.example.com/ny-team.jpg", "https://cdn.example.com/london-team.jpg" ] )

Video post

create_post( content: "3-minute walkthrough of our new analytics dashboard. Drop your questions in the comments.", accountIds: ["acc_linkedin_abc123"], contentType: "VIDEO", mediaIds: ["media_video_abc123"], firstComment: "Full tutorial in the description. Subscribe for more." )
create_post( content: "We just published our 2026 State of Content Marketing report. Key findings inside.", accountIds: ["acc_linkedin_abc123"], contentType: "DOCUMENT", mediaIds: ["media_pdf_report_abc123"] )

Scheduled post

create_post( content: "Big news today. We are thrilled to announce our Series A. Full story below.", accountIds: ["acc_linkedin_abc123"], contentType: "TEXT", scheduledFor: "2026-06-02T09:00:00Z" )

Tell your AI agent this

Text post, post now:

Post to LinkedIn account [acc_id]. Content: [your post text]. Post now.

Image, scheduled:

Post to LinkedIn account [acc_id]. Content: [text]. Attach image: [https://...]. Schedule for [ISO timestamp].

PDF document:

Post a document to LinkedIn account [acc_id]. Caption: [text]. Use VoxBurst media ID [media_id] for the PDF.

Validate before posting:

Validate this LinkedIn post before creating it: [post text]. Check character limits and flag any issues.


Failure cookbook

ErrorCauseFix
INSUFFICIENT_PERMISSIONSNot Admin or Content Admin of company pageVerify role in LinkedIn Page Admin settings
CONTENT_TOO_LONGOver 3,000 charactersShorten the post text
DOCUMENT_TOO_LARGEPDF over 100 MBCompress the PDF or split into multiple pages
PAGE_NOT_FOUNDCompany page ID mismatchRe-connect the LinkedIn account and re-select the page
VIDEO_PROCESSING_FAILEDUnsupported codec or aspect ratioRe-encode to H.264 MP4
INVALID_OAUTH_TOKENToken expired or permissions revokedRe-connect the LinkedIn account in VoxBurst
RATE_LIMITEDToo many posts in a short windowWait and retry; LinkedIn limits are per-organization
Post status partialLinkedIn published but another platform failedCall retry_post — LinkedIn won’t be re-posted

Account requirements

RequirementDetail
Account typePersonal profile or Company Page
Auth methodOAuth 2.0
Key preconditionCompany page posts require Admin or Content Admin role on the page
Re-connect triggerToken expires; re-connect from VoxBurst Settings → Connected Accounts

When LinkedIn is a poor fit

  • Casual or viral content — LinkedIn’s professional audience responds better to value-driven posts than memes or trend-chasing
  • GIF-heavy posts — GIFs are not natively supported
  • Time-sensitive content needing wide reach — LinkedIn’s algorithm is slower to distribute than Twitter or Instagram
  • Content over 3,000 characters — the post will be rejected at validation
  • Personal profiles for brand publishing — LinkedIn’s API has limited access for personal profiles; use a Company Page for brand content

Cross-platform override example

LinkedIn benefits from a longer, professional caption when posting the same content to multiple platforms:

create_post( content: "Launching our new integration today.", accountIds: ["acc_linkedin_ghi", "acc_twitter_def", "acc_instagram_abc"], contentType: "IMAGE", mediaUrls: ["https://cdn.example.com/integration-launch.jpg"], platformOverrides: { "LINKEDIN": { "content": "Today we are launching our integration with Salesforce CRM. After six months of development and feedback from 200+ beta users, it is ready. Here is what it does and how to get started." }, "TWITTER": { "content": "New: Salesforce integration is live 🔗 #CRM #productivity" } }, firstComment: "Link to full documentation in the comments." )

See the same post across all platforms guide for a full 8-platform example.


Benchmark checklist

Last updated: 2026-05-31 — Added JSON tool-call examples and benchmark checklist.

Supported content typesTEXT, IMAGE (1–20), VIDEO, DOCUMENT (PDF)
Unsupported content typesCAROUSEL, REEL, STORY
Validation gotcha3,000 character limit; company pages require Admin or Content Admin role
Media gotchaPDF max 100 MB; video must be H.264
Account gotchaCompany page posts fail if account lacks Admin role in LinkedIn
Example prompt”Post to LinkedIn account acc_id. Content: text. Content type: TEXT.”
Example tool callcreate_post(content: "...", accountIds: ["acc_linkedin_abc"], contentType: "TEXT")
Example response{ "status": "published", "platforms": [{ "platform": "linkedin", "platformPostUrl": "https://www.linkedin.com/feed/update/..." }] }
Recovery pathretry_post for transient errors; re-connect account for permission failures
Last updated on