linkedin-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LINKEDIN_MCP_HOME | No | The directory where the authentication token file is stored. | ~/.config/linkedin-mcp |
| LINKEDIN_CLIENT_ID | No | Your LinkedIn app's Client ID (only used for authentication). | |
| LINKEDIN_API_VERSION | No | The LinkedIn-Version header value in YYYYMM format. LinkedIn retires versions after about 12 months; bump this if you get a 426 error. | 202610 |
| LINKEDIN_CLIENT_SECRET | No | Your LinkedIn app's Primary Client Secret (only used for authentication). | |
| LINKEDIN_REDIRECT_LOCAL | No | The local callback port. Change the redirect URL in your LinkedIn app to match. | 8765 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Tools for the user's own LinkedIn account: read their basic profile and publish or delete their posts. Before any create_* call, show the user the exact post (use preview_post) and get their explicit approval. LinkedIn's API does not allow editing profile sections such as headline, About or experience.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| auth_statusA | Shows which LinkedIn account is connected, the granted scopes, and how many days until the token expires. |
| get_my_profileA | Returns the signed-in member's basic profile from LinkedIn: id, name, profile picture, email and locale. |
| preview_postA | Shows exactly what would be sent to LinkedIn for a text, link or image post, without publishing anything or uploading images. Use this to show the user the post before creating it. |
| create_text_postA | Publishes a text-only post to the signed-in member's LinkedIn feed. Confirm the exact text with the user first. |
| create_link_postA | Publishes a post with a link card (title, optional description and thumbnail). Confirm the exact text with the user first. |
| create_image_postA | Uploads one image (local file or https URL) and publishes it with the given text. Confirm the exact text and image with the user first. |
| delete_postA | Permanently deletes one of the signed-in member's posts by URN (urn:li:share:… or urn:li:ugcPost:…). This cannot be undone. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose: auth status, profile retrieval, three post-creation variants by content type, preview, and deletion. The create_text_post/create_link_post/create_image_post split is explicit, and preview_post is clearly differentiated as non-publishing.
Most tools follow a predictable snake_case verb_noun pattern: get_my_profile, create_text_post, create_link_post, create_image_post, preview_post, delete_post. auth_status is the main deviation, using a noun phrase rather than a verb-led action name.
Seven tools is well-scoped for a LinkedIn posting integration. The set avoids redundant tools while covering authentication, profile access, post preview, multiple post types, and deletion.
Core posting workflows are covered, including preview and delete, but there is no tool to list or retrieve existing posts, and no way to edit or update a post. These are notable gaps for a full LinkedIn post-management surface, though agents can still perform the primary create/delete lifecycle.