MCP server for collecting and retrieving company information, job postings, LinkedIn posts, and employee email addresses using Bright Data and AnyMail APIs
Server has 7 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have input schemas with type definitions and descriptions present, meeting minimum requirements. However, descriptions are generic and lack actionable context for LLM selection. Tool naming follows verb_noun convention (get_, initiate_) but lacks clarity on dependencies and sequencing. No output schemas documented. Error handling is minimal, most tools return raw JSON without recovery guidance. The initiate_*/get_* pattern creates a two-step workflow that should be documented more explicitly. No tool annotations (readOnlyHint, idempotentHint) despite all being read-only operations.
Retrieve company data using a snapshot ID from initiate_companies_data_collection
Retrieve job postings for a company using a snapshot ID from initiate_company_job_postings_collection
Retrieve LinkedIn posts for a company using a snapshot ID from initiate_company_posts_collection
Find the work email address of an employee using domain, first name, last name, and company name
Initiate data collection for multiple companies using an array of LinkedIn company URLs
Initiate a job search collection for a specific company with location, country, time range, and company name parameters
No output schemas documented. Tools return raw JSON without field definitions, forcing LLMs to infer structure and plan downstream calls blindly.
Initiate/Get pattern creates implicit two-step workflow. Descriptions do not explain that initiate_* returns a snapshot_id required by get_*, forcing LLMs to infer the dependency.
Descriptions lack actionable context. Generic phrases like 'Retrieve job postings' do not explain WHEN to use this tool vs alternatives, what prerequisites exist, or what the LLM should do with results.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Initiate collection of LinkedIn posts for a company using its LinkedIn company URL
No tool annotations despite all tools being read-only. Missing readOnlyHint and idempotentHint annotations prevent LLMs from understanding retry safety and side-effect profile.
Error handling is minimal. Tools throw generic errors without recovery guidance. E.g., invalid LinkedIn URL in initiate_company_posts_collection returns 'You must provide a valid LinkedIn company URL' but does not suggest how to find a valid URL or what format is expected.