A web scraping and data analysis server for Daraz e-commerce platform that scrapes laptop products, processes data, performs dimensionality reduction, clustering analysis, and generates interactive visualizations
This server has critical definition gaps. Tool names lack clear action verbs (e.g., 'run_preprocess', 'run_dimensionality_reduction', 'perform_clustering' are vague). Descriptions are present but generic (avg ~80 chars, below the 194-char baseline). Most critically, 8 of 15 tools have parameters with complex types (array, object) that lack proper JSON Schema definitions, only basic type hints visible. No output schemas documented. Error handling is absent. The server conflates multiple concerns in single tools (e.g., scrape_laptops both scrapes AND downloads images). Parameter descriptions lack constraints, ranges, or format guidance. No tool annotations (readOnlyHint, destructiveHint) despite clear WRITE/READ_ONLY risk markers in metadata.
Create 3D UMAP visualization with price-based coloring
Create detailed cluster analysis visualizations with statistics by cluster
Create interactive PCA plot with Plotly showing clustering results
Create price distribution by cluster using box plots
Download product image and return local path
Extract CPU type from product title (Intel or AMD Ryzen)
Extract RAM size in GB from product title using regex patterns
Vague action verbs in tool names. 'run_preprocess', 'run_dimensionality_reduction', 'perform_clustering' do not clearly signal what the tool does. LLMs cannot infer intent from 'run' or 'perform' alone.
Complex parameter types (array, object) lack proper JSON Schema definitions. 'X_scaled' (array), 'df' (object), 'products' (array) have only type hints and generic descriptions. No itemType, properties, or constraints defined.
No output schemas documented. Tools return data but LLMs cannot plan downstream calls without knowing response structure. E.g., scrape_laptops returns 'num_products' but no field list.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Extract storage size in GB from product title, converting TB to GB
Analyze price changes over time from historical data
Perform K-Means and DBSCAN clustering on scaled features with silhouette score evaluation
Perform dimensionality reduction, clustering, and generate visualizations including PCA, UMAP, and interactive plots
Execute complete MCP automation pipeline: health check, scraping, processing, and result download
Process raw product data and extract features including RAM, storage, and CPU type
Track price changes over time by saving product prices with timestamps
Scrape Daraz for laptop products with image downloading and price tracking
No error handling guidance. Tools lack recovery hints, retryability classification, or actionable error messages. E.g., if scrape_laptops fails, LLM has no guidance on next steps.
Tool annotations missing. Despite clear WRITE/READ_ONLY risk markers in metadata, no destructiveHint or readOnlyHint annotations present in schema. Agents cannot infer safety properties.