LinkedIn Automation via Rube MCP
Automate LinkedIn operations through Composio's LinkedIn toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/linkedin
Prerequisites
-
Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
-
Active LinkedIn connection via RUBE_MANAGE_CONNECTIONS with toolkit linkedin
-
Always call RUBE_SEARCH_TOOLS first to get current tool schemas
Setup
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.
-
Verify Rube MCP is available by confirming RUBE_SEARCH_TOOLS responds
-
Call RUBE_MANAGE_CONNECTIONS with toolkit linkedin
-
If connection is not ACTIVE, follow the returned auth link to complete LinkedIn OAuth
-
Confirm connection status shows ACTIVE before running any workflows
Core Workflows
- Create a LinkedIn Post
When to use: User wants to publish a text post on LinkedIn
Tool sequence:
-
LINKEDIN_GET_MY_INFO
-
Get authenticated user's profile info [Prerequisite]
-
LINKEDIN_REGISTER_IMAGE_UPLOAD
-
Register image upload if post includes an image [Optional]
-
LINKEDIN_CREATE_LINKED_IN_POST
-
Publish the post [Required]
Key parameters:
-
text : Post content text
-
visibility : 'PUBLIC' or 'CONNECTIONS'
-
media_title : Title for attached media
-
media_description : Description for attached media
Pitfalls:
-
Must retrieve user profile URN via GET_MY_INFO before creating a post
-
Image uploads require a two-step process: register upload first, then include the asset in the post
-
Post text has character limits enforced by LinkedIn API
-
Visibility defaults may vary; always specify explicitly
- Get Profile Information
When to use: User wants to retrieve their LinkedIn profile or company details
Tool sequence:
-
LINKEDIN_GET_MY_INFO
-
Get authenticated user's profile [Required]
-
LINKEDIN_GET_COMPANY_INFO
-
Get company page details [Optional]
Key parameters:
-
No parameters needed for GET_MY_INFO (uses authenticated user)
-
organization_id : Company/organization ID for GET_COMPANY_INFO
Pitfalls:
-
GET_MY_INFO returns the authenticated user only; cannot look up other users
-
Company info requires the numeric organization ID, not the company name or vanity URL
-
Some profile fields may be restricted based on OAuth scopes granted
- Manage Post Images
When to use: User wants to upload and attach images to LinkedIn posts
Tool sequence:
-
LINKEDIN_REGISTER_IMAGE_UPLOAD
-
Register an image upload with LinkedIn [Required]
-
Upload the image binary to the returned upload URL [Required]
-
LINKEDIN_GET_IMAGES
-
Verify uploaded image status [Optional]
-
LINKEDIN_CREATE_LINKED_IN_POST
-
Create post with the image asset [Required]
Key parameters:
-
owner : URN of the image owner (user or organization)
-
image_id : ID of the uploaded image for GET_IMAGES
Pitfalls:
-
The upload is a two-phase process: register then upload binary
-
Image asset URN from registration must be used when creating the post
-
Supported formats typically include JPG, PNG, and GIF
-
Large images may take time to process before they are available
- Comment on Posts
When to use: User wants to comment on an existing LinkedIn post
Tool sequence:
- LINKEDIN_CREATE_COMMENT_ON_POST
- Add a comment to a post [Required]
Key parameters:
-
post_id : The URN or ID of the post to comment on
-
text : Comment content
-
actor : URN of the commenter (user or organization)
Pitfalls:
-
Post ID must be a valid LinkedIn URN format
-
The actor URN must match the authenticated user or a managed organization
-
Rate limits apply to comment creation; avoid rapid-fire comments
- Delete a Post
When to use: User wants to remove a previously published LinkedIn post
Tool sequence:
- LINKEDIN_DELETE_LINKED_IN_POST
- Delete the specified post [Required]
Key parameters:
- post_id : The URN or ID of the post to delete
Pitfalls:
-
Deletion is permanent and cannot be undone
-
Only the post author or organization admin can delete a post
-
The post_id must be the exact URN returned when the post was created
Common Patterns
ID Resolution
User URN from profile:
- Call LINKEDIN_GET_MY_INFO
- Extract user URN (e.g., 'urn:li:person:XXXXXXXXXX')
- Use URN as actor/owner in subsequent calls
Organization ID from company:
- Call LINKEDIN_GET_COMPANY_INFO with organization_id
- Extract organization URN for posting as a company page
Image Upload Flow
-
Call REGISTER_IMAGE_UPLOAD to get upload URL and asset URN
-
Upload the binary image to the provided URL
-
Use the asset URN when creating a post with media
-
Verify with GET_IMAGES if upload status is uncertain
Known Pitfalls
Authentication:
-
LinkedIn OAuth tokens have limited scopes; ensure required permissions are granted
-
Tokens expire; re-authenticate if API calls return 401 errors
URN Formats:
-
LinkedIn uses URN identifiers (e.g., 'urn:li:person:ABC123')
-
Always use the full URN format, not just the alphanumeric ID portion
-
Organization URNs differ from person URNs
Rate Limits:
-
LinkedIn API has strict daily rate limits on post creation and comments
-
Implement backoff strategies for bulk operations
-
Monitor 429 responses and respect Retry-After headers
Content Restrictions:
-
Posts have character limits enforced by the API
-
Some content types (polls, documents) may require additional API features
-
HTML markup in post text is not supported
Quick Reference
Task Tool Slug Key Params
Get my profile LINKEDIN_GET_MY_INFO (none)
Create post LINKEDIN_CREATE_LINKED_IN_POST text, visibility
Get company info LINKEDIN_GET_COMPANY_INFO organization_id
Register image upload LINKEDIN_REGISTER_IMAGE_UPLOAD owner
Get uploaded images LINKEDIN_GET_IMAGES image_id
Delete post LINKEDIN_DELETE_LINKED_IN_POST post_id
Comment on post LINKEDIN_CREATE_COMMENT_ON_POST post_id, text, actor
Powered by Composio