Why Your LinkedIn MCP Stopped Working (And How to Fix It)
Something that worked a month ago stops working, nothing on your side changed, and the error message is vague. That is the normal shape of this problem. The good news is that the list of real causes is short, and they are not equally likely — one of them explains most reports. Work down this page in order and you will almost certainly find yours in the first two sections.
A quick note on terms, because they matter for diagnosis. MCP (Model Context Protocol) is the open standard that lets an AI assistant call outside tools. A connector is one such tool added to your assistant. And there are always two separate sign-ins in a hosted LinkedIn MCP: one between your AI app and the server, and a second between the server and LinkedIn. Knowing which of the two broke is half the fix.
It worked last month and now it just stopped
This is the single most common cause, and it is expected behaviour rather than a fault.
When you connect LinkedIn, LinkedIn issues an access token — a limited key tied to your account and to the specific permission you approved. That key has an expiry date. For LinkedIn member tokens it is roughly 60 days.
Most services renew a key like this quietly using a refresh token (a second credential whose only job is to fetch a fresh access token in the background, so you never notice). LinkedIn does not issue refresh tokens to self-serve apps — apps built on LinkedIn’s free, public products rather than approved partner status. So there is nothing to renew with. The key lapses, and you have to sign in again.
How to recognise it: everything else looks perfectly healthy. The connector is listed, the assistant can see the tools, your name and profile are correct. Only the actions that touch LinkedIn fail, and they fail with something about authentication, authorisation, or an expired credential. If you last connected around two months ago, stop reading and assume this is it.
The fix: ask the assistant to check your LinkedIn account status, then to reconnect your LinkedIn account. Kalovio’s reconnect_linkedin tool returns a link that walks you through LinkedIn’s consent screen again. Approve it and you are back. Your drafts, scheduled posts, uploaded images and voice profile are untouched — only the key is replaced.
Be suspicious of tools that never ask you to reconnect. A tool built on LinkedIn’s official self-serve API has to ask, because the API gives it no way to avoid asking. One that claims permanent access either holds partner-level access you have not been granted, or is not going through the official API at all — which usually means a session cookie, covered further down.
It says I am connected but every post is refused
Your name shows up. Your profile photo shows up. Reading anything works. And then every single publish attempt is rejected.
The cause is almost always a permission that was never granted on the first consent screen. LinkedIn splits identity from posting. Signing in uses Sign In with LinkedIn (OIDC), which tells the app who you are. Publishing needs a separate scope — a named permission — called w_member_social. If the consent screen was dismissed part-way, or a permission box was left unticked, LinkedIn creates a perfectly valid connection with identity access only.
The tell is the mismatch: your identity is right, but writing fails every time and immediately, not intermittently. An expired token usually breaks everything at once; a missing scope breaks only the writing.
The fix: reconnect and accept the whole consent screen this time, without closing the window early. If your browser blocks pop-ups or third-party cookies, allow them for the sign-in, or run it in a normal window rather than a private one.
The assistant says it has no LinkedIn tools
The connector is in your settings, but the assistant behaves as though it has never heard of it.
In ChatGPT, the usual cause is that the connector is switched off in that conversation. A Developer Mode connector is off by default in every new chat. You turn it on per chat, from the tools menu behind the plus button next to the message box. Nothing you do in settings changes that.
Two related traps sit alongside it. Developer Mode has to be enabled in settings before the plugin list appears at all. And when the server was added, the authentication type must have been set to OAuth — leaving it on “no authentication” produces a connector that adds successfully, never asks you to sign in, and can therefore do nothing.
Where this is available at all. ChatGPT’s Developer Mode is on paid plans only (Plus, Pro, Team, Enterprise, Edu) and on the web only. It is not on the free plan and not in the mobile apps. Claude is more forgiving: a custom connector works there on the free plan. Also worth knowing — connecting inside ChatGPT does not carry over to Codex. Each app connects and signs in on its own.
It works in one chat but not another
This one confuses people because both chats are in the same app, on the same account, minutes apart.
An assistant loads its list of available tools once, when the conversation starts. If you added the connector, re-authorised it, changed a setting, or reconnected LinkedIn after that moment, the open conversation carries on with the stale list. It will keep carrying on with the stale list forever, no matter how many times you rephrase your request.
The fix: open a brand-new conversation. Not a new message in the same thread — a new chat. This is cheap, takes two seconds, and resolves a surprising share of “it broke for no reason” reports. Do it before investigating anything else.
My cookie-based LinkedIn tool suddenly broke
If your tool asked you to paste a session cookie during setup, this section is yours — and the fault is a different animal entirely.
A session cookie is the string your browser holds to prove you are already signed in. Cookie-based tools borrow it and act as your browser. That string dies for reasons you do not control and are rarely told about: it reaches its own expiry, you changed your password, you signed out everywhere, LinkedIn ended the session on its own, or LinkedIn asked the session for a security check the tool cannot answer.
How to recognise it: the failure is abrupt and total, the error mentions being logged out or unauthenticated, and the fix on offer is “paste a fresh cookie”. There is no consent screen involved anywhere.
The fix, and the caveat. The mechanical fix is to fetch the cookie again. The thing worth weighing is that this pattern is why the most popular open-source LinkedIn MCP server warns in its own README that accounts “can be restricted or banned” — automated traffic riding a member session is what LinkedIn’s User Agreement restricts. An OAuth tool sits in a different position: LinkedIn’s API Terms of Use, section 3.1(26), restricts using the APIs “to automate posting on the LinkedIn Services” with no written exception for member-approved posting, so nobody should tell you the API route carries no risk at all. The defensible version is narrower — a self-serve permission, your own consent through LinkedIn’s screen, your approval of the exact text of every post, no scraping, and revocable access. Judge that for yourself.
Text posts work but images fail
Three separate limits produce three different failures.
| What you see | Cause | Fix |
|---|---|---|
| The upload is rejected before anything reaches LinkedIn | The file is over 20 MB | Re-export or resize. 20 MB per file is a hard cap, and it applies to PDFs too. |
| The upload works, but the library refuses to store it | 100 files per user, 30-day retention | Wait for older files to expire, or reuse an image already in the library by its id. |
| One image posts fine, a set of 2–9 returns a permission error | Multi-image and PDF posts use LinkedIn’s newer versioned gateway, which may be gated for self-serve apps | Post the images singly. Try the multi-image path on your own account before relying on it — it is not guaranteed for every account. |
| Nothing at all happens when you attach an image to the chat | Chat attachments do not reach a connector | Ask for an upload link, add the files there, then reference them by name in the post. |
That last row catches almost everyone once. Dragging an image into the chat window does not send it to the connector. This is a limit of MCP as it stands, not a bug in any one tool — tool call arguments are plain structured text, and MCP defines image content for tool outputs rather than inputs. Claude has no route for this at all. The upload panel or the upload link is the way in, in every app.
The post is rejected for being too long
LinkedIn caps a post at 3,000 characters. Characters, not words, so spaces, line breaks and emoji all count. An assistant asked to write something thorough will sail past this without noticing.
The fix: ask it to cut the post to under 3,000 characters, or split the idea into two posts. A tracked link adds only its own short address to the count, so links are rarely the culprit. If the failure is intermittent on posts of similar length, you are near the boundary rather than over it — trim harder.
A four-step order to work through
When you have no idea which cause you are looking at, this sequence rules them out fastest:
- Open a new chat. Free, instant, and fixes stale tool lists. In ChatGPT, switch the connector on in that chat.
- Ask for your account status. It will tell you whether LinkedIn is connected and when access lapses — which separates an expired token from everything else in one step.
- If it is expired or disconnected, reconnect and complete the consent screen fully, including the posting permission.
- Only then look at the content itself — file size, file count, character count, or a multi-image post that needs to be split.
If all four come back clean and it still fails, send the exact wording of the error to support@kalovio.com along with which app you are using. The wording almost always identifies which of the two sign-ins gave way.
Questions people ask
Why did my LinkedIn MCP stop working after about two months?
Because LinkedIn member access tokens expire after roughly 60 days, and self-serve apps are not issued a refresh token, so access cannot be renewed quietly in the background. Ask the assistant to reconnect your LinkedIn account and complete the consent screen. Your drafts, scheduled posts and uploaded images are not affected.
My LinkedIn account is connected but posting is refused. What is wrong?
Almost certainly the posting permission, w_member_social, was not granted on the consent screen. LinkedIn treats identity sign-in and posting permission as separate grants, so you can be correctly signed in and still unable to publish. Disconnect, connect again, and accept the full consent screen without closing the window early.
Why can Claude or ChatGPT not see my LinkedIn tools any more?
Two usual reasons. In ChatGPT, a Developer Mode connector is off by default in every new conversation and must be switched on from the tools menu behind the plus button. In any app, a conversation opened before you added or re-authorised the connector keeps its old tool list forever — open a brand-new chat.
How do I tell an expired token apart from a missing permission?
By what still works. An expired token breaks everything that touches LinkedIn at once, including reading your own profile. A missing w_member_social scope breaks only writing — your name and profile still come back correctly while every publish attempt is rejected immediately.
My cookie-based LinkedIn tool logged itself out. Can I stop that happening?
Not reliably. A session cookie ends for reasons outside the tool's control — its own expiry, a password change, signing out of all sessions, or LinkedIn ending the session or asking it for a security check. Pasting a fresh cookie restores it until the next time. Note that the most popular open-source LinkedIn MCP server warns in its own README that accounts can be restricted or banned when using this approach.
Why does my multi-image LinkedIn post fail when a single image works?
Single images go through LinkedIn's long-established posting endpoint. Sets of 2 to 9 images, and PDF or document posts, go through LinkedIn's newer versioned gateway, which may not be enabled for a self-serve app. A refusal there is reported clearly rather than failing silently. Post the images one at a time, and test the multi-image path on your own account before you depend on it.
Sources
Try Kalovio free
Run your LinkedIn from a chat with Claude or ChatGPT. Add this as a custom connector — free while in beta, and you approve every post before it goes live.
https://kalovio.com/mcpHow to connect