A collection of example skills and snippets for using the ConnectSafely LinkedIn API, including prospect research and profile fetching utilities.
This server exposes 5 tools for LinkedIn profile research via a Python skill template. All tools have descriptions (10-80 chars) and basic input schemas with type info. However, descriptions are uniformly terse (well below the 194-char baseline), parameter descriptions are minimal or absent, output schemas are not documented, and error handling is weak. Tools are READ_ONLY but lack idempotent/readOnly annotations. The codebase shows no MCP server registration, only standalone Python scripts calling an external API. Tool definitions appear inferred from example.py rather than explicitly registered in an MCP server context.
Reduce raw API responses into a structured outreach brief with snapshot, background, recent posts, and conversation hooks
Accept a full LinkedIn URL or a bare profileId and return the profile slug
Fetch the latest posts from a LinkedIn profile
Fetch a LinkedIn profile by public ID with optional skills and education data
Render a research brief as formatted Markdown output
No output schemas documented. Tools return objects (profile_payload, brief, markdown) but LLMs cannot infer what fields to expect or how to chain results downstream.
Parameter descriptions are minimal or missing. 'profile_payload' and 'posts_payload' in build_brief lack any description of expected structure. 'count' in fetch_latest_posts has no guidance on valid range.
Tool descriptions are terse (25 - 40 chars vs 194-char baseline). 'Render a research brief as formatted Markdown output' lacks context on when to call it or what the output format is.
No tool annotations (readOnlyHint, idempotentHint). All tools are READ_ONLY and idempotent, but this is not declared in the schema, forcing LLMs to infer safety.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
No explicit MCP server registration visible. Code shows standalone Python scripts, not an MCP server with tool definitions. Tool existence is inferred from example.py, not registered via MCP protocol.