LinkedIn MCP Server for Claude Desktop - Manage LinkedIn profile, company page, posts, and jobs
The LinkedIn MCP server has well-structured tool definitions with consistent naming (verb_noun pattern) and mostly clear input schemas. However, it suffers from several critical definition quality gaps: (1) Missing output schema documentation for all 7 tools, callers cannot see what fields are returned; (2) Parameter descriptions are present but minimal (10-50 chars), below the 72-char average for A+ tools; (3) No error handling guidance, tools provide no recovery instructions if LinkedIn API calls fail; (4) Missing idempotency guarantees on destructive operations (delete_post lacks confirmation/dry-run pattern); (5) No permission scopes declared; (6) Sensitive operations (create_post, delete_post) lack confirmation mechanisms. The schemas themselves are valid JSON Schema with proper typing, but parameter constraints are weak (e.g., 'postId' has no format/pattern guidance, 'limit' lacks explicit min/max in description). Tool naming is solid (7/7 follow verb_noun pattern), and descriptions are adequate but sparse. The codebase shows good separation of concerns (Zod validation, use-case layer) but tool-level documentation does not surface these safeguards to the LLM.
Create and publish a post on behalf of a company page
Create and publish a post on your LinkedIn profile
Delete one of your LinkedIn posts
Get information about a LinkedIn company page (e.g., GD Dev Solutions)
Get recent posts from a company page
Get your recent LinkedIn posts
No output schema documentation, tools do not declare what fields are returned, forcing LLMs to infer structure and limiting chaining capability
Destructive operations (delete_post, create_post) lack confirmation or dry-run pattern, agents can cause irreversible consequences without user approval
Parameter descriptions are minimal (10-50 chars, baseline 72) and lack constraint guidance, 'postId' has no format/length/pattern, 'limit' omits min/max in description despite Zod constraints
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 61 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 45 | - | v1 |
Get your LinkedIn profile information (name, email, etc.)
No error handling guidance, tools provide no recovery instructions if LinkedIn API calls fail, rate limits hit, or auth expires
No permission scopes declared (e.g., 'read:profile', 'write:posts', 'delete:posts'), agents cannot verify least-privilege access or audit who can do what
No idempotency guarantees, 'create_post' could publish duplicates on retry; no idempotent hints (idempotentHint) in tool annotations
Tool annotations missing (readOnlyHint, destructiveHint), clients cannot identify high-risk operations at parse time