linkedctl-mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited linkedctl-mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill teaches linkedctl MCP workflow patterns, conventions, and error handling for managing LinkedIn content via the LinkedIn API.
A valid LinkedIn OAuth2 access token is required. Configure it via:
LINKEDCTL_ACCESS_TOKEN~/.linkedctl.yaml (or per-profile configs in ~/.linkedctl/)Optional: LINKEDCTL_CLIENT_ID and LINKEDCTL_CLIENT_SECRET for token refresh.
Tools are autodiscovered via the MCP protocol handshake (tools/list). Use the MCP tool listing to see available tools and their parameters.
Always start here to verify credentials:
whoami → auth_statusIf the token is expired or revoked, re-authenticate. Use auth_revoke to clear local credentials.
Full workflow for creating and managing posts:
whoami → post_create → post_list / post_get → post_update → post_deleteCreating a post:
post_create supports:
commentary textimage_path (local file) or image_urn (pre-uploaded)video_path (local file) or video_urn (pre-uploaded)document_urn (pre-uploaded via document_upload)poll_question + poll_options (2-4 options, optional poll_duration)article_url + optional article_title / article_descriptionas_org to an organization ID to post on behalf of a company pagePUBLIC (default) or CONNECTIONSListing posts:
post_list returns paginated posts. Use count (default: 10) and start for pagination. Filter by lifecycle_state (PUBLISHED, DRAFT).
Upload media before attaching to posts:
document_upload → post_create (with document_urn)post_create directly with image_path / video_path for combined upload+postdocument_upload, then reference the URN in post_createSupported document types: PDF, DOCX, PPTX, DOC, PPT (max 100 MB).
Reactions:
reaction_create → reaction_list → reaction_deletereaction_create — Add a reaction (LIKE, PRAISE, EMPATHY, INTEREST, APPRECIATION, ENTERTAINMENT)as_org to react as an organizationreaction_list — List reactions on a postreaction_delete — Remove a reactionComments:
comment_create → comment_list → comment_get → comment_deletecomment_create — Comment on a post (use as_org for organization comments)comment_list — List comments on a postcomment_get / comment_delete — Manage specific commentsorg_list → org_get → org_followersorg_list — List organizations you administerorg_get — Get organization details by IDorg_followers — Get follower count for an organizationstats_post / stats_me / stats_orgAll analytics tools require the Community Management API product.
~/.linkedctl/. Defaults to the default profile.urn:li:share:123456).PUBLIC (default) or CONNECTIONS.| Error | Cause | Fix |
|---|---|---|
| "Authentication failed" | Invalid or expired token | Re-authenticate, check auth_status |
| "NOT_FOUND" | Invalid URN or deleted resource | Verify URN with post_list or comment_list |
| "ACCESS_DENIED" | Missing API scope or permission | Check required scopes for the operation |
| "RATE_LIMITED" | Too many API requests | Wait and retry (check retry-after hint) |
| "VALIDATION_ERROR" | Invalid input parameters | Check parameter formats and constraints |
| Tool | Category | Purpose |
|---|---|---|
whoami | auth | Show current user identity |
auth_status | auth | Check token status and expiry |
auth_revoke | auth | Revoke token and clear credentials |
post_create | posts | Create a post with optional media |
post_get | posts | Fetch a single post by URN |
post_list | posts | List posts with pagination |
post_update | posts | Update post commentary |
post_delete | posts | Delete a post |
document_upload | media | Upload a document (PDF, DOCX, etc.) |
comment_create | engagement | Comment on a post |
comment_list | engagement | List comments on a post |
comment_get | engagement | Get a specific comment |
comment_delete | engagement | Delete a comment |
reaction_create | engagement | Add a reaction to a post |
reaction_list | engagement | List reactions on a post |
reaction_delete | engagement | Remove a reaction |
org_list | organizations | List administered organizations |
org_get | organizations | Get organization details |
org_followers | organizations | Get organization follower count |
stats_post | analytics | Post-level analytics |
stats_me | analytics | Aggregated personal analytics |
stats_org | analytics | Organization share statistics |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.