Automate LinkedIn tasks via Rube MCP (Composio): create posts, manage profile, company info, comments, and image uploads. Always search tools first for current schemas.
Add this skill
npx mdskills install sickn33/linkedin-automationComprehensive LinkedIn automation with clear tool sequences, parameters, and pitfall warnings
1---2name: linkedin-automation3description: "Automate LinkedIn tasks via Rube MCP (Composio): create posts, manage profile, company info, comments, and image uploads. Always search tools first for current schemas."4requires:5 mcp: [rube]6---78# LinkedIn Automation via Rube MCP910Automate LinkedIn operations through Composio's LinkedIn toolkit via Rube MCP.1112## Prerequisites1314- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)15- Active LinkedIn connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `linkedin`16- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas1718## Setup1920**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.2122231. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds242. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `linkedin`253. If connection is not ACTIVE, follow the returned auth link to complete LinkedIn OAuth264. Confirm connection status shows ACTIVE before running any workflows2728## Core Workflows2930### 1. Create a LinkedIn Post3132**When to use**: User wants to publish a text post on LinkedIn3334**Tool sequence**:351. `LINKEDIN_GET_MY_INFO` - Get authenticated user's profile info [Prerequisite]362. `LINKEDIN_REGISTER_IMAGE_UPLOAD` - Register image upload if post includes an image [Optional]373. `LINKEDIN_CREATE_LINKED_IN_POST` - Publish the post [Required]3839**Key parameters**:40- `text`: Post content text41- `visibility`: 'PUBLIC' or 'CONNECTIONS'42- `media_title`: Title for attached media43- `media_description`: Description for attached media4445**Pitfalls**:46- Must retrieve user profile URN via GET_MY_INFO before creating a post47- Image uploads require a two-step process: register upload first, then include the asset in the post48- Post text has character limits enforced by LinkedIn API49- Visibility defaults may vary; always specify explicitly5051### 2. Get Profile Information5253**When to use**: User wants to retrieve their LinkedIn profile or company details5455**Tool sequence**:561. `LINKEDIN_GET_MY_INFO` - Get authenticated user's profile [Required]572. `LINKEDIN_GET_COMPANY_INFO` - Get company page details [Optional]5859**Key parameters**:60- No parameters needed for GET_MY_INFO (uses authenticated user)61- `organization_id`: Company/organization ID for GET_COMPANY_INFO6263**Pitfalls**:64- GET_MY_INFO returns the authenticated user only; cannot look up other users65- Company info requires the numeric organization ID, not the company name or vanity URL66- Some profile fields may be restricted based on OAuth scopes granted6768### 3. Manage Post Images6970**When to use**: User wants to upload and attach images to LinkedIn posts7172**Tool sequence**:731. `LINKEDIN_REGISTER_IMAGE_UPLOAD` - Register an image upload with LinkedIn [Required]742. Upload the image binary to the returned upload URL [Required]753. `LINKEDIN_GET_IMAGES` - Verify uploaded image status [Optional]764. `LINKEDIN_CREATE_LINKED_IN_POST` - Create post with the image asset [Required]7778**Key parameters**:79- `owner`: URN of the image owner (user or organization)80- `image_id`: ID of the uploaded image for GET_IMAGES8182**Pitfalls**:83- The upload is a two-phase process: register then upload binary84- Image asset URN from registration must be used when creating the post85- Supported formats typically include JPG, PNG, and GIF86- Large images may take time to process before they are available8788### 4. Comment on Posts8990**When to use**: User wants to comment on an existing LinkedIn post9192**Tool sequence**:931. `LINKEDIN_CREATE_COMMENT_ON_POST` - Add a comment to a post [Required]9495**Key parameters**:96- `post_id`: The URN or ID of the post to comment on97- `text`: Comment content98- `actor`: URN of the commenter (user or organization)99100**Pitfalls**:101- Post ID must be a valid LinkedIn URN format102- The actor URN must match the authenticated user or a managed organization103- Rate limits apply to comment creation; avoid rapid-fire comments104105### 5. Delete a Post106107**When to use**: User wants to remove a previously published LinkedIn post108109**Tool sequence**:1101. `LINKEDIN_DELETE_LINKED_IN_POST` - Delete the specified post [Required]111112**Key parameters**:113- `post_id`: The URN or ID of the post to delete114115**Pitfalls**:116- Deletion is permanent and cannot be undone117- Only the post author or organization admin can delete a post118- The post_id must be the exact URN returned when the post was created119120## Common Patterns121122### ID Resolution123124**User URN from profile**:125```1261. Call LINKEDIN_GET_MY_INFO1272. Extract user URN (e.g., 'urn:li:person:XXXXXXXXXX')1283. Use URN as actor/owner in subsequent calls129```130131**Organization ID from company**:132```1331. Call LINKEDIN_GET_COMPANY_INFO with organization_id1342. Extract organization URN for posting as a company page135```136137### Image Upload Flow138139- Call REGISTER_IMAGE_UPLOAD to get upload URL and asset URN140- Upload the binary image to the provided URL141- Use the asset URN when creating a post with media142- Verify with GET_IMAGES if upload status is uncertain143144## Known Pitfalls145146**Authentication**:147- LinkedIn OAuth tokens have limited scopes; ensure required permissions are granted148- Tokens expire; re-authenticate if API calls return 401 errors149150**URN Formats**:151- LinkedIn uses URN identifiers (e.g., 'urn:li:person:ABC123')152- Always use the full URN format, not just the alphanumeric ID portion153- Organization URNs differ from person URNs154155**Rate Limits**:156- LinkedIn API has strict daily rate limits on post creation and comments157- Implement backoff strategies for bulk operations158- Monitor 429 responses and respect Retry-After headers159160**Content Restrictions**:161- Posts have character limits enforced by the API162- Some content types (polls, documents) may require additional API features163- HTML markup in post text is not supported164165## Quick Reference166167| Task | Tool Slug | Key Params |168|------|-----------|------------|169| Get my profile | LINKEDIN_GET_MY_INFO | (none) |170| Create post | LINKEDIN_CREATE_LINKED_IN_POST | text, visibility |171| Get company info | LINKEDIN_GET_COMPANY_INFO | organization_id |172| Register image upload | LINKEDIN_REGISTER_IMAGE_UPLOAD | owner |173| Get uploaded images | LINKEDIN_GET_IMAGES | image_id |174| Delete post | LINKEDIN_DELETE_LINKED_IN_POST | post_id |175| Comment on post | LINKEDIN_CREATE_COMMENT_ON_POST | post_id, text, actor |176
Full transparency — inspect the skill content before installing.