MCP server for LinkedIn profile, company, and job scraping with Claude AI integration. Supports direct profile/company/job URL scraping with secure credential storage.
The LinkedIn Agent MCP server presents a critical gap between declared tools and visible implementation. The repository claims to offer 12 tool registration functions (person, company, job, people, post, saved_job, profile, recommendation, engagement, messaging, network, feed tools) but only ONE tool is actually visible in the provided source code: 'close_session'. The source code shows tool registrations being called but does not include the actual tool definitions, making it impossible to evaluate schemas, parameter descriptions, or output structures for 11 of the 12 claimed tools. The single visible tool 'close_session' has a minimal implementation with no input schema, no parameter descriptions, and only a basic text description. Per the hard scoring rules: tools without visible definitions are inferred only, capping their score at 50; tools with no input schema score 0 for schema; tools with trivial descriptions score low. This server fails the core requirement that tool definitions must be verifiable in source code.
Close the current browser session and clean up resources.
CRITICAL: Tool implementations not provided in source. Repository claims 12 tool registration functions but actual tool code is absent. Only close_session is visible; 11 tools cannot be evaluated.
close_session has empty input schema ({}). LLMs cannot understand parameter requirements.
close_session description is 62 characters: 'Close the current browser session and clean up resources.' This is minimal but acceptable (baseline 194 chars, p10=34, p90=392). However, no indication of state modifications, error handling guidance, or when to use it vs other tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 14 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 21 | - | v1 |
close_session returns untyped dict {status, message}. No documented output schema. LLMs cannot parse the response structure reliably.
Error handling in close_session is basic: catches all exceptions and returns {status: error, message: str(e)}. Does not classify error as retryable/user-fixable/fatal. Does not provide recovery guidance.
No visible parameter descriptions for any tool. Even close_session with empty input {} should document that no parameters are accepted.
Tool naming 'close_session' uses imperative verb (good), but no context for when to call it vs other session/cleanup operations. Description lacks 'When to use' guidance.