OpenQuok MCP examples for LinkedIn — text posts, document carousels, and first-comment chains.
Connect your agent today
Draft from chat, review in your calendar, and publish only what you approve.
Channel quick reference
| Property | Personal | Page |
|---|---|---|
| Provider identifier | linkedin-page | |
| OAuth setup |
Schedule a text post
Schedule a LinkedIn post for Friday at 2pm UTC: Shipping a small update on what we learned this week.
{
"type": "schedule",
"date": "2026-06-27T14:00:00.000Z",
"socialPost": [
{
"integration": "<linkedin-integration-id>",
"postsAndComments": ["Shipping a small update on what we learned this week."]
}
]
} Post with a first comment
Publish a LinkedIn announcement now, then add a comment with the product link.
On LinkedIn, the first postsAndComments string is the post and the rest are comments:
{
"type": "now",
"socialPost": [
{
"integration": "<linkedin-integration-id>",
"postsAndComments": [
"We just launched something big!",
"Check it out at example.com"
]
}
]
} Document carousel (Page)
Schedule a LinkedIn Page carousel from these slide images with title “Q2 update” — use integrationList to find my Page channel.
{
"type": "schedule",
"date": "2026-06-28T10:00:00.000Z",
"socialPost": [
{
"integration": "<linkedin-page-integration-id>",
"postsAndComments": ["Our Q2 product slides — swipe through the deck."],
"attachments": [
"https://example.com/slides/01.png",
"https://example.com/slides/02.png"
],
"settings": {
"linkedin": {
"postAsImagesCarousel": true,
"carouselName": "Q2 update"
}
}
}
]
} Attach media in chat
Instead of public slide URLs in your prompt, attach the image files directly in your MCP client chat — then ask the agent to build the carousel with those files and your caption.
Cross-account comment or reshare
Schedule a LinkedIn Page post for Friday at 2pm with body “Q2 recap is live” — then have my personal LinkedIn profile comment “Great update from the team!” and my other Page reshare it two minutes after publish. Use integrationList to find the channel IDs.
Cross-account actions belong in settings on the publishing channel (personal linkedin or linkedin-page). List acting channel UUIDs in integrationIds inside linkedin.crossAccountPlugs:
{
"type": "schedule",
"date": "2026-06-27T14:00:00.000Z",
"socialPost": [
{
"integration": "<linkedin-page-integration-id>",
"postsAndComments": ["Q2 recap is live"],
"settings": {
"linkedin": {
"crossAccountPlugs": [
{
"plugName": "linkedin-add-comment",
"enabled": true,
"delayMs": 0,
"integrationIds": ["<linkedin-integration-id>"],
"fields": {
"comment": "Great update from the team!"
}
},
{
"plugName": "linkedin-repost-post-users",
"enabled": true,
"delayMs": 120000,
"integrationIds": ["<linkedin-other-page-integration-id>"],
"fields": {}
}
]
}
}
}
]
} Comment vs reshare
linkedin-add-comment needs fields.comment text. linkedin-repost-post-users reshares from acting channels with an empty fields object. delayMs is in milliseconds (120000 = two minutes).
Global plugs (Page only)
Personal LinkedIn has no global catalog
Global plug tools apply to linkedin-page integrations only. Personal linkedin channels support internal linkedin.crossAccountPlugs via schedulePostTool — not plugsUpsert.
On my LinkedIn Page, create a global plug that comments “Great discussion — full details below!” when a post gets 100 likes — use integrationList to find the Page channel ID.
Global plugs are channel-level rules that fire when a published post’s likes reach a threshold. OpenQuok checks every six hours, up to three times per post.
- Call integrationList and pick a linkedin-page channel UUID.
- Call plugsCatalog and read field names for autoPlugPost or autoRepostPost.
- Call plugsUpsert.
Auto-comment when likes hit 100
{
"integrationId": "<linkedin-page-integration-id>",
"func": "autoPlugPost",
"fields": [
{ "name": "likesAmount", "value": "100" },
{ "name": "post", "value": "Great discussion — full details in the comments." }
]
} Auto-reshare when likes hit 100
{
"integrationId": "<linkedin-page-integration-id>",
"func": "autoRepostPost",
"fields": [
{ "name": "likesAmount", "value": "100" }
]
} Pause or delete a global rule
Disable the global plug with id abc123 on my workspace.
{
"plugId": "<plug-id>",
"activated": false
} Call plugsActivate with activated: true to re-enable. Call plugsDelete to remove the row permanently.