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… | contentType | Media required? | Notes |
|---|---|---|---|
| Text only | TEXT | No | Max 3,000 chars |
| Image(s) | IMAGE | Yes — 1–20 images | Max 5 MB per image |
| A video | VIDEO | Yes — 1 video | Max 10 min |
| A PDF document | DOCUMENT | Yes — 1 PDF | Max 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."
)PDF document (carousel-style)
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
| Error | Cause | Fix |
|---|---|---|
INSUFFICIENT_PERMISSIONS | Not Admin or Content Admin of company page | Verify role in LinkedIn Page Admin settings |
CONTENT_TOO_LONG | Over 3,000 characters | Shorten the post text |
DOCUMENT_TOO_LARGE | PDF over 100 MB | Compress the PDF or split into multiple pages |
PAGE_NOT_FOUND | Company page ID mismatch | Re-connect the LinkedIn account and re-select the page |
VIDEO_PROCESSING_FAILED | Unsupported codec or aspect ratio | Re-encode to H.264 MP4 |
INVALID_OAUTH_TOKEN | Token expired or permissions revoked | Re-connect the LinkedIn account in VoxBurst |
RATE_LIMITED | Too many posts in a short window | Wait and retry; LinkedIn limits are per-organization |
Post status partial | LinkedIn published but another platform failed | Call retry_post — LinkedIn won’t be re-posted |
Account requirements
| Requirement | Detail |
|---|---|
| Account type | Personal profile or Company Page |
| Auth method | OAuth 2.0 |
| Key precondition | Company page posts require Admin or Content Admin role on the page |
| Re-connect trigger | Token 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 types | TEXT, IMAGE (1–20), VIDEO, DOCUMENT (PDF) |
| Unsupported content types | CAROUSEL, REEL, STORY |
| Validation gotcha | 3,000 character limit; company pages require Admin or Content Admin role |
| Media gotcha | PDF max 100 MB; video must be H.264 |
| Account gotcha | Company 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 call | create_post(content: "...", accountIds: ["acc_linkedin_abc"], contentType: "TEXT") |
| Example response | { "status": "published", "platforms": [{ "platform": "linkedin", "platformPostUrl": "https://www.linkedin.com/feed/update/..." }] } |
| Recovery path | retry_post for transient errors; re-connect account for permission failures |