MCP server for fetching LinkedIn profile data using the Fresh LinkedIn Profile Data API
Single tool 'get_profile' has a verb-based name (good), but the implementation reveals critical gaps. Description is adequate (67 chars, within baseline range), but input schema is minimal, only 'linkedin_url' with basic string type and no format/pattern constraints. No output schema is documented; the tool returns raw JSON.dumps() of API response without structure definition. Error handling is minimal (returns generic 'Unable to fetch LinkedIn profile data.' on any exception). No parameter validation, no guidance on URL format, no documentation of response fields. The tool lacks idempotency guarantees and does not strip irrelevant API metadata. Overall, this is a bare-minimum implementation that would confuse LLMs about expected output structure and error recovery.
Get LinkedIn profile data for a given profile URL.
No output schema documented. Tool returns raw JSON from external API without defining field structure, types, or required fields. LLMs cannot plan downstream operations or extract specific data.
Input parameter 'linkedin_url' lacks format constraint or validation guidance. No regex pattern, no example format, no description of valid URL structure. LLMs may pass malformed URLs.
Error handling is generic and non-actionable. Returns 'Unable to fetch LinkedIn profile data.' on any exception (timeout, invalid URL, API error, auth failure). LLM cannot distinguish between retryable and fatal errors or take corrective action.
API response is not stripped or shaped. Tool returns all fields from external API (skills, certifications, etc.) without filtering for relevance. High token cost, dilutes signal, risks context window exhaustion.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
No timeout or rate-limit handling documented. External API call has 30s timeout but no guidance on retry behavior or rate limits. Runaway agents could overwhelm the API.