linkedin-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LINKEDIN_MCP_LIVE_PROBE | No | Set to '1' to enable the diagnostic --live-probe flag (single real request). Never used in tests or CI. |
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_startA | Run the LinkedIn OAuth sign-in. Opens the consent page in a browser, catches the one-shot localhost redirect, exchanges the code, and stores the token in the owner-only config file (0600). Does NOT modify the profile. Returns only non-secret token status — never the token itself. Set url_only=true to just print the authorization URL without starting the listener. |
| auth_statusA | Report whether a LinkedIn access token is stored and when it expires. Reads local config only: no network call, no profile change, and the token value is never returned. |
| get_profileA | Fetch the owner's LinkedIn profile with GET /v2/me. Read-only — it cannot change anything. Use it to get the person id and current values before calling propose_edit. |
| propose_editA | Draft a profile change WITHOUT sending it. This tool NEVER writes to LinkedIn: it builds the exact API request, saves it as a proposal, and returns a unified diff of the current value versus the proposed one for human review. Show the diff to the human and wait for their approval; only then may apply_proposal be called with the returned proposal_id. section: headline | summary | position | skill | education. changes: for headline/summary use {'text': '...'}; for position/skill/education use {'action': 'create'|'update'|'delete', 'entity_id': '' (for update/delete), 'fields': {...}}. Localized text fields (skill name, position title/companyName/description, education schoolName/degreeName/...) may be given as plain strings — they are wrapped in LinkedIn's documented MultiLocale shape for the chosen locale. |
| list_proposalsA | List saved edit proposals with their diffs. Local read only — no network call and no profile change. Set include_applied=true to also show proposals that have already been sent. |
| discard_proposalA | Delete a saved proposal that the human rejected or that is no longer wanted. Local file removal only — it never touches LinkedIn. |
| apply_proposalA | THE ONLY TOOL THAT WRITES TO LINKEDIN. Sends the single prepared request stored in one proposal. Requires the human to have approved the returned diff in chat first — never call it on your own initiative, and never immediately after propose_edit without that approval. The approval is code-enforced: the 'approval' argument must be exactly 'approve ', supplied only after the human has seen the diff and said yes in chat. Until LinkedIn grants partner access to the Profile Edit API, an invalid-scope / permission error here is EXPECTED and is not a defect: report it plainly and stop, do not attempt any workaround. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kyle-nelson-berkeley/linkedin-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server