Skip to main content
Glama
tody-agent

affiliate-marketplace-mcp

by tody-agent

🌐 Affiliate Marketplace Connector (affiliate-marketplace-connector)

Python Version License: MIT Tests Status MCP Server Platform Video Engine

Affiliate Marketplace Connector (CLI: afflite, MCP: affiliate-marketplace-mcp) is an orchestration hub and dedicated Model Context Protocol (MCP Server) for the multi-platform affiliate marketing ecosystem (Affiliate E-Commerce Intelligence) (Shopee & TikTok Shop).

The system enables AI Agents (Antigravity, Claude Code, Cursor, Codex, OpenClaw) to fully automate the workflow:

  1. Search for Win products & cluster prices across platforms.

  2. Assess store reputation & health (Merchant Health Score).

  3. Deep-extract PDP specs & classify SKUs via the "Select options" drawer.

  4. Curate 10+ high-quality seed reviews with video/photos to drive conversion (Seed Social Proof).

  5. Generate 45s video scripts & visual prompts per Google Flow (Veo 3.1) standards.

  6. Package directly into VideoFactory project folders (AIEV / HyperFrames) with a real-time Web Preview interface.

πŸ“– See the Comprehensive Playbook: MMO Batch Automation Playbook & 5 Real-World JTBDs


🎯 5 JTBD Maps (Jobs-To-Be-Done) & 100x Automation MMO Mindset

The system is designed around 5 core problems (Jobs-To-Be-Done) for affiliate marketers and large-scale MMO operators:

JTBD

Situation & Motivation

Expected Outcome

Execution Command (afflite)

1. Hunt for Win Products

Need to find hot products with high sales volume in the fast-conversion price range (150k - 500k).

Filter out the top 5-10 products with Affiliate Win Score > 9.0 within 3 seconds.

afflite search all "<keyword>"

2. Vet Stores

Avoid stores with slow shipping, counterfeit goods, or high cancellation rates that wipe out commissions.

Only partner with stores having Seller Health Score > 85/100 and an on-time delivery rate >98%.

afflite seller [shopee|tiktok] "<shop>"

3. Extract Pain Points & Reviews

Need to write scripts that hit psychological triggers without having a sample product in hand.

Automatically deep-dive into 10-15 real reviews with video/photos, tagging pain points and reasons customers praise the product.

afflite product "<url>"

4. Mass-Produce 45s Videos

Need to cover 20-50 videos/day across a channel matrix without spending on actors or production crews.

Generate 6-scene CRO scripts with Veo 3.1 prompts and package into a VideoFactory AIEV folder.

afflite make-video "<product_id>"

5. 24/7 Multi-Agent Operations

Want the system to run autonomously in the background and scale without headcount limits.

AI Agents automatically coordinate via 9 MCP JSON-RPC 2.0 tools.

affiliate-marketplace-mcp


Related MCP server: BopMarket MCP Server

πŸ— System Architecture

graph TD
    subgraph AI Clients & Agents
        AG[Google Antigravity] 
        CC[Claude Code / Desktop]
        CR[Cursor IDE / Codex]
        VF_API[VideoFactory Web Router]
    end

    subgraph MCP Server & Orchestration Layer
        MCP[affiliate-marketplace-mcp<br/>JSON-RPC 2.0 Stdio]
        CLI[afflite CLI Orchestrator]
    end

    subgraph Core Intelligence Engines
        ShopeeEngine[Shopee Research Suite]
        TikTokEngine[TikTok Shop Suite]
    end

    subgraph Data Processing & Scorer
        SearchCluster[Search & Price Clustering]
        SellerAuditor[Merchant Health & Trust Scorer]
        PDPExtractor[Deep PDP & SKU Options Extractor]
        ReviewCurator[Seed Review & Media Curator]
    end

    subgraph Storage & Export Pipeline
        DB[(SQLite Database<br/>products.db)]
        PromptGen[AI Video Storyboard & Veo 3.1 Engine]
        VFBridge[VideoFactory AIEV Bridge]
    end

    AG -->|MCP Tools/Call| MCP
    CC -->|MCP Tools/Call| MCP
    CR -->|MCP Tools/Call| MCP
    VF_API -->|Direct Call| CLI

    MCP --> ShopeeEngine
    MCP --> TikTokEngine
    CLI --> ShopeeEngine
    CLI --> TikTokEngine

    ShopeeEngine --> SearchCluster & SellerAuditor & PDPExtractor
    TikTokEngine --> SearchCluster & SellerAuditor & PDPExtractor

    SearchCluster & SellerAuditor & PDPExtractor & ReviewCurator --> DB
    DB --> PromptGen & VFBridge
    VFBridge -->|Generate Folder| VFBundles["VideoFactory Projects (/video-projects/<slug>)<br/>β€’ meta.json β€’ index.html β€’ assets/hero.jpg β€’ transcript_tts.txt"]

⚑ 9 Native MCP Tools (tools/list)

When connecting to the affiliate-marketplace-mcp MCP server, AI Agents get direct access to 9 tools:

Tool Name

Function

Key Parameters

search_affiliate_products

Search for potential products simultaneously on Shopee & TikTok Shop, expand keywords, and score Win.

query (str), platform (all | shopee | tiktok)

audit_seller

Audit store credibility (Mall/Official), on-time delivery rate, cancellation rate, discount codes.

shop (str), platform (shopee | tiktok)

extract_product_intelligence

Extract detailed specs, 5 SKUs from the Select options drawer, and 10+ reviews with video/photo attachments.

url (str)

get_seed_reviews

Extract seed reviews classified by Pain Points & Objections to serve as social proof.

product_id (str), has_media_only (bool), limit (int)

create_videofactory_project

Create a complete VideoFactory (AIEV) project folder with standard meta.json, index.html, and a 6-scene CRO script.

product_id (str), voice_engine (VieNeu-TTS | Gemini)

generate_video_storyboard

Generate 45s AI video scripts (PAS/AIDA) with ultra-detailed image description prompts for Veo 3.1.

product_id (str)

query_marketplace_database

Query the SQLite products.db data store directly (products, variants, stores, video projects).

query_type (products | variants | reviews | shops | video_projects), limit (int)

marketplace_doctor

Comprehensively diagnose system health: SQLite database, VideoFactory engine, Chrome automation session, MCP configs.

{} (none)

marketplace_repair

Automatically repair SQLite tables, fix VideoFactory folder permissions, and sync MCP configs for AI clients.

{} (none)


πŸ“¦ Installation Guide

1. Install Source Code & CLI

# Clone repository tα»« GitHub
git clone https://github.com/tody-agent/affiliate-marketplace-connector.git
cd affiliate-marketplace-connector

# CΓ i Δ‘αΊ·t dαΊ‘ng package phΓ‘t triển (Editable Mode)
pip install -e .

After installation, the system registers the following console commands in your Terminal:

  • afflite: All-in-one CLI for multi-platform affiliate management & VideoFactory.

  • affiliate-marketplace-mcp: MCP JSON-RPC 2.0 server over Stdio.

  • shopee-cli: Dedicated CLI for Shopee Research & Cross-Audit.

  • shopee-research: Shopee scanning and extraction toolkit.

  • tiktok-research: TikTok Shop scanning and extraction toolkit.


2. Configure Environment Variables (Optional)

The system automatically uses relative paths within the source directory. To customize, you can set:

# Đường dαΊ«n file SQLite lΖ°u trα»― dα»― liệu
export AFFLITE_DB_PATH="/path/to/your/data/products.db"

# ThΖ° mα»₯c xuαΊ₯t dα»± Γ‘n VideoFactory (AIEV)
export VIDEOFACTORY_PROJECTS_DIR="/path/to/your/VideoFactory/video-projects"

3. Register the MCP Server for AI Assistants

A. For Google Antigravity CLI

Add to Antigravity's MCP config file (~/.gemini/antigravity-cli/mcp_config.json):

{
  "mcpServers": {
    "affiliate-marketplace": {
      "command": "affiliate-marketplace-mcp"
    }
  }
}

B. For Claude Desktop App

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "affiliate-marketplace": {
      "command": "affiliate-marketplace-mcp"
    }
  }
}

C. For Cursor IDE

Add to ~/.cursor/mcp.json or the Cursor Settings > MCP section:

{
  "mcpServers": {
    "affiliate-marketplace": {
      "command": "affiliate-marketplace-mcp"
    }
  }
}

πŸ’» CLI Usage Guide (afflite)

1. Search for Potential Products (search)

# QuΓ©t cαΊ£ 2 sΓ n Shopee & TikTok Shop
afflite search all "chuα»™t cΓ΄ng thΓ‘i học"

# QuΓ©t riΓͺng Shopee
afflite search shopee "bΓ n phΓ­m cΖ‘ khΓ΄ng dΓ’y"

# QuΓ©t riΓͺng TikTok Shop
afflite search tiktok "Δ‘Γ¨n rgb mini quay video"

2. Audit Store Credibility (seller)

# ThαΊ©m Δ‘α»‹nh gian hΓ ng Shopee Mall
afflite seller shopee "Ugreen Official Mall"

# ThαΊ©m Δ‘α»‹nh gian hΓ ng TikTok Shop
afflite seller tiktok "Photoolex Official Store"

3. Extract Product & Variant SKUs (product)

# Tα»± Δ‘α»™ng nhαΊ­n diện Shopee hay TikTok Shop tα»« link hoαΊ·c ID
afflite product "https://shopee.vn/product-url"
afflite product "https://www.tiktok.com/view/product/1729463065317050819"

4. Run the Full Automated Pipeline (pipeline)

# Tα»± Δ‘α»™ng bung tα»« khΓ³a -> Lọc top sαΊ£n phαΊ©m -> ThαΊ©m Δ‘α»‹nh Shop -> BΓ³c tΓ‘ch SKU & Reviews -> LΖ°u DB
afflite pipeline all "phα»₯ kiện setup gΓ³c lΓ m việc"

5. Generate Video Scripts & Integrate VideoFactory (make-video)

# XuαΊ₯t kα»‹ch bαΊ£n 6 cαΊ£nh vΓ  prompt Veo 3.1 ra mΓ n hΓ¬nh terminal
afflite video-prompt "shopee_ugreen_mouse_44426785177"

# TαΊ‘o trọn gΓ³i thΖ° mα»₯c dα»± Γ‘n VideoFactory (AIEV)
afflite make-video "tiktok_prod_1729463065317050819"

# Liệt kΓͺ danh sΓ‘ch tαΊ₯t cαΊ£ cΓ‘c dα»± Γ‘n VideoFactory Δ‘Γ£ sinh
afflite video-projects

6. Reports & Data Export (report / export)

# Xem bΓ‘o cΓ‘o tα»•ng hợp cΓ‘c sαΊ£n phαΊ©m vΓ  biαΊΏn thể trong SQLite
afflite report

# XuαΊ₯t dα»― liệu kα»‹ch bαΊ£n dαΊ‘ng Markdown hoαΊ·c JSON
afflite export "shopee_ugreen_mouse_44426785177" --format md

🐍 Using via Python Code (Programmatic API)

from afflite import (
    run_shopee_search,
    run_shopee_seller,
    run_shopee_product,
    run_tiktok_search,
    run_tiktok_seller,
    run_tiktok_product,
    generate_video_prompt_package,
    get_connection
)
from afflite.video_factory_bridge import create_videofactory_project

# 1. Tìm kiếm sản phẩm TikTok Shop
tiktok_results = run_tiktok_search("Δ‘Γ¨n rgb mini nam chΓ’m")
print(f"TΓ¬m thαΊ₯y {tiktok_results['total_found']} sαΊ£n phαΊ©m tiềm nΔƒng.")

# 2. BΓ³c tΓ‘ch sαΊ£n phαΊ©m & reviews
prod_data = run_tiktok_product("https://www.tiktok.com/view/product/1729463065317050819")
print(f"Đã lΖ°u sαΊ£n phαΊ©m: {prod_data['product_name']} (Điểm Win: {prod_data['win_potential_score']}/10)")

# 3. TαΊ‘o thΖ° mα»₯c dα»± Γ‘n VideoFactory
vf_project = create_videofactory_project(prod_data["product_id"])
print(f"Đã tẑo VideoFactory Project tẑi: {vf_project['project_path']}")
print(f"Xem preview tαΊ‘i: {vf_project['web_ui_url']}")

πŸ—„ SQLite Database Structure (products.db)

The system manages relational data following 3NF normalization standards:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚        products         β”‚       β”‚          shops          β”‚
│─────────────────────────│       │─────────────────────────│
β”‚ id (PK)                 β”‚       β”‚ shop_id (PK)            β”‚
β”‚ platform (Shopee/TikTok)│◄──┐   β”‚ shop_name, username     β”‚
β”‚ shop_id (FK) ───────────┼───┼──►│ rating_star, followers  β”‚
β”‚ product_name, brand     β”‚   β”‚   β”‚ response_rate, score    β”‚
β”‚ sale_price_min, max     β”‚   β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ total_sold, rating_scoreβ”‚   β”‚                β”‚
β”‚ win_potential_score     β”‚   β”‚                β–Ό
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
             β”‚                β”‚   β”‚      shop_vouchers      β”‚
             β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β–Ίβ”‚β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”‚
             β”‚                β”‚   β”‚ voucher_code, discount  β”‚
             β–Ό                β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚    product_variants     β”‚   β”‚   β”‚     search_sessions     β”‚
│─────────────────────────│   β”‚   │─────────────────────────│
β”‚ sku_name, color, price  β”‚   β”‚   β”‚ id (PK), seed_idea      β”‚
β”‚ connectivity, status    β”‚   β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚                β”‚
             β”‚                β”‚                β–Ό
             β–Ό                β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚   β”‚     search_results      β”‚
β”‚     product_reviews     β”‚   β”‚   │─────────────────────────│
│─────────────────────────│   β”‚   β”‚ keyword, price_tier     β”‚
β”‚ username, rating        β”‚   β”‚   β”‚ affiliate_win_score     β”‚
β”‚ review_text, media_type β”‚   β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ pain_point_tag, score   β”‚   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
             β”‚                β”‚
             β–Ό                β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  ai_marketing_insights  β”‚   β”‚
│─────────────────────────│   β”‚
β”‚ target_audience, USP    β”‚   β”‚
β”‚ hook_drama, PAS, AIDA   β”‚   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
             β”‚                β”‚
             β–Ό                β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚      product_media      β”‚   β”‚
│─────────────────────────│   β”‚
β”‚ source_url, local_path  β”‚β”€β”€β”€β”˜
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

❓ FAQ β€” Frequently Asked Questions

Q1: What mechanism does the affiliate-marketplace-mcp MCP server run on?

The server uses the Model Context Protocol (MCP) standard over Stdio (JSON-RPC 2.0). When AI Assistants (Antigravity, Claude, Cursor) launch, the server automatically establishes a connection via standard input/output without opening any auxiliary network ports, ensuring security and millisecond-level response times.

Q2: How does the SKU variant extraction mechanism in TikTok Shop's "Select options" work?

TikTok Shop PDPs hide variants behind the interactive "Select options" drawer. The system activates a Chrome Automation session to open the drawer, decodes the price structure by each classification (Combo, Color, Power Source), and fully extracts floor/ceiling prices into the product_variants table.

Q3: What does the generated VideoFactory (AIEV) project folder include?

When running afflite make-video <product_id>, the project folder is automatically generated at /Volumes/Agency/VideoFactory/video-projects/<slug> and includes:

  • meta.json: Standard VideoFactory JSON format with 6 CRO scenes (Hook, Problem, Reveal, USP, Social Proof, CTA).

  • hyperframes.json & index.html: HTML5/CSS3 HyperFrames motion graphics structure at 1080x1920 30fps.

  • assets/hero.jpg: Sharp original product image.

  • assets/transcript_tts.txt: Vietnamese voice-over transcript with per-second timestamps for use with VieNeu-TTS / OmniVoice.

Q4: How do I change the SQLite products.db file when running on another machine?

Simply set the environment variable:

export AFFLITE_DB_PATH="/duong_dan_moi/products.db"

All CLI tools and the MCP Server will automatically point to the new path without any code changes.

Q5: What formulas are used to calculate the Affiliate Win Score and Seller Health Score?

  • Affiliate Win Score (0 - 10): Calculated based on 4 weighted factors: Verified sales count (35%), Star rating score (25%), Impulse Buy fast-conversion price range 150k-500k (20%), and Shopee Mall / Official Shop store status (20%).

  • Seller Health Score (0 - 100): Assessed based on: Average star rating (35 pts), On-time delivery rate (25 pts), Low cancellation rate under 1% (20 pts), Chat response speed & follower count (20 pts).

Q6: Is there support for video generation commands for Google Flow (Veo 3.1)?

Yes. The 6-scene scripts in video-prompt and make-video are specially designed with detailed visual prompts (Extreme close-up, 3D panning, 8k photorealistic, lighting setup) that are 100% compatible with Google Flow (gflow CLI Veo 3.1).


πŸ§ͺ Automated Testing (Unit Testing)

Run the test suite with 18 test scenarios:

python3 -m unittest discover tests

Results:

..................
----------------------------------------------------------------------
Ran 18 tests in 4.228s

OK

The project is distributed under the MIT License. Developed and maintained by tody-agent.

Available Tools

9 tools
audit_sellerA

Audit store metrics, fulfillment reliability (on-time dispatch rate, cancellation rate), seller health score (0-100), and vouchers on Shopee or TikTok Shop.

ParametersJSON Schema
NameRequiredDescriptionDefault
shopYesShop name, username or shop URL
platformYesTarget platform

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It conveys a read-oriented analysis by enumerating the audited metrics and the seller health score range, but it does not mention authentication needs, potential side effects, or return format.

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?

The description is a single, front-loaded sentence with no filler. It packs the action, resource, specific metrics, and platform scope into a compact and well-organized format.

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?

For a two-parameter tool with full schema coverage, the description is mostly sufficient: it states the audit scope, key metrics, and target platforms. The lack of an output schema is partially mitigated by enumerating the metrics, though return structure and any prerequisites are not described.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters. The description adds no parameter-specific detail beyond the schema; it restates the platform scope but does not clarify the shop parameter format beyond what is already provided.

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

Purpose4/5

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

The description uses a specific verb ('Audit') and resource ('store metrics, fulfillment reliability, seller health score, vouchers') scoped to Shopee or TikTok Shop. It clearly states what the tool does, but it does not explicitly differentiate itself from sibling tools such as marketplace_doctor.

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

Usage Guidelines3/5

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

The verb 'Audit' implies when to use the tool, but the description provides no explicit guidance about when to prefer it over alternatives or any exclusions. There is no mention of sibling tools or conditions that would make another tool more appropriate.

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

create_videofactory_projectB

Create a complete ready-to-render VideoFactory (AIEV) project folder at /Volumes/Agency/VideoFactory/video-projects/ with 6 CRO scenes, meta.json, and assets.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesProduct ID from SQLite database
voice_engineNoTTS voice engineVieNeu-TTS

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It says the tool 'creates' a folder, implying a write operation, but does not disclose side effects such as overwriting existing files, required permissions, or failure behavior. It also doesn't state what happens if the folder already exists or if the product_id is invalid.

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?

A single sentence that front-loads the primary action and includes the most critical details (path, number of scenes, file structure). No filler or repetition; every word contributes.

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

Completeness3/5

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

The description is fairly brief for a tool that assembles a multi-file project. It doesn't explain the return value (e.g., the full path) or mention any dependencies on sibling tools (e.g., storyboard generation). Given no output schema and no annotations, this gap prevents full completeness, though the main deliverable is clearly stated.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters ('product_id' and 'voice_engine') are already described in the schema. The description adds no additional parameter context beyond what the schema provides, so the baseline of 3 applies.

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 states a specific action ('Create') and a specific resource ('VideoFactory (AIEV) project folder') with concrete details (6 CRO scenes, meta.json, assets) and a precise path template. It is clearly distinct from all siblings, which involve searching, auditing, extracting, reviewing, or storyboardingβ€”none of which create a project folder.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives or prerequisites. It doesn't mention that it likely depends on a prior storyboard or product intelligence step, nor does it state when not to use it. The sibling 'generate_video_storyboard' suggests a pipeline, but the description leaves that implicit.

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

extract_product_intelligenceB

Extract full PDP specs, 5 SKU variants from 'Select options' drawer, pricing, and 10+ curated seed reviews with video/photo attachments into SQLite.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesShopee or TikTok Shop product URL / ID

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does not mention whether this is a read-only operation, whether it performs writes to SQLite (persistent side effect), or if it has rate limits, pagination, or required authentication context. The phrase 'into SQLite' suggests the tool may write data to a local database, which is a notable side-effect beyond just extractionβ€”this should be stated explicitly. The description explicitly reveals what it extracts but not how it behaves (e.g., whether it stores state permanently, whether it's idempotent, or whether it triggers affiliate-related actions).

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 a single, concise sentence that packs meaningful specifics: action (extract), content (PDP specs, SKU variants, pricing, reviews), source (Select options drawer), and destination (SQLite). It conveys a lot in one line with no fluff, earning a high score. It could be slightly more structured by separating the purpose from the side-effect, but it's still highly efficient.

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

Completeness2/5

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

Despite having a small parameter count and guaranteed schema coverage, the tool lacks annotations and output schema. The description partially enumerates what is extracted but does not state the exact output format (is it a report object or a run status?), potential prerequisites (valid URL, accessible product page), or exception behaviors. The mention of 'into SQLite' suggests a non-trivial side effect that needs more context: does it require schema setup? Is it a one-time extract? How are 'curated' reviews selected? These are gaps for a tool expected to perform a complex multi-step extraction.

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

Parameters3/5

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

Schema description coverage is 100%, with a single parameter 'url' fully described as 'Shopee or TikTok Shop product URL / ID'. The description itself does not add parameter details beyond that, but given complete schema coverage, the baseline of 3 is appropriate. The description implies rich extraction from the URL (PDP specs, SKU variants, pricing, reviews) which provides contextual meaning, but does not add specific formatting requirements or clarifications for the parameter.

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

Purpose4/5

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

The description clearly states the tool's function: extracting full product specs, 5 SKU variants, pricing, and curated seed reviews into SQLite. The verb 'extract' combined with the specific resource ('PDP specs', 'SKU variants', 'reviews') makes the primary purpose immediately understandable. The mention of '5 SKU variants' and '10+ curated seed reviews' adds specificity, though it doesn't explicitly distinguish from sibling tools like get_seed_reviews or search_affiliate_products, which it may overlap with.

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

Usage Guidelines3/5

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

The description implies usage: it should be used to pull comprehensive product intelligence from Shopee or TikTok Shop URLs/IDs. However, it does not explicitly state when to use this tool versus sibling tools like get_seed_reviews (which likely fetches reviews separately) or search_affiliate_products. The mention of 'select options' drawer and 'curated seed reviews' hints at a comparative workflow, but the guidance is assumed, not explicit.

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

generate_video_storyboardB

Generate a 45s AI video storyboard with 6 structured scenes (Hook, Problem, Hero Reveal, USP, Social Proof, CTA) and Veo 3.1 visual prompts.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesProduct ID in SQLite database

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the generation action and output composition, but does not state whether the result is returned directly, persisted, or whether there are side effects or external API calls. This is a meaningful gap for a generate tool with no output schema.

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?

The description is a single compact sentence with the key output details front-loaded. The scene list is efficient and adds real information without filler or redundancy.

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

Completeness3/5

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

For a one-parameter tool, the description provides useful output context: duration, scene count, scene purposes, and Veo 3.1 prompts. It is not fully complete because it does not state the return format or whether anything is created or saved, but the basic invocation context is present.

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

Parameters3/5

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

There is only one parameter, product_id, and the input schema already documents it as a Product ID in SQLite database with 100% coverage. The description adds no additional parameter format, example, or behavior beyond the schema.

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

Purpose4/5

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

The description states a specific action ('Generate') and a concrete resource ('45s AI video storyboard') with useful detail about structure and prompt style. It does not explicitly differentiate from sibling tools like create_videofactory_project, but the storyboard focus is clear enough to set it apart from search, audit, review, and repair tools.

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

Usage Guidelines3/5

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

The intended use is implied: call this when you need a product video storyboard. However, there is no explicit when-to-use, when-not-to-use, or alternative guidance, especially relative to create_videofactory_project, which may be part of a similar video workflow.

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

get_seed_reviewsA

Retrieve high-converting seed customer reviews from SQLite categorized by pain points, objections, and media attachments for video scripts.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of reviews to retrieve
product_idYesProduct ID in SQLite database
has_media_onlyNoFilter only reviews with image/video attachments

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states that the tool 'retrieves' data, implying a read-only operation, and mentions the data source (SQLite). However, it does not detail any side effects, permission requirements, or failure modes. For a retrieval tool this is minimally adequate but not rich.

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?

The description is a single, well-structured sentence that front-loads the core action and purpose. Every word contributes to the meaning with no waste.

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?

Given there is no output schema, the description provides a reasonable expectation of what will be returned (reviews categorized by specific dimensions). It does not explicitly describe pagination or return format, but for a retrieval tool with clear schema-covered parameters, the description is sufficient for an agent to invoke it correctly.

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

Parameters3/5

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

The input schema describes all three parameters (limit, product_id, has_media_only) with clear descriptions, achieving 100% coverage. The description adds context about categorization (pain points, objections, media attachments), which helps the agent understand the output structure and how has_media_only relates to media attachments. However, it does not add syntax or formatting details beyond the schema, so a baseline of 3 is appropriate.

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 uses a specific verb ('Retrieve') and resource ('seed customer reviews from SQLite'), and clearly states the categorization dimensions (pain points, objections, media attachments) and the intended use (video scripts). It distinguishes this tool from siblings, none of which are about reviews.

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?

The description implies the context of use ('for video scripts') and makes it clear this tool retrieves seed reviews, which is a distinct function from siblings like 'audit_seller' or 'search_affiliate_products'. While not explicitly stating when not to use it, the purpose is clear and contextually relevant enough for an agent to choose it appropriately.

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

marketplace_doctorB

Diagnose system health across Database, VideoFactory engine, Chrome browser stream, and Multi-Agent MCP client registries.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. 'Diagnose' suggests a read-only health inspection, but the description does not state that it is non-destructive, whether it requires special permissions, what 'health' means, or what side effects (if any) it may have.

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?

The description is a single sentence with no filler. It front-loads the verb and resource, then efficiently enumerates the systems covered. Every part of the sentence contributes useful information.

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

Completeness3/5

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

The description names all target components, which gives a solid sense of scope for a no-parameter tool. However, with no output schema, it should also indicate what the caller receives (e.g., per-component status report) and how this relates to sibling tools like marketplace_repair. Those details are left to inference.

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?

The tool has zero parameters, so there is no parameter surface to document. The schema coverage is complete for an empty schema, and the description appropriately focuses on the tool's scope rather than parameter details.

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

Purpose4/5

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

The description uses a specific verb ('Diagnose') and a clear resource ('system health') with an enumerated set of target components: Database, VideoFactory engine, Chrome browser stream, and Multi-Agent MCP client registries. It is clearly a health-check operation, distinct from query/repair siblings, though it does not explicitly name a sibling for contrast.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives. There is no mention of prerequisites, when diagnosis is appropriate, or that marketplace_repair might be the follow-up if issues are found. The only signal is the word 'Diagnose,' which implies a health-check context.

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

marketplace_repairA

Automatically heal and repair SQLite tables, VideoFactory directory structures, permissions, and sync MCP configuration files across all clients.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description must convey side effects. It says 'heal and repair' and 'sync,' implying state modifications, but it does not disclose whether operations are destructive, irreversible, or require special permissions. The lack of specifics makes the behavior opaque, which is a significant gap for a repair tool.

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?

The description is a single, well-structured sentence that lists the affected components and scope without redundancy. It is concise and information-dense, fitting the tool's purpose.

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?

Given the absence of parameters and output schema, the description provides sufficient context about the tool's operation and scope. It names the exact artifacts and mentions 'all clients,' giving a clear picture. Minor gaps remain about the specific repair mechanisms, but they are not required for basic usage.

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

Parameters3/5

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

The tool has no parameters, so schema coverage is trivially high. The description does not need to explain parameter meanings. The baseline of 3 applies because there is nothing to add beyond what the empty schema already implies.

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 action (automatically heal and repair) and lists specific targets (SQLite tables, VideoFactory directory structures, permissions, MCP configuration files) along with scope (across all clients). This distinguishes it from sibling tools like search, audit, or create, making its purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies the tool is used to fix or synchronize issues but does not provide explicit conditions for when to use it over alternatives. It lacks directions such as 'use when X is corrupted' or 'do not use if Y.' The scope is stated, but usage context is not fully elaborated.

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

query_marketplace_databaseB

Query local SQLite database /Volumes/Agency/Products/data/products.db to inspect products, variants, shops, or active video projects.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
query_typeNoproducts

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full transparency burden. It clearly identifies this as a query against a local SQLite database, and 'inspect' implies read-only behavior, but it never explicitly states that the operation is non-destructive or what happens if the database is unavailable. The concrete file path is a useful behavioral detail beyond the schema.

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?

The description is a single, focused sentence with clear front-loading: verb, resource, and purpose. The absolute path is verbose but necessary context, and there is no filler or redundancy.

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

Completeness3/5

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

For a two-parameter tool with a simple enum schema, the description covers the resource and queryable categories, and the schema provides defaults and allowed values. However, there is no output schema, no annotations, and no mention of return shape or limit behavior. It is adequate for basic invocation but leaves the agent without guidance on selecting it over sibling tools.

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

Parameters2/5

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

Schema coverage is 0%, and the description does not explain either parameter in a way that adds meaning beyond the schema. It loosely maps to query_type values but omits 'reviews' and says nothing about `limit` or its default behavior. The enum and default in the schema carry the load, but the description fails to compensate for the missing parameter documentation.

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 begins with the specific verb 'Query' and names an exact resource: the local SQLite database at /Volumes/Agency/Products/data/products.db. It enumerates the entities inspected (products, variants, shops, active video projects), which distinguishes it from sibling tools like search_affiliate_products or audit_seller. It omits 'reviews' from the enumeration, but the overall purpose is unmistakable.

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

Usage Guidelines2/5

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

No explicit guidance is given about when to use this tool versus alternatives such as search_affiliate_products, extract_product_intelligence, or get_seed_reviews. The phrase 'to inspect' implies a read/exploration use case, but there are no when-to-use or when-not-to-use statements.

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

search_affiliate_productsA

Search winning e-commerce products across Shopee and TikTok Shop Vietnam, expanding keywords and ranking by Affiliate Win Score.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSeed product idea, category or search query
platformNoTarget platformall

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the search and ranking behavior (expanding keywords, Affiliate Win Score) but does not state whether the operation is read-only, requires authentication, or has side effects. As a search tool, 'Search' suggests a safe read, but the absence of explicit disclosure in the description leaves some ambiguity.

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?

The description is a single, well-structured sentence that front-loads the core action ('Search'), then provides scope ('Shopee and TikTok Shop Vietnam') and distinctive behavior ('expanding keywords and ranking by Affiliate Win Score'). Every phrase contributes meaning, and there is zero repetition or filler.

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?

For a simple two-parameter tool with no output schema or nested objects, the description gives enough context about the purpose, process, and scope. It doesn't explain the return format, but the agent can reasonably infer result details from the concept of 'search' and 'ranking'. The information is sufficient for correct invocation.

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

Parameters3/5

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

The input schema already provides 100% coverage, documenting 'query' as a seed idea and 'platform' as a target platform with an enum. The description's mention of 'expanding keywords' adds some flavor but does not substantively clarify parameters beyond the schema. It is adequate but not a significant value add.

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 specifies the verb 'Search', the resource 'winning e-commerce products', the geographic/scope context 'Shopee and TikTok Shop Vietnam', and the unique behavior 'expanding keywords and ranking by Affiliate Win Score'. This clearly differentiates it from the sibling tools like 'audit_seller' or 'query_marketplace_database' without needing to inspect their schemas.

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

Usage Guidelines3/5

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

The description implies its usage for finding winning products, but it does not explicitly state when to choose this tool over alternatives or mention any exclusions. With only general context and no when-to-use/when-not-to-use guidance, the agent must infer suitability from the purpose.

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. 9 tool updatesv0.2.0
    • First observedaudit_seller
    • First observedcreate_videofactory_project
    • First observedextract_product_intelligence
    • First observedgenerate_video_storyboard
    • First observedget_seed_reviews
    • First observedmarketplace_doctor
    • First observedmarketplace_repair
    • First observedquery_marketplace_database
    • First observedsearch_affiliate_products

TDQS

A3.6/5.0

Scored across 9 tools

Disambiguation4/5

Most tools target a distinct resource and action, and the descriptions make the search/extract/query pipeline fairly clear. The main ambiguity is between create_videofactory_project and generate_video_storyboard, and extract_product_intelligence vs get_seed_reviews, since both touch seed reviews/scenes.

Naming Consistency4/5

Most tools follow a clean snake_case verb_noun pattern (search, audit, extract, get, create, generate, query). marketplace_doctor and marketplace_repair break the pattern by leading with a domain noun instead of a verb, which is a minor consistency miss.

Tool Count5/5

Nine tools is within the well-scoped range and each tool earns a place in the product-research-to-video-generation workflow. The set is neither bloated nor too thin.

Completeness4/5

The surface covers the core lifecycle: discover product, audit seller, extract product/feedback data, query DB, generate storyboard/project, and diagnose/repair system health. Missing update/delete/publish/export operations are minor gaps since most data flows are one-way into SQLite and VideoFactory.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers