linkedin-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LINKEDIN_MCP_HOME | No | Private state directory (token, proposals, usage) | ~/.linkedin-mcp |
| LINKEDIN_CLIENT_ID | No | Your LinkedIn app Client ID (used by `login` only) | |
| LINKEDIN_API_VERSION | No | LinkedIn REST API version header (`YYYYMM`) | 202608 |
| LINKEDIN_MCP_APPROVAL | No | Approval mode: `auto`, `elicit` or `client` | auto |
| LINKEDIN_CLIENT_SECRET | No | Your LinkedIn app Client Secret (used by `login` only) | |
| LINKEDIN_MCP_PROPOSAL_TTL | No | Seconds before an unapproved proposal expires | 1800 |
| LINKEDIN_MCP_REDIRECT_PORT | No | Local OAuth callback port (must match your app's redirect URL) | 8765 |
| LINKEDIN_MCP_DAILY_WRITE_CAP | No | Maximum LinkedIn writes per UTC day | 40 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| linkedin_statusA | Show the connected LinkedIn member, token expiry, today's write usage, the approval mode, and what this server can and cannot do. Never writes to LinkedIn. |
| linkedin_prepare_actionA | Prepare (not perform) one LinkedIn action and return its exact preview, proposal_id and digest. kind=post (text, optional visibility PUBLIC|CONNECTIONS, optional link_url/link_title/link_description), comment (post_url, text), react (post_url, optional reaction), or delete_post (post_url of your own post). Always show the user the exact preview before calling linkedin_execute_action. |
| linkedin_execute_actionA | Perform one prepared LinkedIn action exactly once, after the user approved its exact preview. Requires proposal_id and digest from linkedin_prepare_action. The server asks the user to confirm when the client supports it. Never call it again for a result reported as unknown. |
| linkedin_list_actionsA | List pending proposals awaiting approval, or recent actions with their final status and receipts. Never writes to LinkedIn. |
| linkedin_cancel_actionA | Cancel a pending proposal so it can never be executed. Does not undo anything already published. |
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 5 tools
Each tool maps to a distinct phase of the action lifecycle (status, prepare, execute, list, cancel) with no overlapping responsibilities. Descriptions explicitly clarify what each does and does not do, making selection unambiguous.
All tools share the linkedin_ prefix and snake_case, with four following a verb_noun pattern. linkedin_status is a noun-only outlier, but overall naming is consistent and readable.
Five tools fully cover the propose-approve-execute-cancel cycle without redundancy. The count is well-scoped for the focused purpose of managing LinkedIn write actions with approval.
The surface covers preparation, execution, cancellation, listing, and status for write actions. Missing an update/edit action and broader read operations, but the approval workflow itself has no dead ends.