LinkedIn MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LINKEDIN_CLIENT_ID | Yes | Your LinkedIn app Client ID. | |
| LINKEDIN_REDIRECT_URI | Yes | The OAuth redirect URI configured in your LinkedIn app, e.g. http://127.0.0.1:8765/callback. | |
| LINKEDIN_CLIENT_SECRET | Yes | Your LinkedIn app Client Secret. |
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
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| auth_set_access_tokenC | Set active LinkedIn access token and optional capability hints. |
| auth_startC | Start OAuth authorization by generating URL and optional localhost callback listener. |
| auth_pollB | Poll pending OAuth state for callback status and auth code availability. |
| auth_finishC | Exchange authorization code for token and activate session. |
| auth_refreshC | Refresh access token using refresh token from session or argument. |
| auth_set_role_hintsC | Update role hints used by capability gating. |
| auth_statusB | Return current session status. |
| auth_clearA | Clear active session from memory. |
| list_tool_catalogB | List tool capability metadata used by approval-aware clients. |
| list_endpoint_manifestA | List endpoint coverage scaffold for drift tracking. |
| list_capabilitiesA | Return effective capabilities for current session hints. |
| can_execute_toolB | Check whether a tool is available under current scope and role hints. |
| linkedin_getC | Raw authenticated GET helper. |
| linkedin_postC | Raw authenticated POST helper. |
| whoamiB | Resolve current principal using a configurable profile endpoint. |
| get_member_profileC | Get member profile using /v2/userinfo or member-specific endpoint if provided. |
| list_accessible_organizationsC | List organizations where current user has admin-like roles. |
| create_postA | Create a simple text post. Preview by default; set execute=true to send. |
| get_postB | Get a post by URN. |
| delete_postA | Delete a post by URN. Preview by default. |
| list_commentsC | List comments for a resource path, e.g. /rest/socialActions/{urn}/comments. |
| create_commentB | Create comment at provided endpoint path. Preview by default. |
| list_reactionsB | List reactions for a resource path, e.g. /rest/socialActions/{urn}/reactions. |
| create_reactionB | Create reaction at provided endpoint path. Preview by default. |
| delete_reactionB | Delete reaction using full endpoint path. Preview by default. |
| initialize_media_uploadC | Initialize media upload workflow for image/video assets. Preview by default. |
| finalize_media_uploadC | Finalize media upload workflow for image/video assets. Preview by default. |
| list_ad_accountsC | List ad accounts (approval-gated capability). |
| list_campaign_groupsC | List ad campaign groups. |
| create_campaign_groupC | Create campaign group. Preview by default. |
| list_campaignsC | List ad campaigns. |
| create_campaignB | Create ad campaign. Preview by default. |
| update_campaignC | Update ad campaign fields. Preview by default. |
| get_ad_analyticsC | Fetch ad analytics with custom query payload. |
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 34 tools
Most tools are clearly separated by resource and action, such as list_campaigns and create_comment. However, whoami overlaps with get_member_profile, and the capability/metadata tools (list_tool_catalog, list_capabilities, list_endpoint_manifest, can_execute_tool) have fuzzy boundaries that could cause an agent to pick the wrong one.
The dominant snake_case style is readable and mostly follows a verb_noun pattern like list_campaigns and create_post. But the set mixes conventions with one-word whoami, noun_verb linkedin_get/linkedin_post, and auth_* tools that resemble domain-prefixed verbs or nouns, making the pattern inconsistent.
34 tools is too many for an agent to navigate efficiently, especially with 8 auth tools, 4 capability/metadata tools, and raw HTTP helpers padding the surface. The broad LinkedIn scope justifies some size, but several utility tools could be consolidated or removed.
Core workflows for posts, comments, reactions, media upload, and ad campaigns are represented, and raw linkedin_post can fill some gaps. However, there is no update_post, no delete_comment, and no semantic tool to attach uploaded media to a post, leaving notable lifecycle dead ends.