MCP server for finding and comparing shopping deals across marketplaces.
Server has 19 tools with explicit definitions in server.py using FastMCP. All tools have descriptions (10-200 chars, mostly adequate). Input schemas are present and properly typed via function signatures. However, critical gaps exist: (1) Output schemas are NOT documented, no return type hints or response structure descriptions; (2) Parameter descriptions are minimal or absent for many tools (e.g., 'lead' in save_resale_lead is just 'object'); (3) No error handling guidance, tools return dicts with no recovery hints; (4) No tool annotations (readOnlyHint/destructiveHint) despite clear read/write distinction; (5) Many tools accept generic 'object' parameters (lead, item) with no schema visibility. Per-tool scores range 35 - 70; average ~52. This is typical of community servers, functional but not production-grade.
Summarize leads, inventory, revenue, realized profit, and ROI.
Calculate net profit, ROI, break-even sale price, and target buy price.
Calculate vehicle flip profit using eBay Motors fees and vehicle-specific costs.
Search the same product across multiple areas and compare local price ranges.
Group comparable listings and report low, high, and average observed prices.
Create a purchased inventory item for resale tracking.
Validate and decode basic VIN structure offline.
Output schemas not documented. Tools return dicts with no documented structure, field types, or pagination info. LLMs cannot plan downstream calls or extract required fields reliably.
Generic 'object' parameters with no schema. save_resale_lead and create_inventory_item accept 'lead' and 'item' as bare objects, no field definitions, types, or required keys visible. LLMs cannot construct valid payloads.
No tool annotations. All tools lack readOnlyHint/destructiveHint/idempotentHint despite clear semantic differences (e.g., mark_inventory_sold is destructive; search_products is read-only). Agents cannot reason about side effects or retry safety.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Draft an eBay title, description, pricing hint, and photo/disclosure checklist.
Find buy-side listings that may be profitable to flip on eBay.
Search products and rank the strongest deals with reasons and warnings.
Search products and return exact-model offers sorted by shipped total plus estimated tax.
Estimate resale value from eBay comps. Current implementation returns active eBay listing comps as a clearly labeled proxy. It does not fabricate true sold-listing data when a sold-comps provider is unavailable.
Fetch listing details for sources that support detail lookups.
List shopping sources and show which credentials or flags are required.
Mark an inventory item as listed for sale.
Mark inventory sold and calculate realized profit.
Save an arbitrage lead into the local reseller pipeline.
Search enabled shopping platforms and return normalized product listings.
Move a reseller lead through watching/contacted/offer/purchased/listed/sold/rejected.
No error handling guidance. Tools return dicts with no documented error cases, recovery hints, or actionable messages. If a search fails or a listing is not found, LLMs have no guidance on next steps.
Parameter descriptions sparse or missing. Many parameters lack descriptions explaining format, constraints, or valid ranges (e.g., 'condition' defaults to 'any' but no enum or valid values documented; 'location' has no format hint).