MCP server providing tools for web scraping, web search, and shell command execution via Server-Sent Events transport
This MCP server exposes 3 tools with significant quality gaps. Tool definitions are visible in main.py with basic descriptions, but parameter documentation is minimal, output schemas are undocumented, and error handling guidance is absent. The shell_command tool is particularly risky (DESTRUCTIVE risk level) with no confirmation pattern or permission checks. Web tools lack pagination, result limits, and structured output schemas. Descriptions are present but generic (10-50 chars each), and parameter types are inferred from Python type hints rather than explicitly documented in descriptions. No per-parameter descriptions are visible for most inputs. Output behavior is unspecified. This is typical of a community-grade server that works but lacks production-hardening.
Execute a shell command
Scrape a web page
Search the web
DESTRUCTIVE tool (shell_command) lacks confirmation/dry-run pattern and permission checks. No visibility into authorization or audit logging. Tool can execute arbitrary shell commands with zero guardrails.
No output schemas documented for any tool. LLM does not know what fields to expect, making downstream tool chaining impossible and forcing parsing of unstructured text.
Tool descriptions are 19-60 characters, well below the 50-200 char baseline for production tools. Descriptions lack actionable context: no mention of when to use, prerequisites, or what the tool returns.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
web_scrape and web_search provide no pagination, result limits, or result count guidance. Large result sets will blow context window. No per-item error handling.
No error handling guidance in any tool. Errors are likely raw exceptions (stack traces or generic strings), providing no recovery path for LLM. No classification (retryable vs. user-fixable vs. fatal).
shell_command input is not sanitized for injection attacks. No visibility into shell injection prevention or input validation logic (tool_shell_command implementation not shown).
Parameter descriptions are missing or minimal. 'command' param for shell_command has no guidance on format, valid values, or constraints. search_type enum is declared but not explained per-value.