LinkedIn (Posting & Analytics) Runtime Skill
SkillDocs & knowledgePublish and manage LinkedIn content through the official LinkedIn API MCP. Use when the user asks to post to LinkedIn (text, image, video, document), comment or react on their posts, manage company-page posts they admin, or read engagement stats on their own posts.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the LinkedIn (Posting & Analytics) Runtime Skill skill
What this skill tells your AI
The instructions your AI receives, as published by manor-os/manor-ai in packages/core/ai/skills/mcp_linkedin/SKILL.md and read by ahel’s review.
Use this skill to publish and manage content on the user's LinkedIn via the official API MCP (mcp__linkedin__*). This is the compliant path for posting and reading stats on the user's own content and the company pages they admin.
When To Use
Use this skill to: post to LinkedIn, attach images/video/documents to a post, comment/react on posts, publish on an admin'd company page, manage (list/delete) the user's own posts, or read engagement stats on their posts.
Do NOT use this for: people/company search, reading third-party profiles, jobs, DMs/messaging, or browsing the feed. LinkedIn's official API does not expose those surfaces in this runtime.
Connection
Authenticates via LinkedIn OAuth. URNs are required identifiers: get the member URN from get_profile (use as author_urn/actor_urn), and organization URNs from list_organizations (use as owner_urn/org_urn). On an auth/scope error, stop and ask the user to reconnect LinkedIn.
Core Tools
Publish:
create_post— required:author_urn,text. The core posting call.upload_image/upload_video/upload_document— required:owner_urn,src. Upload media first, then reference it when creating the post.
Company pages (admin only):
list_organizations,get_organization,list_org_posts(reqorg_urn).
Manage & measure:
get_my_posts(reqauthor_urn),delete_post(reqpost_urn).get_post_stats(reqauthor_urn) — engagement on the user's posts.create_comment(reqpost_urn,actor_urn,text),react_to_post(reqpost_urn,actor_urn),get_post_comments,get_post_reactions.
Common Recipes
Post text to the user's profile
get_profile→author_urn.- Show the final post text to the user and get approval (Guardrails).
create_postwithauthor_urn+text.
Post with an image
get_profile→author_urn(orlist_organizations→org_urnfor a company page).upload_imagewithowner_urn+src; keep the returned media reference.- Confirm caption with the user, then
create_postincluding the uploaded image.
Report engagement
get_my_posts(author_urn) to list recent posts. 2.get_post_statsto summarize reach/engagement.
Guardrails
- Publishing is public and immediate. Never
create_post/create_comment/react_to_postwithout showing the exact content (and target profile vs company page) and getting explicit approval. - Confirm the target: posting as the member (
author_urnfromget_profile) vs a company page (org_urn) are very different audiences — verify which the user means. delete_postis the only cleanup; a published post may already have impressions before deletion. Don't rely on delete to "undo" a mistaken post.- One post per request unless the user explicitly asked for several; avoid spammy repeated posting.
Edge Cases & Errors
- Wrong/empty URN is the most common failure — always derive URNs from
get_profile/list_organizations, never invent them. - Company-page actions require the user to be an admin with org scopes; a 403 means they lack page permission, not a bug.
- Media must be uploaded before it can be attached — don't pass a raw local path to
create_post. - Auth/scope errors → stop and ask the user to reconnect.
Signals
- GitHub stars
- 171
- Forks
- 52
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
mcp-linkedin- Source
- github.com/manor-os/manor-ai