MCP server that integrates LSD programming language with web scraping, search, and dynamic tool discovery capabilities
This server has three tools with significant definition quality gaps. Tool names lack strong action verbs and are somewhat unclear (e.g., 'run_lsd' is domain-specific jargon). Descriptions are present but generic and lack LLM-optimized guidance on WHEN to use each tool. Input schemas use Zod but lack descriptions for parameters, the 'query' and 'code' parameters have minimal context. Output schemas are not documented anywhere in the source. The 'run_lsd' tool is particularly problematic: it accepts arbitrary code execution with WRITE risk but provides no validation guidance, error recovery instructions, or safety warnings. No tool provides pagination, structured output documentation, or error handling guidance.
Search Brave for possibly relevant links to a query
Search for and register available LSD trips/packages as dynamic tools
Execute LSD code and return results
run_lsd tool accepts arbitrary code with WRITE risk but provides no safety warnings, validation constraints, or error recovery guidance in its description.
All three tools lack documented output schemas. LLMs cannot reason about return values or plan downstream tool chains when the response structure is undefined.
Tool names use generic verbs ('run', 'find', 'search') and domain jargon ('LSD', 'trips') that are opaque to LLMs without context. Names do not start with clear action verbs that convey intent.
All parameter descriptions are minimal (20-40 chars) and lack format constraints, validation rules, or dependency hints. No enums, no ranges, no examples of valid input.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 41 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 34 | - | v1 |
No error handling guidance. Tools do not explain what to do when queries fail, LSD code is invalid, or external services (Brave, InternetData) are unavailable.
Tool descriptions do not explain WHEN to use each tool or differentiate between them. An LLM cannot reason about tool selection when use-case guidance is absent.
brave_search returns JSON-stringified results with no structure contract. Response field naming (e.g., 'result_link') is opaque, could be 'url', 'href', 'link', or 'result_url'.
run_lsd combines search and registration concerns in find_trips, violating single-responsibility principle. Split into find_trips (discovery) and register_trip (setup).