MCP server that gives AI assistants like Claude access to LinkedIn profiles, companies, and job postings through the user's own browser session.
Server has 10 tools with basic naming (verb_noun pattern) and minimal descriptions. All tools have input schemas with type definitions, but descriptions are generic and lack LLM-optimization guidance. No output schemas documented. Parameter descriptions are sparse (e.g., 'Search query for people' lacks format/constraint details). No error handling guidance, no idempotency markers, no permission scopes declared. Tool composition is reasonable (single responsibility per tool), but descriptions fail to explain WHEN to use each tool vs. alternatives or dependencies. Baseline: 549 production tools average 194-char descriptions; these average ~50 chars. No tool reaches the 50-200 char LLM-optimized range.
Retrieve a LinkedIn company profile by URL or ID
Retrieve LinkedIn feed posts and updates
Retrieve a LinkedIn job posting by URL or ID
Retrieve LinkedIn messages and conversations
Retrieve a LinkedIn person profile by URL or ID
Retrieve a LinkedIn post by URL or ID
Search for LinkedIn companies by name or industry
Search for LinkedIn job postings by title, company, or location
Descriptions are generic and under 50 characters. LLMs cannot distinguish when to call search_people vs get_person_profile, or when to use get_feed vs get_post. Baseline: A+ tools average 194 chars with explicit WHEN/WHY guidance.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., does search_people return profile_id, person_id, or linkedin_id?). Breaks tool chaining.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
Search for LinkedIn profiles by name, title, or company
Send a message to a LinkedIn connection
send_message is a WRITE tool with no confirmation/dry-run pattern. Agents can send unintended messages without verification. No idempotency marker or retry guidance.
Parameter descriptions lack constraints. 'Search query for people' does not specify format, length limits, or valid operators. 'Maximum number of results' lacks min/max bounds (e.g., 1-100). LLMs will pass invalid values.
No error handling guidance. Tools do not document what errors are retryable, user-fixable, or fatal. No recovery suggestions (e.g., 'User not found. Try search_people() with a partial name.').