Learn how to give AI agents access to real-time web data using Bright Data MCP tools with LangChain integration
Two tools with minimal documentation. Both have basic descriptions (50-60 chars, below the 194-char baseline) and input schemas present but sparse. search_engine lacks enum constraint for 'engine' parameter despite listing valid values in description. scrape_as_markdown has only one required parameter with no output schema documented. No error handling guidance, no parameter validation rules, no recovery hints. Tool names are acceptable (verb_noun pattern) but descriptions are too terse to guide LLM selection effectively. No tool annotations (readOnlyHint, etc.) despite both being read-only. Schemas lack depth, no min/max bounds, no format specifications, no chaining IDs in responses.
Extract page content as markdown from a given URL
Search Google/Bing/Yandex for information
Descriptions are too short (50-60 chars vs 194-char baseline). 'Search Google/Bing/Yandex for information' and 'Extract page content as markdown from a given URL' lack context for when/why to use each tool, prerequisites, or what the LLM should expect in the response.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. search_engine returns JSON with 'organic' array but structure is not formally specified. scrape_as_markdown returns markdown string but no schema for content structure, length limits, or error cases.
search_engine 'engine' parameter lists valid values in description ('google, bing, yandex') but does not declare them as an enum constraint. Free-form string invites hallucinated values. Should be: {"type": "string", "enum": ["google", "bing", "yandex"], "default": "google"}.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
No error handling guidance. If search_engine returns zero results or scrape_as_markdown fails on a URL, the LLM has no recovery hint. Should include: 'If no results found, try a broader query' or 'If scraping fails, the URL may require authentication or block automated access.'
No tool annotations despite both tools being read-only. Missing readOnlyHint in schema. This prevents agents from understanding which tools are safe to call speculatively vs which require confirmation.