MELLOW HUB · FIELD NOTES

Post to LinkedIn from Claude or ChatGPT with an MCP server

LinkedIn has no official MCP server. Post to your profile or company page from Claude, ChatGPT or Cursor through Mellow Hub: setup, limits, prompts and fixes.

By Mellow · Updated

Can Claude or ChatGPT post to LinkedIn?

Yes, through Mellow Hub’s remote MCP server at https://www.mellow.world/mcp. LinkedIn publishes no MCP server of its own, and the most installed community servers read profiles, jobs and messages through your logged-in browser session rather than posting. Hub posts through LinkedIn’s API: after you connect your LinkedIn and approve the access, the assistant checks a post with validate_post, publishes or schedules it with create_post and reads the result and link with get_post. A LinkedIn post needs text, up to 3,000 characters, and can carry up to 20 images or one video. You connect LinkedIn yourself: an assistant cannot sign in for you.

Status: Hub has published to LinkedIn six times between September 5 and October 1, 2026, each with a public link, all to a personal profile. On September 29 a Claude Code session published a video to LinkedIn and five other networks in one post through Hub’s production MCP endpoint, and on October 1 a post created about 20 hours earlier went out at its set time, with nothing changed in between. Hub has not yet published to a LinkedIn company page. What was tested.

Is there an official LinkedIn MCP server?

No. LinkedIn and Microsoft publish no MCP server for posting. ChatGPT’s app directory has LinkedIn apps for looking people up and for LinkedIn Ads, and neither posts. What people install instead falls into three groups: servers that drive your logged-in LinkedIn session to read profiles, jobs and your inbox; outreach services; and a few small servers that post through LinkedIn’s official API with a developer app you register yourself.

ServerWhat it doesHow it gets access
stickerdaniel/linkedin-mcp-serverReads profiles, companies and jobs; reads and sends messages. Does not post.A real browser session with your LinkedIn login
Linked API MCPOutreach and data from your account, run in a cloud browser.Your account, through the vendor
fredericbarthelet/linkedin-mcp-serverCreates posts and reads your basic profile.Official OAuth with your own LinkedIn developer app and API access
Mellow HubPosts and schedules to LinkedIn and eight other networks in one request, with limits checked first.Official API through Hub; OAuth consent or a Hub key

Read on 1 October 2026 from each project’s own page. Descriptions of other servers are their own claims; Mellow has not tested them.

Tools that drive your session act as you inside LinkedIn’s website. LinkedIn’s User Agreement forbids automated access of that kind, and it can get an account restricted. Posting through the API is the route LinkedIn provides: Share on LinkedIn for members, and the vetted Community Management API for company pages.

What LinkedIn account do I need?

A LinkedIn personal profile, or a company page on which you are an admin. When you connect, Hub asks which one to post as. Each connection is one channel, so a profile and a page you run are two channels, and one post can go to both. Hub publishes; it does not read your feed, search jobs or send messages.

  1. Open Accounts in Hub and choose LinkedIn, or ask the assistant to call connect_channel with platform set to linkedin. That tool only returns a link and an instruction for a person. It needs the channels:connect permission.
  2. Open the link and sign in to LinkedIn yourself. Hub never sees your LinkedIn password.
  3. Tell the assistant you are done. It calls list_channels with refresh: true and uses the returned channel ID, which begins with spc_. A username is not a substitute for that ID.

Connect Claude, ChatGPT, Cursor or another MCP client

Every client uses the same server URL, https://www.mellow.world/mcp, over Streamable HTTP. A client signs in with OAuth 2.1 (dynamic client registration and PKCE) or sends an owner-created Hub API key as a Bearer token. Menus change between client versions, so the official guides linked below describe the current screens. The last column says only what Mellow itself has tested, on any network.

ClientHow to add HubTested by Mellow
ClaudeOn any plan, Free included: Customize → Connectors → + Add → Add custom connector. Name it Mellow Hub and paste the URL; if Claude asks how to identify itself, choose Register automatically. There is no client secret to copy. Step by step: the Claude guide.In production on September 29 and 30, 2026: sign-in and consent, starting channel connections, moving a scheduled post’s time (the post then went out at that time on seven networks) and creating a post.
ChatGPTOn the web, on Business, Enterprise or Edu where developer mode is allowed: Settings → Apps → Create, with the URL and OAuth. Pro connects MCP apps for reading only. Step by step: the ChatGPT guide.On October 2, 2026, as a developer-mode app with a test account: it published a post to Bluesky, scheduled another that went out on its own the next morning, and was refused a text over Bluesky’s limit before anything was sent.
Claude Codeclaude mcp add --transport http mellow https://www.mellow.world/mcp, then sign in when Claude Code asks, or send a Hub key as a Bearer header.On September 29, 2026, with an owner-created key, it sent one video to Instagram, Facebook, Threads, LinkedIn, X and TikTok in a single post through the production endpoint. All but TikTok went public with links.
CursorAdd Mellow Hub as a remote HTTP MCP server with the URL, then complete sign-in. Cursor’s MCP documentation.Not tested.
Your own clientStreamable HTTP. Start OAuth discovery from the first 401 response, or send a Hub key in the Authorization: Bearer header.The official MCP Python SDK completed registration, consent and a publication to Instagram and Threads in production on September 20, 2026.
  1. Add the server in your client and select Connect. Sign in to Mellow if asked. Hub’s consent screen names the app that is asking.
  2. Choose the permissions the task needs (below), select your LinkedIn channel, choose review or autopilot, a daily ceiling and an expiry, then approve.
  3. Back in the client, run the read-only check from the prompts below. Confirm the profile, the mode and the LinkedIn channel ID. Agents shows the grant’s permissions, channels and expiry.
  4. If a client cannot complete OAuth, create a key in Agents and set it as the client’s Authorization: Bearer header, from its secret settings or an environment variable. Never paste a key into a chat.

Which permissions to approve

PermissionWhat it allows
channels:readRead the profile, the mode and the channels the grant covers: whoami, list_channels.
posts:readCheck and preview a post and read results: validate_post, preview_post, get_post, list_posts.
media:writeRegister a public media URL or request a signed upload URL.
posts:write and posts:publishCreate, schedule or publish a post; both are needed, even in review mode. posts:write also covers cancelling and rescheduling.
channels:connectStart a channel connection and return its link for a person.
metrics:readRead network-reported metrics for published posts.

The consent screen arrives with every permission the assistant asked for already ticked, except spending AI credits. Untick anything it should not have.

What you delegate, and how to take it back

Hub treats an assistant’s access as a delegation you give once, with limits: the permissions, the channels (the ones you select, or explicitly all), review or autopilot, a daily ceiling of 1 to 1,000 posts (50 by default) and an expiry of 1, 7 or 30 days (30 by default). Autopilot is the default: the assistant publishes on its own within those limits. Choose review and each post waits for you to approve it in Hub. A key or a connected app cannot approve its own post.

Hub records the posts an assistant creates or has refused, approvals, reschedules, cancellations and connection attempts in a journal you read in Agents. Revoking a key or a connected app takes effect on its next request. Publishing always needs an idempotency key, so a retried request cannot publish twice.

LinkedIn rules Hub checks before anything is sent

This table is generated from the registry that validate_post enforces, the same one behind the rules for every network. These are Hub’s input rules; LinkedIn still judges the media itself when it fetches it.

RuleLinkedIn in Hub
TextUp to 3,000 characters, required. LinkedIn publishes nothing without commentary.
TitleNone.
MediaOptional, up to 20 images or videos. Up to twenty images, or one video.
PlacementNone.
Also supportedScheduling with scheduledAt, several media items in one post, metrics for published posts (get_metrics).

LinkedIn publishes nothing without text, so an image or a video alone is refused before it is sent. Posting the same words to X or Threads? Their limits are far shorter than LinkedIn’s 3,000: give those channels their own caption in perChannel rather than cutting the LinkedIn version. LinkedIn keeps line breaks; styled letters from a text formatter are allowed but count double in Hub’s check.

LinkedIn’s own help gives the same 3,000-character limit for a post (LinkedIn Help, read on 1 October 2026).

When validate_post refuses the post

Read ok, issues and notes in the result. The check publishes nothing and reports every problem at once, each with its field and, for a network rule, its channel. Fix them together and validate again.

Issue codeWhat it meansWhat to change
caption_requiredNo text for the LinkedIn channel.Add commentary, or give LinkedIn its own caption in perChannel.
caption_too_longOver 3,000 characters. Styled Unicode letters count as two.Shorten it, or drop the styling.
media_too_manyMore than 20 items.Split them across two posts.
media_kinds_mixedImages and a video in one post.One kind per post, or give LinkedIn its own media in perChannel.

Other refusals concern the request or the grant: schedule_in_past (use a future time with a UTC offset), insufficient_scope (approve a delegation with the missing permission), channel_out_of_scope (the channel is not in the grant), and at creation daily_limit_reached and idempotency_key_reused. A passing check is not proof of publication: LinkedIn can still refuse the media or the account. The free post checker runs the same input rules on a draft before you connect anything.

Prompts you can paste

Replace the bracketed parts. Each prompt names the tools to call, so the assistant does not have to guess the order.

Check the connection, read-only

Use only Mellow Hub. Call whoami, then list_channels, then list_platforms.
Tell me my LinkedIn channel ID, whether it is my profile or a company page,
whether this connection is in review or autopilot mode, how many posts it
may still create today, and LinkedIn's rules. Do not create anything.

A text post with a list, scheduled for Tuesday 08:30

Use Mellow Hub. Validate this as a text post for my LinkedIn channel:
[your post]

Keep my line breaks. If validate_post reports an issue, fix it and show me
the new version before continuing. Then schedule it for 08:30 on [date] in
[your timezone], with scheduledAt written with an explicit UTC offset.
Call create_post once with idempotencyKey "linkedin-[date]-0830", then
get_post, and tell me the LinkedIn target's status.

One carousel to LinkedIn and Instagram, each with its own caption

Use Mellow Hub. Post the images at [public https URLs, in order] as one
post to my LinkedIn and Instagram channels.
LinkedIn caption: [longer, with line breaks]
Instagram caption: [shorter, with up to 5 hashtags]

Call register_media on each image. Put each caption in perChannel under
its channel ID. Call validate_post and fix every issue. Then call
create_post once with idempotencyKey "carousel-[short-name]-1" and call
get_post. Report each target's status and link separately.

Media has to be reachable at a public https URL when LinkedIn fetches it. An agent that can make HTTP requests, such as Claude Code or a script of your own, can instead call request_upload_url, send a local file with PUT to the returned uploadUrl and use the returned mediaUrl. An assistant that only has Hub’s tools cannot send file bytes itself.

Publish once, then read the LinkedIn result

create_post is the step that publishes or schedules. It needs an idempotencyKey of 8 to 120 letters, digits or the characters . _ : -, stable for this post. If the response is lost or times out, send the same request with the same key: Hub returns the original post instead of making a second one. Reusing a key for different content is refused.

Under a review-mode grant the post comes back as pending_review and waits until you approve it, signed in, in Hub. Under autopilot it goes out at scheduledAt, or immediately without it. Always write scheduledAt with Z or an explicit UTC offset.

Then call get_post and read the LinkedIn entry in targets, not only the post’s status. publishing means LinkedIn has not reported a result yet; published comes with the post’s link; failed comes with the network’s message. In a post to several networks each target settles on its own and the post can end partial: republish only the failed channel, with a new key. Once LinkedIn has published a post, Hub cannot edit or delete it; cancel_post works only before it goes out.

Each destination counts once against your plan: one post to LinkedIn and two other networks is three publications. Validating, drafting and connecting work without a plan; publishing needs an active one. See plans.

What Mellow has tested with LinkedIn

Production records on 1 October 2026 show six LinkedIn publications through Hub between September 5 and October 1, each reaching published with a public link, all on one personal profile. Two came through Hub’s MCP endpoint from a Claude Code session using an owner-created key: on September 29 a video posted to LinkedIn together with Instagram, Facebook, Threads, X and TikTok, and on September 30 a post created the evening before went out at the time set for it, after Claude’s claude.ai connector had moved that time. On October 1 a post created with an owner-created key on September 30 at 15:59 UTC for 12:30 UTC went out at 12:31 UTC, together with Facebook, Instagram, Pinterest, Threads and X, with nothing changed in between. Publication was confirmed from each network’s result and public link, not from a screenshot.

Not tested yet: a LinkedIn company page, a carousel of images on LinkedIn, and connecting through ChatGPT or Cursor.

Questions

Is there an official LinkedIn MCP server?

No. LinkedIn and Microsoft publish no MCP server for posting. The popular community servers use your logged-in session to read profiles, jobs and messages, which LinkedIn’s User Agreement forbids, and do not post. Mellow Hub posts through LinkedIn’s official API.

Can Claude post to a LinkedIn company page?

Hub lets you connect a company page you administer and post to it through the same tools. Hub’s live LinkedIn publications so far have all been to a personal profile, so page posting has not been verified live yet.

Can the assistant read LinkedIn messages or search for jobs?

Not through Hub. Hub’s MCP tools prepare, publish, schedule and cancel posts and read their results and metrics. Reading inboxes, profiles or jobs is what the session-driving servers do, with the account risk that carries.

Can I schedule LinkedIn posts from ChatGPT?

Yes, where your ChatGPT plan or workspace allows custom MCP apps: add Hub’s server in developer mode, approve access, and ask for a post with a scheduledAt time. Mellow has not tested ChatGPT’s connector itself yet; Claude’s has been used in production.

Does a scheduled LinkedIn post count against my plan when it is created?

It counts once when it is published: one post to LinkedIn and two other networks is three publications. Cancelling before it goes out costs nothing.

Related

Write to Hub's founder

Every message is read by the founder himself, so you are talking to him directly. Questions, bugs, a feature you miss: write about anything. We are glad to keep making Hub better.

What is it about?

We attach this page's address so we can see what you saw.