Skip to main content
Glama
alexgenovese

ecommerce-fashion-market-analysis

E-commerce Fashion Market Analysis

Fashion intelligence MCP server for AI agents.

SEO audits, trend analysis, DTC demand forecasting, CRM enrichment, and campaign creative — built for Claude Code, Cursor, Codex, and any MCP-compatible agent.

Smithery GitHub Node.js TypeScript MCP SDK License: MIT

Overview • Quick Start • Tools • Examples • Architecture • Skill Pack • Configuration


Overview

E-commerce Fashion Market Analysis is a vertical MCP server that gives your AI agent specialized fashion intelligence: SEO auditing, trend research, DTC demand forecasting, CRM segment enrichment, and campaign creative generation. It runs locally via stdio — no cloud deployment required.

Built by alexgenovese.com for fashion brands, agencies, and creators.

NOTE

What is MCP? Model Context Protocol is an open standard that lets AI agents call external tools. This server exposes fashion-specific tools that any MCP-compatible client (Claude Code, Cursor, Codex, Gemini CLI, opencode) can discover and use.

What it does

Capability

Without this server

With Fashion MCP

SEO audit

Manual checklist, generic advice

Automated score 0-100 with 5 dimension scores and fashion-specific checks (fit, material, color, season, schema, OG, Twitter Cards)

Trend research

Generic Google searches

Category-level trend intelligence with keywords, colors, silhouettes, price tiers, market fit, evidence, and confidence

Demand forecasting

Spreadsheets + gut feel

Explainable weighted-rule forecast: baseline × trend × media × retention × inventory × seasonality with scenarios and backtesting

CRM enrichment

Static segments

Customer segments enriched with trending colors/silhouettes/keywords + audience clusters + ready-to-send messaging

Campaign creative

Copywriter per channel

Platform-specific campaign themes, hooks, value propositions, and creative briefs grounded in trend data

Why it's different

  • This server needs no API keys. product_seo_audit, dtc_forecast_analysis, category_demand_outlook, customer_trend_enrichment, and campaign_theme_recommendation all work with data you provide directly. Only fashion_trend_analysis needs upstream search data, which comes from the separate Tavily MCP server (install it alongside and set TAVILY_API_KEY there — not here). Provider integrations (Shopify, Klaviyo, Meta Ads, etc.) are optional and read their own env vars when enabled.

  • Explainable outputs. Every tool returns assumptions[], dataGaps[], confidence, and recommendedNextCalls[] — your agent always knows what it's missing.

  • Write-back is opt-in. Default dry_run: true. PII filtering on every write-back. Forecasts use aggregated segments, never personal profiles.

  • Local SQLite persistence. Zero-config (~/.fashion-mcp/store.db) for snapshots, TTL cache, feature store, and forecast actuals for backtesting.

  • Tool-agnostic skill pack. 16 playbooks use ~~category placeholders so they work with any MCP server in that category (swap Shopify for WooCommerce without touching the skill).


Related MCP server: Gadget MCP Server

Quick Start

Install

git clone https://github.com/alexgenovese/ecommerce-fashion-market-analysis.git
cd ecommerce-fashion-market-analysis
npm install
npm run build

Connect to your AI agent

claude mcp add fashion -- node /path/to/ecommerce-fashion-market-analysis/dist/index.js

Then in chat:

Run a product SEO audit on "Black Leather Jacket" — url: https://mystore.com/products/black-leather-jacket, category: Outerwear, brand: Acne Studios

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "fashion": {
      "command": "node",
      "args": ["/path/to/ecommerce-fashion-market-analysis/dist/index.js"]
    }
  }
}

Add to your agent's MCP config:

{
  "mcpServers": {
    "fashion": {
      "command": "node",
      "args": ["/path/to/ecommerce-fashion-market-analysis/dist/index.js"]
    }
  }
}

Add to ~/.config/opencode/opencode.json or the project's opencode.json:

{
  "mcp": {
    "fashion": {
      "type": "local",
      "command": ["node", "/path/to/ecommerce-fashion-market-analysis/dist/index.js"],
      "enabled": true
    }
  }
}

Then restart opencode for the changes to take effect.

Add to your VS Code settings.json (Cmd+Shift+P → "Preferences: Open User Settings (JSON)"):

{
  "github.copilot.mcpServers": {
    "fashion": {
      "command": "node",
      "args": ["/path/to/ecommerce-fashion-market-analysis/dist/index.js"]
    }
  }
}

Add to your ~/.continue/config.json:

{
  "experimental": {
    "mcpServers": {
      "fashion": {
        "command": "node",
        "args": ["/path/to/ecommerce-fashion-market-analysis/dist/index.js"]
      }
    }
  }
}

Connect directly without cloning:

{
  "mcpServers": {
    "fashion": {
      "url": "https://ecommerce-fashion-market-analysis--alexgenovese.run.tools"
    }
  }
}

Tools

The server exposes 6 tools. All accept verbose (0/1/2), max_words, and format (json | markdown) for cost control and output shaping. All return explainability blocks (assumptions, dataGaps, recommendedNextCalls).

product_seo_audit

Full SEO audit of a fashion product page. Returns a score (0-100) across 5 dimensions with actionable, role-specific recommendations.

Checks: meta title length, meta description, Product JSON-LD schema completeness, image alt text, URL structure, H1 presence, fashion keywords (size, fit, material, color), seasonal context, canonical URL, hreflang, Open Graph, Twitter Cards, title/URL/H1/schema mismatch.

Parameter

Required

Description

title

Yes

Product title

url

No

Full product URL

description

No

Meta description or product description

price

No

Product price

images

No

Product images with optional alt text

category

No

Product category

brand

No

Brand name

season

No

Season context (e.g. "SS25", "FW25")

availability

No

In stock?

verbose

No

0=compact, 1=standard, 2=full (default: 1)

max_words

No

Max words in response (default: 200)

format

No

json or markdown (default: json)

Output: productTitle, score, dimensionScores (metadata, schema, content, images, fashion_relevance), checks[], recommendations[], structuredData, images[], team_actions[], assumptions[], dataGaps[], recommendedNextCalls[]

fashion_trend_analysis

Structured trend intelligence from Tavily MCP search data. Accepts results from tavily_search, tavily_search_dedup, and tavily_social_media_search — extracts trending keywords, colors, silhouettes, price tiers, market fit, and key insights.

Parameter

Required

Description

category

Yes

Product category (e.g. "denim", "sneakers", "bags")

season

No

Season filter (default: auto-detected)

market

No

Target market (e.g. "US", "EU", "global")

search_results

No

Results array from tavily_search / tavily_search_dedup

search_answer

No

AI-generated answer from Tavily (include_answer: true)

social_results

No

Results from tavily_social_media_search

verbose

No

0=compact, 1=standard, 2=full (default: 1)

max_words

No

Max words (default: 200)

format

No

json or markdown (default: json)

Output: category, season, market, generatedAt, trendingKeywords[] (with stage, confidence, evidence), trendingColors[] (with hex), silhouettes[] (rising/peaking/declining/stable), priceRanges[], marketFit (0-100), priceTierOpportunity[], keyInsights[], assumptions[], dataGaps[], recommendedNextCalls[], warnings[]

IMPORTANT

This tool doesnot make HTTP calls. It accepts data already gathered by Tavily MCP. Install Tavily MCP (@tavily/mcp) alongside — it handles search, this tool handles fashion analysis.

dtc_forecast_analysis

Weighted-rule demand forecast for DTC fashion brands. Combines a seasonal baseline with five explainable multipliers to produce a forecast score, confidence interval, driver contributions, risks, and scenario projections.

Forecast formula:

forecast = baseline × trend × media_efficiency × retention × inventory × seasonality

Parameter

Required

Description

category

Yes

Product category

market

No

Target market

season

No

Season context

horizon

No

2w, 1m, 3m, 6m (default: 3m)

stockCoverDays

No

Current days of stock cover

campaignRoas

No

Current campaign ROAS

trendingKeywords

No

Trend keywords from fashion_trend_analysis

silhouetteSignals

No

Silhouette signals from fashion_trend_analysis

format

No

json or markdown

Output: schemaVersion, databaselineDemand, forecastScore, confidenceInterval (low/high, ±20%), drivers[] (name, contribution %, explanation), risks[], scenarios[] (base/upside/downside)

category_demand_outlook

Lightweight demand snapshot by category — direction, top trend drivers, price tier winners, and inventory risk flags. Faster and cheaper than a full forecast.

Output: schemaVersion, datademandPulse (0-100), direction (up/down/stable), topDrivers[], priceTierWinners[], inventoryRiskFlags[]

customer_trend_enrichment

Enrich CRM customer segments with trend awareness. Maps trending keywords, colors, and silhouettes onto a segment profile and produces audience clusters with propensity scoring and a CRM-ready campaign message.

Output: schemaVersion, enrichedProfile, audienceClusters[] (name, propensity, recommendedAction), crmReadyMessage

campaign_theme_recommendation

Generate campaign themes for fashion brands with platform-specific copy, hooks, value propositions, and creative briefs grounded in trend data.

Output: schemaVersion, valueProposition, platformSpecific (format/tone/CTA), themeOptions[] (hooks, angles), creativeBrief (visual direction, copy angle, hashtags)

TIP

Useverbose: 0 to control token cost when running multiple calls. Use format: "json" for AI-agent consumption, format: "markdown" for human-readable reports. All tools are read-only by default; write-back is explicitly opt-in.


Examples

1. Product SEO Audit

Ask your AI agent:

Audit "Linen Blend Midi Dress" — price: $189, category: Dresses, brand: Mango, material: linen, color: cream. We're launching this for Summer 2025.

What happens: The tool checks meta title length (30-60 chars), meta description (120-158 chars), Product schema completeness, fashion keyword coverage, seasonal alignment, canonical, Open Graph, and Twitter Cards. Returns a score, 5 dimension scores, and prioritized fixes with role-specific team actions.

2. Trend Research for Seasonal Buying

Ask your AI agent:

What denim trends should I stock for this Fall? I run a contemporary denim brand.

What happens: The AI agent calls Tavily MCP (tavily_search) to get real web data, then passes the results to fashion_trend_analysis which extracts structured trend intelligence — keywords (with stage and confidence), colors (with hex), silhouettes (rising/peaking/declining), price tier opportunity, and a market fit score. No simulated data.

3. DTC Demand Forecast

Ask your AI agent:

Forecast demand for our sneakers category for the next 3 months in the US market. We have 45 days of stock cover and our campaigns are running at 3.5x ROAS.

What happens: dtc_forecast_analysis computes a baseline demand for sneakers in summer, applies five multipliers (trend, media efficiency, retention, inventory, seasonality), and returns a forecast score with a ±20% confidence interval, driver contributions (each explained), risk flags, and three scenarios (base/upside/downside).

4. CRM Segment Enrichment

Ask your AI agent:

Enrich our "VIP Female 25-35" segment (5,000 customers, prefers dresses and bags) with current Summer 2026 trends so we can target them.

What happens: customer_trend_enrichment maps trending keywords, colors, and silhouettes onto the segment, produces audience clusters with propensity scores, and generates a CRM-ready campaign message.

5. Full Competitive Intelligence Workflow

Ask your AI agent:

I'm launching a sneaker brand. Analyze the current sneaker market trends, forecast demand, audit our first product page for SEO, and generate campaign creative.

What happens: Four tools fire in sequence — fashion_trend_analysis maps the market, dtc_forecast_analysis forecasts demand, product_seo_audit checks the launch page, and campaign_theme_recommendation generates platform-specific creative. Combined output gives market positioning + demand forecast + page fixes + campaign briefs.


Architecture

The server is organized into 6 layers that separate data acquisition, domain logic, fashion intelligence, and forecasting:

┌─────────────────────────────────────────────────────────┐
│                    AI Agent                              │
│  (Claude Code, Cursor, Codex, Gemini CLI, opencode)     │
└──────────────────────┬──────────────────────────────────┘
                       │
                       │  MCP stdio (JSON-RPC)
                       │  ListTools / CallTool
                       ▼
┌─────────────────────────────────────────────────────────┐
│                fashion-mcp-server (6-layer)              │
│                                                         │
│  ┌───────────────┐ ┌────────────────────────────────┐  │
│  │  Server Layer  │ │       Domain Layer              │  │
│  │  index.ts      │ │  ├── schemas/ (16 Zod schemas) │  │
│  │  mcp.ts        │ │  ├── entities/ (canonical)     │  │
│  │  registry.ts   │ │  ├── normalization/            │  │
│  │  errors.ts     │ │  │   ├── taxonomy/             │  │
│  │  (7 classes)   │ │  │   ├── resolver.ts           │  │
│  └───────┬───────┘ │  │   └── trends.ts              │  │
│          │         │  ├── scoring/ (SEO)             │  │
│          │         │  └── forecasting/               │  │
│          │         │      ├── engine.ts              │  │
│          │         │      ├── baseline.ts            │  │
│          │         │      ├── multipliers.ts         │  │
│          │         │      ├── scenarios.ts           │  │
│          │         │      └── backtest.ts            │  │
│          ▼         └────────────────────────────────┘  │
│  ┌──────────────────────────────────────────────────┐  │
│  │                Services Layer                     │  │
│  │  trend-intelligence, seo-audit, demand-forecast   │  │
│  │  feature-store                                    │  │
│  └──────────────┬───────────────────────────────────┘  │
│                 │                                      │
│     ┌───────────┴───────────┐                          │
│     ▼                       ▼                          │
│  ┌─────────────────┐  ┌────────────────────────────┐  │
│  │  Provider Layer  │  │    Storage Layer (SQLite)  │  │
│  │  Shopify (6 mth) │  │  snapshots, cache (TTL),   │  │
│  │  CRM (3: Klaviyo,│  │  features, forecast_actuals│  │
│  │   HubSpot, webhook)│  └────────────────────────────┘  │
│  │  Meta Ads, Google│                                │
│  │  Ads, GA4, GSC   │  ┌────────────────────────────┐  │
│  └─────────────────┘  │     Utils Layer             │  │
│                       │  text, dates, validation,    │  │
│                       │  pii-filter, write-back,     │  │
│                       │  env-check, logging          │  │
│                       └────────────────────────────┘  │
└─────────────────────────────────────────────────────────┘

Layer

Role

Server

MCP stdio transport, tool registry, error taxonomy (7 classes with metadata: { provider, retryable, suggested_action })

Domain

Canonical Zod schemas (16), entities, taxonomy (40+ colors, 30 silhouettes, 15 categories, 20 synonym groups), SEO scoring (15 audit functions), forecast engine (weighted rules + backtesting)

Services

Trend intelligence, SEO audit, demand forecast, feature store orchestration

Providers

Shopify (6 methods), CRM (Klaviyo + HubSpot stub + custom webhook), Meta Ads, Google Ads, GA4, Search Console — all normalize external payloads into canonical signals

Storage

SQLite (better-sqlite3, WAL mode) — snapshots, cache (TTL), features, forecast_actuals

Utils

Text cleaning, date helpers, validation, PII filter (email/phone/card redaction), write-back guard (dry_run/allow_writeback/destination), env checks (non-blocking), JSON logging

Forecast engine

The forecast engine is a weighted-rule model that is fully explainable:

forecast_score = baseline_demand
               × trend_multiplier
               × media_efficiency_multiplier
               × retention_multiplier
               × inventory_multiplier
               × seasonality_multiplier
  • Baseline: 9 categories × 4 seasons with market adjustment

  • Multipliers: each returns a value and a human-readable explanation

  • Confidence interval: ±20% around the forecast score

  • Scenarios: base, upside (+20%), downside (-20%) with explicit adjustments

  • Driver contributions: each driver reports its contribution % and explanation

  • Backtesting: MAPE, WAPE, directional accuracy, bias, interval coverage — stored in forecast_actuals table

Error taxonomy

7 error classes, all extending McpError with structured metadata:

Class

When

Retryable

ValidationError

Invalid input (Zod parse failure)

No

ConnectorAuthError

Missing/invalid provider credentials

No

ConnectorRateLimitError

Provider rate limit hit

Yes (backoff)

ConnectorUnavailableError

Provider unreachable

Yes

NormalizationError

Payload can't be normalized

No

ForecastComputationError

Forecast engine failure

No

MissingBaselineError

No baseline for category/season

No

Privacy & safety

  • PII filter: stripPii() redacts emails, phone numbers, credit cards on every write-back

  • Aggregated-only forecasts: forecasts operate on segments, never personal profiles — isAggregatedOnly() guard

  • Write-back opt-in: default dry_run: true; must explicitly set allow_writeback: true + destination to write

  • Non-blocking env checks: providers are optional; missing credentials degrade gracefully


Skill Pack

This repo includes 16 markdown playbooks in fashion-mcp-skills/skills/ that orchestrate MCP servers into fashion-specific workflows. Skills use tool-agnostic ~~category placeholders so they work with any MCP server in that category — swap vendors without touching the playbook.

Playbook

Problem it solves

Required categories

seo-audit-fashion

Full SEO audit for fashion e-commerce

~~ecommerce + ~~SEO

competitor-intelligence

Competitor analysis in 10 minutes

~~analytics + ~~SEO + ~~ecommerce + ~~ads + ~~search

competitor-pricing-audit

Compare your prices with competitors

~~ecommerce + ~~analytics + fashion-mcp-server

trend-report

Monthly trend report by category

fashion-mcp-server + ~~search + ~~SEO

ad-copy-fashion

Fashion ad copy for FB/IG/TikTok

~~ecommerce + ~~ads + fashion-mcp-server

full-store-audit

360-degree fashion store audit

All categories

inventory-health-check

Sell-through, stockout risk, markdown alerts

~~ecommerce + ~~analytics

seasonal-drop-planner

Seasonal drop planning

fashion-mcp-server + ~~SEO + ~~ads + ~~ecommerce

email-campaign-fashion

Fashion email campaigns

~~ecommerce + ~~CRM + fashion-mcp-server

social-content-calendar

Weekly fashion social content

fashion-mcp-server + ~~ads + ~~ecommerce

product-launch-checklist

Pre-launch checklist

~~ecommerce + ~~SEO + fashion-mcp-server

brand-visibility-llm

AI search visibility score

~~SEO + ~~search

dtc-forecast

DTC demand forecast

fashion-mcp-server (~~forecast)

category-demand-pulse

Quick demand snapshot

fashion-mcp-server (~~forecast)

customer-trend-enrichment

Enrich CRM with trend data

fashion-mcp-server (~~enrichment)

campaign-theme

Campaign creative briefs

fashion-mcp-server (~~campaign)

See fashion-mcp-skills/CONNECTORS.md for the full category→placeholder mapping.

IMPORTANT

The skill pack is the primary product for 85% of the market. The MCP server is for early adopters comfortable with MCP setup. The skills work with any MCP-compatible agent — no custom server required.

Install skills

# Claude Code
cp -r fashion-mcp-skills/skills/* ~/.claude/skills/

# Cursor
cp -r fashion-mcp-skills/skills/* ~/.cursor/skills/

# Codex
cp -r fashion-mcp-skills/skills/* "${CODEX_HOME:-$HOME/.codex}/skills/"

Configuration

This server itself needs no API keys to start — 5 of 6 tools (product_seo_audit, dtc_forecast_analysis, category_demand_outlook, customer_trend_enrichment, campaign_theme_recommendation) work with data you pass directly. The only prerequisite is TAVILY_API_KEY, which belongs to the separate Tavily MCP server that feeds search data to fashion_trend_analysis. Provider integrations (Shopify, Klaviyo, Meta Ads, etc.) are optional — set their env vars to enable them. Missing credentials degrade gracefully (non-blocking).

Variable

Required

Description

TAVILY_API_KEY

Yes (for Tavily MCP only)

Required by @tavily/mcp (separate server). Not used by this server directly

SHOPIFY_STORE

No

Shopify store domain

SHOPIFY_ACCESS_TOKEN

No

Shopify Admin API access token

KLAVIYO_API_KEY

No

Klaviyo API key (CRM provider)

HUBSPOT_API_KEY

No

HubSpot API key (CRM provider, stub)

CRM_WEBHOOK_URL

No

Custom CRM webhook URL

META_ACCESS_TOKEN

No

Meta Ads access token

META_AD_ACCOUNT_ID

No

Meta Ads account ID

GOOGLE_ADS_DEVELOPER_TOKEN

No

Google Ads developer token

GOOGLE_ADS_CUSTOMER_ID

No

Google Ads customer ID

GA4_PROPERTY_ID

No

Google Analytics 4 property ID

GSC_CLIENT_EMAIL

No

Search Console service account email

GSC_PRIVATE_KEY

No

Search Console private key

DEBUG_FASHION_MCP

No

Set to 1 for structured JSON debug logging

A ready-to-use MCP config template is at .mcp.json.example.

IMPORTANT

fashion_trend_analysis requires Tavily MCP (@tavily/mcp) to gather search data first. Install both servers side by side — the AI agent orchestrates: Tavily MCP for search → this server for structured analysis. product_seo_audit works with data you provide directly and does not require any API keys.


Development

npm run dev          # Dev mode with hot reload
npm run typecheck    # Type checking
npm run build        # Production build
npm run start        # Run the server
npm test             # Run unit + e2e tests (141 tests)
npm run test:watch   # Watch mode

Testing

The project includes 141 tests across 13 test files:

Suite

Tests

Coverage

normalization.test.ts

16

Text cleaning, season detection, keyword/color/silhouette extraction, confidence, stage

seo-scoring.test.ts

15

All 15 SEO audit functions + dimension scoring + team actions

forecast.test.ts

12

Baseline, multipliers, computeForecast, backtest metrics

taxonomy.test.ts

11

Dictionary, synonyms, classifier, normalization

errors.test.ts

7

All 7 error classes with metadata

pii-filter.test.ts

7

PII redaction, aggregated-only guard

e2e.test.ts

3

Full MCP server lifecycle: ListTools + CallTool for 3 tools

Add a new tool

  1. Create src/tools/<name>.ts

  2. Define Zod input schema

  3. Implement execute<Name> function

  4. Export tool object with name, description, inputSchema, outputSchema, handler

  5. Register in src/server/registry.ts

See docs/ARCHITECTURE.md for details.


Project Structure

src/                           # MCP server (Node/TypeScript)
├── index.ts                   # Server entry point
├── server/                    # Server layer
│   ├── mcp.ts                 # MCP bootstrap (ListTools + CallTool)
│   ├── registry.ts            # Tool registry (6 tools)
│   └── errors.ts              # Error taxonomy (7 classes)
├── domain/                    # Domain layer
│   ├── schemas/               # 16 Zod schemas (canonical)
│   ├── entities/              # Core entities
│   ├── normalization/         # Taxonomy + entity resolution
│   │   ├── taxonomy/          # dictionary, synonyms, classifier
│   │   ├── resolver.ts        # Entity dedup
│   │   ├── trends.ts          # Keyword/color/silhouette extraction
│   │   └── tavily.ts          # Content collection
│   ├── scoring/               # SEO scoring (15 audit functions)
│   ├── forecasting/           # Forecast engine + backtesting
│   │   ├── engine.ts          # computeForecast
│   │   ├── baseline.ts        # 9 categories × 4 seasons
│   │   ├── multipliers.ts     # 5 multipliers
│   │   ├── scenarios.ts       # base/upside/downside
│   │   └── backtest.ts        # MAPE, WAPE, directional accuracy
│   └── recommendations/       # Team actions generator
├── services/                  # Service layer
│   ├── trend-intelligence-service.ts
│   ├── seo-audit-service.ts
│   ├── demand-forecast-service.ts
│   └── feature-store-service.ts
├── providers/                 # Provider layer (normalizers)
│   ├── shopify/               # 6 methods
│   ├── crm/                   # Klaviyo, HubSpot, webhook
│   ├── meta-ads/
│   ├── google-ads/
│   ├── ga4/
│   └── search-console/
├── storage/                   # SQLite storage (better-sqlite3, WAL)
├── utils/                     # Utilities
│   ├── text.ts, dates.ts, validation.ts, logging.ts
│   ├── pii-filter.ts          # PII redaction
│   ├── write-back.ts          # Write-back guard
│   └── env-check.ts           # Non-blocking env checks
├── tools/                     # 6 tool implementations
├── types/fashion.ts           # Shared types
└── __tests__/                 # Unit + e2e tests (141)

fashion-mcp-skills/            # Skill pack (16 playbooks)
├── skills/                    # Playbook .md files
├── CONNECTORS.md              # Category→placeholder mapping
├── README.md
└── CLAUDE.md

docs/                          # Project docs
├── ROADMAP.md                 # 8-sprint roadmap
├── PAIN-MATRIX.md             # Pain analysis
├── ARCHITECTURE.md            # Architecture details
├── MCP-INTEGRATION-GUIDE.md   # External MCP integration
└── MARKETPLACE_DEPLOYMENT.md  # Publishing guide

Roadmap status

All 8 sprints from docs/ROADMAP.md are complete:

Sprint

Status

Deliverable

1 — Structural refactor

✅ Done

6-layer architecture, 7 error classes, utils extraction

2 — Canonical data model

✅ Done

16 Zod schemas, entities, taxonomy (40+ colors, 30 silhouettes), entity resolution

3 — Connector layer + SQLite

✅ Done

Shopify (6 methods), CRM (Klaviyo + HubSpot + webhook), Meta/Google Ads, GA4, GSC, SQLite

4 — Tool v2.5

✅ Done

Confidence, evidence, stage, marketFit, priceTierOpportunity, dimension scores, explainability

5 — Forecast engine

✅ Done

Weighted-rule model, 4 new tools (forecast, demand outlook, enrichment, campaign)

6 — Write-back + PII

✅ Done

dry_run/allow_writeback/destination, PII filter, env checks

7 — Backtesting

✅ Done

MAPE, WAPE, directional accuracy, bias, interval coverage

8 — Hardening

✅ Done

141 tests, e2e suite, skill pack placeholder refactor, CONNECTORS.md, .mcp.json.example


Marketplace

Published on:

See docs/MARKETPLACE_DEPLOYMENT.md for deployment instructions.


Resources

Available Tools

2 tools
fashion_trend_analysisA
Read-onlyIdempotent

Analyze current fashion trends for a specific product category. Returns trending keywords (search volume direction), trending colors with hex codes, silhouette trends (rising/peaking/declining), price tier demand, and key strategic insights. Built-in data for: denim, sneakers, bags, dresses. Other categories return limited data with an invitation for custom research.

Use this when a fashion brand needs trend intelligence for content planning, product development, or seasonal merchandising strategy.

Cost control: use verbose (0=quick insight ~50 words, 1=standard ~200 words, 2=detailed ~500 words) and max_words to control output size and token cost.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketNoTarget market (default: global)
seasonNoSeason filter (default: current detected season)
verboseNoOutput detail level: 0=minimal (top keywords + insights, ~50 words), 1=standard (~200 words), 2=detailed (~500 words). Default: 1.
categoryYesProduct category (denim, sneakers, bags, dresses, or custom)
max_wordsNoMaximum words in response. Controls token cost. Default: 200. Overrides verbose budget if set.
timeframeNoAnalysis timeframe (default: 1m)

Output Schema

ParametersJSON Schema
NameRequiredDescription
marketYes
seasonYes
categoryYes
generatedAtYes
keyInsightsYes
priceRangesYes
silhouettesYes
trendingColorsYes
trendingKeywordsYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds behavioral details: returns specific output types, notes built-in data limitations for certain categories, and cost control via verbose/max_words. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise at ~150 words, front-loaded with purpose, then details. Every sentence adds value. Well-structured with clear sections.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present, description needn't detail return values. Covers main features: supported categories, output types, cost control, and usage context. Slightly lacking on how timeframe affects data, but adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. Description adds value by explaining verbose levels (quick insight, standard, detailed) and cost control. Also mentions default season detection and category limitations. Contributes beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Analyze current fashion trends for a specific product category' and lists specific outputs (keywords, colors, silhouettes, etc.). It mentions supported categories and distinguishes from sibling 'product_seo_audit' implicitly by focusing on trends.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit usage context: 'Use this when a fashion brand needs trend intelligence for content planning, product development, or seasonal merchandising strategy.' Also provides cost control guidance. No explicit when-not-to-use or alternatives, but clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

product_seo_auditA
Read-onlyIdempotent

Audit a fashion product page for SEO best practices. Checks meta title length, meta description, product structured data (JSON-LD), image alt text, URL structure, H1 presence, fashion-specific keywords (size, fit, material), and seasonal context. Returns a score (0-100), per-check results, and actionable recommendations.

Use this whenever a fashion brand wants to optimize a product listing for organic search. Works for any e-commerce platform (Shopify, Magento, custom).

Cost control: use verbose (0=quick check ~50 words, 1=standard ~200 words, 2=detailed ~500 words) and max_words to control output size and token cost.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoFull product URL
tagsNoProduct tags
brandNoBrand name
priceNoProduct price
titleYesProduct title (required)
imagesNoProduct images with optional alt text
seasonNoSeason context (e.g. Spring 2025, Fall/Winter 2025)
verboseNoOutput detail level: 0=minimal (score + top issues, ~50 words), 1=standard (~200 words), 2=detailed (~500 words). Default: 1.
categoryNoProduct category (e.g. Dresses, Sneakers, Bags)
max_wordsNoMaximum words in response. Controls token cost. Default: 200. Overrides verbose budget if set.
collectionNoCollection name (e.g. Summer 2025, FW25)
descriptionNoMeta description or product description
availabilityNoWhether the product is in stock

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNo
scoreYes
checksYes
imagesYes
productTitleYes
structuredDataNo
recommendationsYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly, idempotent, and non-destructive. The description adds valuable context: it checks multiple specific elements, returns a score per check and recommendations, and includes cost control details via verbose and max_words. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with 4 informative sentences, each serving a purpose. It is front-loaded with the main action. A slightly tighter structure could be possible, but it remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (13 parameters, output schema exists), the description is thorough: it covers purpose, checks, usage context, return format, and cost control. Everything an agent needs is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining how `verbose` and `max_words` control output size and token cost, which goes beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool audits a fashion product page for SEO best practices, listing specific checks (meta title, description, JSON-LD, etc.). It distinguishes from sibling 'fashion_trend_analysis' by focusing on SEO audit, providing a specific verb+resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Use this whenever a fashion brand wants to optimize a product listing for organic search' and notes it works for any e-commerce platform. Does not include exclusion criteria, but the guidance is clear and sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv1.0.0
    • First observedfashion_trend_analysis
    • First observedproduct_seo_audit

TDQS

A4.2/5.0

Scored across 2 tools

Disambiguation5/5

The two tools serve entirely different purposes: one analyzes fashion trends, the other audits product SEO. There is no overlap or ambiguity.

Naming Consistency5/5

Both tools use consistent snake_case naming with a clear pattern: fashion_trend_analysis and product_seo_audit. The naming is descriptive and predictable.

Tool Count2/5

With only 2 tools, the server is undersized for its stated domain of e-commerce fashion market analysis. A typical server of this scope would need at least 5-10 tools to cover core functionalities like product data, competitor analysis, etc.

Completeness2/5

The server lacks essential tools for market analysis, such as product retrieval, competitor benchmarking, pricing data, or inventory insights. The trend analysis is limited to a few categories, and the SEO audit is a single-point check. Significant gaps prevent comprehensive market analysis.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    The Vistoya MCP server gives AI agents direct access to a curated, multi-brand fashion catalog. Agents can search by structured filters, discover products through natural language, find similar items, and retrieve full product details — all over a single Streamable HTTP connection.
    7 npm
    MIT
  • -
    license
    Not graded
    quality
    C
    maintenance
    Self-hosted MCP server that provides web scraping and crawling tools, integrating seamlessly with AI frameworks like OpenAI Agents SDK, Cursor, and Claude Code.
    4
    -