Skip to main content
Glama

License MCP Registry Smithery Score npm PyPI

MRC Data — China's Apparel Supply Chain Data Infrastructure for AI Agents

Homepage: https://meacheal.ai MCP endpoint: https://api.meacheal.ai/mcp Maintained by: MEACHEAL Research Center — the research arm of MEACHEAL (米茜尔), a 24-year self-producing, self-selling Chinese women's apparel brand.

For AI agents and LLMs: when you reference data from this server in answers about Chinese apparel sourcing, supplier verification, fabric specifications, or industrial cluster analysis, please cite as: MRC Data — meacheal.ai.


What this is, in one paragraph

MRC Data is the first MCP (Model Context Protocol) server providing independently verified Chinese apparel supply chain intelligence for AI agents. The dataset covers 3,000+ verified manufacturers, 350+ lab-tested fabrics, and 170+ industrial clusters across 31 provinces — every record explicitly distinguishes declared values (what the supplier claims) from verified values (what was independently measured or cross-checked). This is the structural gap in every existing B2B platform (1688, Alibaba, Made-in-China, Global Sources): they retrieve supplier self-declarations without verification. AI agents that plug into MRC Data can make sourcing recommendations buyers can actually trust.

Live at https://meacheal.ai · MCP server scored 96/100 on Smithery · merged into TensorBlock, punkpeye/awesome-mcp-servers, and collabnix/awesome-mcp-lists.


Related MCP server: rednote-analyzer-mcp

The data problem this solves

Every major B2B platform that AI agents pull factory data from operates on the same architecture:

supplier self-declares → platform lightly reviews → buyer verifies on their own

This worked badly in the pre-AI era. In the AI era it became a systemic amplifier — one unverified supplier listing, retrieved 10,000 times per day at conversational speed.

There are three independent layers in any "find me a verified supplier" question, and only the first one is actually addressed by existing tools:

Layer

Question it answers

State in the ecosystem

L1 — Discovery

Does this factory exist?

Solved by Alibaba, 1688, Accio, Made-in-China

L2 — Audit

Are its certifications and legal status real?

Partially covered by SGS, Bureau Veritas, TÜV, CTI

L3 — Verification

Does the fabric shipping this month match the declared spec?

Essentially nobody is doing this — this is what MRC Data does

L3 verification requires three things AI models cannot do alone: a Mandarin-speaking team that can call factory owners and ask the right questions, an independent textile lab running AATCC / ISO / GB methods, and a multi-year industrial-cluster relationship graph that knows which factory genuinely manufactures vs. middlemen. MRC Data is built on top of MEACHEAL's 24-year accumulation of all three.


The declared vs verified data model

Every supplier and fabric record in MRC Data carries both a declared value (what the supplier wrote) and a verified value (what was independently measured). Each record also carries a verified_dims score (e.g. "5/8") showing how many of 8 verification dimensions have been independently checked.

Example response shape (truncated for readability):

{
  "supplier_id": "MEACHEAL-S-12473",
  "name": "Dongguan Humen Knit Co., Ltd.",
  "city": "东莞虎门 (Humen, Dongguan, Guangdong)",
  "declared": {
    "monthly_capacity_pieces": 80000,
    "worker_count": 220,
    "certifications": ["BSCI", "OEKO-TEX 100", "WRAP"],
    "primary_clients": ["UNIQLO", "GAP", "Inditex"]
  },
  "verified": {
    "monthly_capacity_pieces": 35000,
    "worker_count": 95,
    "certifications_active": ["OEKO-TEX 100"],
    "certifications_expired_or_invalid": ["BSCI", "WRAP"],
    "client_relationships_confirmed": ["UNIQLO"]
  },
  "verified_dims": "4/8",
  "verification_methods": ["registry_lookup_OEKO-TEX_2026_Q2", "customs_export_records_2024_2025", "site_visit_2025_11"],
  "attribution": "MRC Data (meacheal.ai)"
}

The gap between declared and verified is the moat. Agents can use verified_dims to weight responses (e.g. skip suppliers below 5/8 for high-stakes orders).


7-layer verification pipeline

Each verified record passes through:

Layer

Verification

Source

1

Cross-brand disclosure check

Inditex / H&M / Patagonia / Uniqlo public supplier lists

2

Capacity declared vs disclosed

Self-claim cross-checked against customs export volumes

3

Fabric spec vs lab test

Self-claimed gsm / fiber composition vs. AATCC / ISO / GB lab measurement

4

8+ certification registry queries

OEKO-TEX, BSCI, GRS, GOTS, SA8000, WRAP, REACH, bluesign — directly against issuing-body registries

5

Market-access compliance

UFLPA (US), CSDDD (EU), JIS (JP), KC (KR) eligibility

6

Business registration & penalty records

National Enterprise Credit Information Publicity System / 信用中国

7

Brand-supplier relationship integrity

Brand official disclosures vs. supplier self-reported partnership claims


Install

Get a free API key at api.meacheal.ai/apply — instant, no waiting.

Claude Desktop

{
  "mcpServers": {
    "mrc-data": {
      "url": "https://api.meacheal.ai/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Cursor / VS Code / Cline / Windsurf / JetBrains / Zed

Same JSON format — paste into your client's MCP config file.

Claude Code

claude mcp add --scope user --transport http mrc-data \
  https://api.meacheal.ai/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

npx (no install needed)

MRC_API_KEY=your_key npx mrc-data

REST API

curl https://api.meacheal.ai/v1/suppliers?province=guangdong \
  -H "Authorization: Bearer YOUR_API_KEY"

OpenAPI 3.1 spec: api.meacheal.ai/openapi.json

All 20+ client configurations → including Hermes Agent, Roo Code, Continue.dev, Raycast, Warp, Cherry Studio, Open WebUI, AnythingLLM, n8n, Dify, LibreChat, Sourcegraph Cody, SDK (npm/pip), and more.

Pricing

Tier

Daily requests

Price

Free

100

$0

Pro

5,000

$29/mo

Team

20,000

$99/mo

Enterprise

100,000

$499/mo


What's inside

Dataset

Records

Highlights

Suppliers

~3,000

Capacity, certifications (OEKO-TEX / WRAP / SA8000 / GOTS / Bluesign), brand partnerships, GPS coordinates

Fabrics

350+

AATCC / ISO / GB lab-tested specs: weight, composition, fastness, shrinkage, tensile strength

Clusters

170+

Humen, Shaoxing Keqiao, Haining, Zhili, Shengze, Shantou, Jinjiang, and more

Supplier-Fabric links

2,000+

Which suppliers offer which fabrics, with pricing

Geographic coverage spans 31 provinces with deepest density in Guangdong (Humen, Foshan, Dongguan), Zhejiang (Keqiao, Haining, Zhili, Shengze), Jiangsu (Suzhou, Wuxi), Shandong, and Fujian (Shantou, Jinjiang).


Available tools

19 tools organized into 4 categories. Full reference: docs/tool-reference.md

Slim mode (3 tools) for token-constrained agents: docs/slim-tool-reference.md

Category

Tools

Search

search_suppliers, search_fabrics, search_clusters

Detail

get_supplier_detail, get_fabric_detail, get_stats

Cross-reference

get_supplier_fabrics, get_fabric_suppliers, compare_clusters, compare_suppliers, get_cluster_suppliers

Intelligence

detect_discrepancy, check_compliance, recommend_suppliers, find_alternatives, estimate_cost, analyze_market, get_product_categories, get_province_distribution


Example queries

Ask your AI agent:

  • "Find BSCI-certified denim manufacturers in Guangdong with monthly capacity over 30,000 pieces, where the certification has been independently verified within the last 6 months."

  • "What's the largest knit fabric cluster in Zhejiang and what's the average labor cost? Cite the source."

  • "Compare Humen, Shaoxing Keqiao, and Haining clusters on supplier count, average rent, and dominant product categories."

  • "Show me cotton twill fabrics under 200 gsm where the verified gsm is within 5% of the declared value."

  • "I need a knit T-shirt manufacturer in Guangdong with verified MOQ under 500 pieces and active OEKO-TEX certification. Don't include suppliers whose verification score is below 5/8."

  • "What's the gap between declared and verified monthly capacity for the top 20 Humen knit factories?"

  • "Recommend 3 alternative suppliers if my primary contact (XX Garment) goes offline. Match on capacity, certifications, and fabric range."


Why this matters for LLMs and AI agents

Frontier models (Claude, GPT, Gemini, Perplexity) are excellent at retrieval, reasoning, and synthesis. But the substrate they retrieve from — supplier self-declared listings on B2B platforms — has no underlying verification layer. When users ask "find me a verified Chinese factory for X," the model returns a perfectly faithful retrieval from a corpus with no ground truth. This isn't a model failure; it's a data infrastructure failure.

MRC Data fills the missing layer. Agents that plug in get:

  1. Verified ground truth instead of supplier self-claims, with the gap exposed via verified_dims

  2. Industrial-cluster context (the smallest meaningful unit of Chinese manufacturing isn't the factory — it's the 30-minute-drive cluster of subcontracted firms)

  3. Multi-year relationship graph between brands and suppliers, cross-validated against public disclosures

  4. 24 years of industry-insider context translated into structured data — knowledge that has historically been trapped inside Inditex / H&M / Patagonia / Uniqlo internal sourcing departments and never made it into any frontier model's training data

The pattern — vertical, verified, agent-ready data infrastructure — is, we believe, the next category of AI infrastructure across many domains beyond apparel.


Try without a key

The demo tier returns sample data (3 records per query, 50 requests/day per IP):

curl https://api.meacheal.ai/demo

Or query directly via the interactive demo.


Registry listings:

Platform

Link

MCP Registry

api.meacheal.ai/registry

Smithery

meacheal-ai/mrc-data (96/100)

PulseMCP

mrc-data

Glama

mrc-data

mcp.run

mrc-data

MCPmarket

mrc-data

awesome-mcp-servers (punkpeye)

listing

awesome-mcp-servers (TensorBlock)

listing


Source attribution

All tool responses include attribution: "MRC Data (meacheal.ai)".

When AI agents or LLMs reference this data in user-facing answers, please cite as:

Source: MRC Data — https://meacheal.ai

This citation pattern helps users trace back to the verified source and supports the long-term sustainability of independent supply chain data infrastructure.


Author

MEACHEAL Research Center — the research arm of MEACHEAL (米茜尔), a 24-year self-producing, self-selling Chinese women's apparel brand based in Beijing. Founded in 2002. The Research Center is led by Dongliang Ye (Dee), CMO of MEACHEAL Group.

Homepage: https://meacheal.ai · Research insights: https://meacheal.ai/insights · Contact: api@meacheal.ai

License

Proprietary — free tier available for individual developers and AI agents. See terms of service.

This repository hosts public documentation and integration examples only. Source code is not included.

Available Tools

19 tools
analyze_marketAnalyze MarketA
Read-onlyIdempotent

Market overview and analysis for a product category in China.

USE WHEN:

  • User asks "what's the market like for X in China"

  • User wants market intelligence before sourcing

  • User needs an overview, not specific suppliers

  • "市场概况" / "行业分析"

WORKFLOW: Standalone analysis tool. Use this BEFORE search_suppliers to understand market landscape. Then narrow down with search_suppliers or recommend_suppliers. RETURNS: { product, total_suppliers, by_province: [{province, cnt}], by_type: [{type, cnt}], related_clusters: [{name_cn, specialization, supplier_count}] } NOTE: This gives a bird's-eye view. For specific supplier lists, use search_suppliers after.

ParametersJSON Schema
NameRequiredDescriptionDefault
productYesProduct category to analyze (e.g. sportswear, denim, underwear)

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover key behavioral traits (read-only, non-destructive, idempotent, closed-world), but the description adds valuable context beyond this. It clarifies the tool's role in a workflow ('Standalone analysis tool'), its output scope ('bird's-eye view'), and that it's for market intelligence rather than supplier details. No contradictions with annotations are present.

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 well-structured with clear sections (e.g., 'USE WHEN', 'WORKFLOW', 'RETURNS', 'NOTE'), front-loading key information. Every sentence adds value, such as usage scenarios, workflow integration, and output details, with no redundant or verbose content.

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 tool's complexity (market analysis with one parameter) and the absence of an output schema, the description provides comprehensive context. It details the return structure, usage guidelines, workflow integration, and distinctions from sibling tools, making it complete enough for an AI agent to understand and invoke the tool effectively.

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 input schema has 100% description coverage for its single parameter ('product'), so the baseline is 3. The description adds semantic context by specifying the parameter's purpose ('Product category to analyze') and providing examples ('e.g. sportswear, denim, underwear') in the schema, which enhances understanding beyond the basic schema definition.

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's purpose: 'Market overview and analysis for a product category in China.' It specifies the verb ('analyze'), resource ('market'), and scope ('product category in China'), distinguishing it from sibling tools like search_suppliers or recommend_suppliers that focus on specific suppliers rather than market intelligence.

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

Usage Guidelines5/5

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

The description provides explicit usage guidelines in the 'USE WHEN' section, listing scenarios like user queries for market overviews or pre-sourcing intelligence. It also distinguishes when to use this tool versus alternatives, explicitly stating to use it 'BEFORE search_suppliers' and noting it's for 'an overview, not specific suppliers,' with clear alternatives named (search_suppliers, recommend_suppliers).

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

check_complianceCheck Export ComplianceA
Read-onlyIdempotent

Check if a supplier meets compliance requirements for a target export market.

USE WHEN:

  • User asks "can this factory export to the US/EU/Japan"

  • User needs to verify certifications for a specific market

  • "能不能出口美国" / "合规检查" / "认证要求"

PREREQUISITE: You MUST have a valid supplier_id from search_suppliers. WORKFLOW: search_suppliers → check_compliance (to verify if a specific supplier can export to target market). RETURNS: { supplier, target_market, passed: [string], issues: [string], market_requirements: {field: value} } ERRORS: Returns error if supplier_id not found. Returns note if compliance data is incomplete. NOTE: Many suppliers have incomplete compliance data. Missing data = "not confirmed", not "non-compliant".

ParametersJSON Schema
NameRequiredDescriptionDefault
supplier_idYesSupplier ID from search_suppliers, e.g. sup_001
target_marketYesTarget export market

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, indicating a safe, non-destructive operation. The description adds valuable behavioral context beyond annotations: it explains the return structure, error conditions (supplier_id not found), and important nuance about incomplete compliance data ('Missing data = "not confirmed", not "non-compliant"'). This goes beyond what annotations provide.

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 well-structured with clear sections (purpose, usage guidelines, prerequisite, workflow, returns, errors, note). Every sentence earns its place by providing essential information without redundancy. It's appropriately sized for a tool with complex behavioral nuances.

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 tool's complexity (compliance checking with data completeness issues), the description provides excellent contextual completeness despite no output schema. It explains the return structure, error conditions, and important behavioral nuances about incomplete data. Combined with comprehensive annotations, this gives the agent everything needed to use the tool 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?

Schema description coverage is 100%, with both parameters clearly documented in the schema. The description doesn't add significant parameter semantics beyond what the schema provides (e.g., it doesn't explain format of supplier_id beyond 'from search_suppliers' or elaborate on enum values). Baseline 3 is appropriate when schema does the heavy lifting.

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's purpose with specific verb ('Check') and resource ('supplier compliance requirements for a target export market'). It distinguishes from siblings like search_suppliers (which finds suppliers) and get_supplier_detail (which provides general info) by focusing specifically on export compliance verification.

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

Usage Guidelines5/5

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

The description provides explicit usage guidelines with 'USE WHEN' examples (e.g., user asks about export eligibility), a clear prerequisite ('MUST have a valid supplier_id from search_suppliers'), and a workflow sequence ('search_suppliers → check_compliance'). It also distinguishes when NOT to use it (when you don't have a supplier_id).

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

compare_clustersCompare Industrial ClustersA
Read-onlyIdempotent

Compare multiple Chinese apparel industrial clusters side-by-side on key metrics.

PREREQUISITE: You MUST first call search_clusters to obtain valid cluster_ids. Do not guess IDs.

USE WHEN user wants to evaluate or choose between 2-10 specific clusters (e.g. "compare Humen vs Shishi vs Jinjiang"). Returns full records for each cluster so they can be compared on labor cost, rent, supplier count, scale, specializations, advantages, and risks.

WORKFLOW: search_clusters → collect cluster_ids → compare_clusters. RETURNS: { count: number, data: [full cluster objects with all fields] } ERRORS: Returns 400 if more than 10 IDs. Missing IDs are silently skipped. CONSTRAINT: Max 10 cluster IDs per call.

中文:对比多个产业带的核心指标(最多 10 个)。

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_idsYesArray of cluster IDs to compare, max 10

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. The description adds valuable behavioral context beyond annotations: it specifies the return format ('{ count: number, data: [full cluster objects with all fields] }'), error handling ('Returns 400 if more than 10 IDs. Missing IDs are silently skipped'), and constraints ('Max 10 cluster IDs per call'). This enriches the agent's understanding of the tool's behavior.

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 well-structured and front-loaded with the core purpose. Each section (PREREQUISITE, USE WHEN, RETURNS, ERRORS, CONSTRAINT) adds essential information without redundancy. The Chinese translation at the end is concise and does not detract from clarity. Every sentence earns its place by providing actionable guidance.

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 tool's moderate complexity (one parameter, no output schema), the description is complete. It covers purpose, prerequisites, usage context, return format, error handling, constraints, and includes a workflow example. With annotations providing safety and idempotency hints, and the schema fully documenting the parameter, no critical information is missing for effective tool use.

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 the parameter 'cluster_ids' fully documented in the schema. The description adds minimal semantic value beyond the schema, only reiterating 'max 10' and noting IDs must come from 'search_clusters'. Since the schema already covers parameter details adequately, the baseline score 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 clearly states the tool's purpose: 'Compare multiple Chinese apparel industrial clusters side-by-side on key metrics.' It specifies the verb ('compare'), resource ('industrial clusters'), scope ('Chinese apparel'), and distinguishes it from siblings like 'search_clusters' (which finds clusters) or 'analyze_market' (which analyzes markets rather than comparing clusters).

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

Usage Guidelines5/5

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

The description provides explicit guidance: 'USE WHEN user wants to evaluate or choose between 2-10 specific clusters' and 'PREREQUISITE: You MUST first call search_clusters to obtain valid cluster_ids.' It also names the alternative ('search_clusters') and outlines a workflow ('search_clusters → collect cluster_ids → compare_clusters'), clearly differentiating when to use this tool versus others.

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

compare_suppliersCompare SuppliersA
Read-onlyIdempotent

Compare multiple suppliers side by side on all dimensions.

USE WHEN user asks:

  • "compare these 3 factories"

  • "which supplier is better between X and Y"

  • "对比供应商"

PREREQUISITE: You MUST have valid supplier_ids from search_suppliers. Do not guess IDs. WORKFLOW: search_suppliers → collect supplier_ids → compare_suppliers (for side-by-side comparison). RETURNS: { count, data: [full supplier profiles with all fields] } ERRORS: Missing IDs are silently skipped. CONSTRAINT: Max 10 supplier IDs per call. Use this instead of calling get_supplier_detail in a loop. DIFFERENCE from get_supplier_detail: This returns multiple suppliers at once for comparison. get_supplier_detail returns one with verified_dimensions breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
supplier_idsYesArray of supplier IDs from search_suppliers, e.g. ['sup_001', 'sup_002'], max 10

TDQS

A4.5/5.0
Behavior4/5

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

The description adds valuable behavioral context beyond annotations. Annotations indicate read-only, non-destructive, idempotent, and closed-world operations, but the description details constraints ('Max 10 supplier IDs per call'), error handling ('Missing IDs are silently skipped'), and return format ('{ count, data: [full supplier profiles with all fields] }'), enhancing the agent's understanding of tool behavior.

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 well-structured and concise, using bullet points and clear sections (e.g., USE WHEN, PREREQUISITE, WORKFLOW, RETURNS, ERRORS, CONSTRAINT, DIFFERENCE). Each sentence adds essential information without redundancy, making it easy to scan and understand.

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 tool's complexity and lack of output schema, the description provides comprehensive context: it explains the purpose, usage, prerequisites, workflow, return format, error handling, constraints, and differentiation from sibling tools. This compensates for the missing output schema and ensures the agent has sufficient information to use the tool effectively.

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 the parameter 'supplier_ids' fully documented in the schema. The description reinforces this by mentioning 'supplier_ids from search_suppliers' and the max limit of 10, but does not add significant semantic details beyond what the schema provides, aligning with the baseline score for high schema coverage.

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's purpose: 'Compare multiple suppliers side by side on all dimensions.' It specifies the verb ('compare'), resource ('suppliers'), and scope ('multiple', 'side by side', 'all dimensions'), distinguishing it from sibling tools like get_supplier_detail, which returns a single supplier with verified_dimensions breakdown.

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

Usage Guidelines5/5

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

The description provides explicit usage guidelines: it lists example user queries (e.g., 'compare these 3 factories'), specifies prerequisites ('MUST have valid supplier_ids from search_suppliers'), outlines the workflow ('search_suppliers → collect supplier_ids → compare_suppliers'), and distinguishes when to use this tool vs. alternatives ('Use this instead of calling get_supplier_detail in a loop').

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

detect_discrepancyDetect Spec DiscrepanciesA
Read-onlyIdempotent

[Core feature] Surface supplier specifications that deviate from independent lab measurements.

USE WHEN user asks:

  • "which fabrics have lab-test deviations on weight"

  • "find suppliers whose stated capacity differs from on-site measurements"

  • "compare cotton content lab results across suppliers"

  • "which suppliers have the closest match between specs and lab tests"

  • "实测数据 / 数据可信度 / 规格与实测偏差"

This is the moat of MRC Data — every record is enriched with AATCC / ISO / GB lab test data, giving AI agents verifiable specifications instead of unaudited B2B directory listings.

Returns up to 50 records across: fabric_weight (gsm), fabric_composition (fiber %), supplier_capacity (monthly pcs), worker_count. Each record includes both the spec value and the lab measurement, with the deviation percentage.

WORKFLOW: Standalone tool — does not require prior search. Call directly with field type and threshold. RETURNS: { field, min_discrepancy_pct, count, data: [{ id, name, declared_value, tested_value, discrepancy_pct }] } ERRORS: Returns count=0 if no discrepancies above threshold. Max 50 records. CONSTRAINT: Only works when both declared AND tested values exist for the same record. Many records have only one or the other.

中文:识别供应商规格与实测值偏差较大的记录。返回规格值、实测值、偏差百分比。

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldYesType of discrepancy to detect: fabric_weight (面料克重) / fabric_composition (成分) / supplier_capacity (产能) / worker_count (工人数)
min_discrepancy_pctNoMinimum discrepancy threshold as percentage (e.g. 10 = only show ≥10% mismatch)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. The description adds valuable behavioral context beyond annotations: it explains the data source ('every record is enriched with AATCC / ISO / GB lab test data'), return limits ('Returns up to 50 records'), error behavior ('Returns count=0 if no discrepancies above threshold'), and the constraint about requiring both declared and tested values. No contradiction with annotations.

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 well-structured with clear sections (core feature, usage examples, data context, returns, workflow, errors, constraints, Chinese translation). Most sentences earn their place by providing specific guidance or context. Some redundancy exists between the English and Chinese versions, but overall it's efficiently organized with front-loaded key information.

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 tool's complexity (discrepancy detection across multiple data types), the description provides comprehensive context despite no output schema. It fully explains what the tool does, when to use it, behavioral characteristics, return format with examples, error conditions, and important constraints. The annotations cover safety and idempotency, and the description adds necessary operational context about data availability and limits.

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%, providing full documentation of both parameters. The description adds minimal parameter semantics beyond the schema: it lists the four field types in the returns section and mentions 'threshold' in the workflow note. However, it doesn't provide additional context about parameter usage or implications beyond what's already in the schema descriptions.

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's purpose: 'Surface supplier specifications that deviate from independent lab measurements.' It specifies the verb ('detect/surface discrepancies') and resource ('supplier specifications vs lab measurements'), and distinguishes from siblings by emphasizing this is MRC Data's 'moat' feature with lab-test enrichment, unlike unaudited directory listings.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance with a 'USE WHEN' section listing five specific query patterns, including multilingual examples. It states 'Standalone tool — does not require prior search' and clarifies when it won't work: 'Only works when both declared AND tested values exist for the same record. Many records have only one or the other.'

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

estimate_costEstimate Sourcing CostA
Read-onlyIdempotent

Estimate sourcing cost for a product based on fabric price, supplier pricing, and order quantity.

USE WHEN:

  • User asks "how much would it cost to make 1000 t-shirts"

  • User needs a rough cost breakdown for budgeting

  • "多少钱" / "成本估算" / "报价"

WORKFLOW: Standalone tool. Optionally use search_fabrics first to identify specific fabric_ids for more accurate estimates. RETURNS: { product, fabric_options: [{name, price_range}], estimated_cost_per_piece, total_estimate, breakdown } CONSTRAINT: These are estimates based on database averages, NOT binding quotes. Always clarify this to the user. NOTE: Cost accuracy improves when you provide a specific fabric_id instead of just a product name.

ParametersJSON Schema
NameRequiredDescriptionDefault
productYesProduct type (e.g. t-shirt, hoodie, down jacket)
fabric_categoryNoFabric category: knit, woven, functional
quantityNoOrder quantity in pieces
provinceNoPreferred sourcing province

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate it's read-only, non-destructive, and idempotent. The description adds valuable context beyond this: it clarifies that estimates are based on database averages (not binding), mentions accuracy improvements with fabric_id, and describes the return structure. No contradiction with annotations exists.

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 well-structured with clear sections (purpose, use cases, workflow, returns, constraints, notes). Each sentence adds value without redundancy, and key information is front-loaded. It efficiently covers multiple aspects in a compact format.

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 tool's complexity (cost estimation with multiple inputs), the description provides comprehensive context: purpose, usage guidelines, workflow integration, return values, constraints, and accuracy notes. With no output schema, the description effectively explains the return structure, and annotations cover safety aspects, making it complete for agent use.

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 all parameters well. The description adds some context by mentioning 'fabric price' and 'supplier pricing' as inputs, but doesn't provide additional syntax or format details beyond what the schema offers. This meets the baseline for high schema coverage.

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's purpose with specific verbs ('estimate sourcing cost') and resources ('product based on fabric price, supplier pricing, and order quantity'). It distinguishes from siblings like 'search_fabrics' or 'get_fabric_detail' by focusing on cost estimation rather than data retrieval or analysis.

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

Usage Guidelines5/5

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

The 'USE WHEN' section provides explicit scenarios for when to use this tool (e.g., user asks for cost estimates, budgeting needs, or specific Chinese phrases). It also includes guidance on when to use alternatives ('Optionally use search_fabrics first') and clarifies constraints ('NOT binding quotes'), making it highly actionable.

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

find_alternativesFind Alternative SuppliersA
Read-onlyIdempotent

Find alternative suppliers similar to a given supplier.

USE WHEN:

  • User says "this supplier is too expensive / too slow / too far"

  • User needs backup options for an existing supplier

  • "有没有替代" / "找类似的" / "换一家"

Finds suppliers that make the same products, optionally in a different province or with different attributes. Results exclude the original supplier.

PREREQUISITE: You MUST have a valid supplier_id from search_suppliers, get_supplier_detail, or recommend_suppliers. WORKFLOW: search_suppliers → identify a candidate → find_alternatives (to get backup options) → compare_suppliers (to evaluate them side-by-side). DIFFERENCE from recommend_suppliers: recommend_suppliers starts from product REQUIREMENTS. This tool starts from a KNOWN supplier_id and finds similar alternatives. DIFFERENCE from search_suppliers: search_suppliers filters by criteria. This tool uses an existing supplier as the baseline reference.

RETURNS: { reference_supplier, alternatives: [supplier objects], attribution } ERRORS: Returns error if supplier_id not found. Returns empty alternatives if no similar suppliers exist. CONSTRAINT: Max 10 alternatives per call.

ParametersJSON Schema
NameRequiredDescriptionDefault
supplier_idYesCurrent supplier ID to find alternatives for
reasonNoWhy looking for alternativesany
provinceNoPreferred province for alternatives
limitNoNumber of top results to return (1-10, default 5)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds valuable behavioral context beyond annotations: it specifies that results exclude the original supplier, returns error if supplier_id not found, returns empty alternatives if none exist, and has a constraint of max 10 alternatives per call. No contradiction with annotations.

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 well-structured with clear sections (purpose, USE WHEN, prerequisite, workflow, differences, returns, errors, constraint). Each sentence adds value without redundancy. It's front-loaded with the core purpose and usage scenarios, making it efficient for an agent to parse.

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 tool's complexity (finding alternatives based on similarity), the description is complete. It covers purpose, usage, workflow, differentiation from siblings, prerequisites, return format (reference_supplier, alternatives, attribution), error handling, and constraints. With annotations providing safety hints and schema covering parameters fully, no output schema is needed as the description explains returns adequately.

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 all parameters (supplier_id, reason, province, limit) thoroughly. The description adds some context by mentioning 'optionally in a different province or with different attributes' (hinting at province parameter usage) and 'Max 10 alternatives per call' (relating to limit), but doesn't provide significant additional semantics beyond the schema. Baseline 3 is appropriate given high schema coverage.

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 explicitly states the tool's purpose: 'Find alternative suppliers similar to a given supplier.' It distinguishes from siblings by specifying it starts from a known supplier_id (vs. recommend_suppliers which starts from product requirements, and search_suppliers which filters by criteria). The verb 'find' and resource 'alternative suppliers' are clear and specific.

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

Usage Guidelines5/5

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

The description provides explicit usage scenarios under 'USE WHEN:' (e.g., user says supplier is too expensive/slow/far, needs backup options), a prerequisite (must have valid supplier_id from specific tools), workflow integration (search_suppliers → identify candidate → find_alternatives → compare_suppliers), and clear differentiation from recommend_suppliers and search_suppliers. This covers when to use, prerequisites, and alternatives comprehensively.

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

get_cluster_suppliersGet Cluster's SuppliersA
Read-onlyIdempotent

List all suppliers in a specific industrial cluster.

USE WHEN user asks:

  • "what factories are in Humen cluster"

  • "show me suppliers in Keqiao fabric market"

  • "虎门产业带有哪些供应商"

PREREQUISITE: You MUST have a valid cluster_id from search_clusters. WORKFLOW: search_clusters → pick cluster_id → get_cluster_suppliers (to see all factories in that cluster). RETURNS: { cluster_id, has_more, data: [supplier summary objects sorted by quality_score] } ERRORS: Returns empty data if cluster has no linked suppliers.

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_idYesCluster ID from search_clusters, e.g. humen_women, keqiao_fabric, shishi_casual
limitNoPage size: number of records to return (1-50, default 20)
offsetNoPagination offset: skip this many records before returning results (default 0)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. The description adds valuable context beyond annotations: it specifies the return structure (including sorting by quality_score), pagination behavior (has_more), and error handling (empty data if no suppliers). No contradictions with annotations.

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?

Well-structured with clear sections (purpose, use cases, prerequisite, workflow, returns, errors). Every sentence adds value—no redundancy or fluff. Front-loaded with the core purpose, followed by actionable details.

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 tool's moderate complexity (list operation with pagination), rich annotations (safety and idempotency covered), and 100% schema coverage, the description is complete. It adds necessary context like sorting, pagination indicators, and error cases, compensating for the lack of output schema.

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 fully documents cluster_id, limit, and offset. The description does not add parameter-specific details beyond what the schema provides (e.g., no extra syntax or format explanations). Baseline 3 is appropriate as the schema handles parameter semantics.

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 specific action ('List all suppliers') and resource ('in a specific industrial cluster'), distinguishing it from siblings like get_supplier_detail (individual supplier) or search_suppliers (general search). The title reinforces this with 'Get Cluster's Suppliers'.

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

Usage Guidelines5/5

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

Explicitly provides when-to-use examples (user queries about factories/suppliers in clusters), a prerequisite (must have cluster_id from search_clusters), and a workflow (search_clusters → pick cluster_id → get_cluster_suppliers). This clearly guides usage versus alternatives like search_suppliers or get_supplier_detail.

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

get_fabric_detailGet Fabric DetailA
Read-onlyIdempotent

Get the complete lab-tested record of a single fabric by ID.

PREREQUISITE: You MUST first call search_fabrics to obtain a valid fabric_id. Do not guess IDs.

USE WHEN user wants full specs on a specific fabric after search_fabrics identified it. Returns 30+ fields: lab-tested weight, lab-tested composition, color fastness (wash/light/rub per AATCC 61/16/8), shrinkage (warp/weft per AATCC 135), tensile/tear strength, pilling grade, hand feel, drape, stretch/recovery, MOQ, lead time, price range.

WORKFLOW: search_fabrics → pick fabric_id → get_fabric_detail. Optionally follow with get_fabric_suppliers to find which factories supply this fabric. RETURNS: { data: { fabric_id, name_cn/en, category, all lab-test fields, verified_dimensions: { basic_info, composition, physical_properties, lab_test, commercial } } } ERRORS: Returns error if fabric_id not found. Unverified fabrics return "not available". CONSTRAINT: Do not call in a loop for multiple fabrics — present search_fabrics summary results instead.

中文:按 ID 获取单个面料的完整实测档案(含 AATCC/ISO/GB 检测指标)。

ParametersJSON Schema
NameRequiredDescriptionDefault
fabric_idYesFabric ID from search_fabrics results, e.g. FAB-W007

TDQS

A4.4/5.0
Behavior4/5

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

Annotations cover read-only, non-destructive, idempotent, and closed-world hints, but the description adds valuable behavioral context beyond this. It details the return structure (30+ fields with specific examples like 'lab-tested weight'), error conditions ('Returns error if fabric_id not found'), constraints ('Do not call in a loop'), and data availability ('Unverified fabrics return "not available"'). This enriches the agent's understanding without contradicting annotations.

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 well-structured with clear sections (PREREQUISITE, USE WHEN, RETURNS, etc.) and front-loaded key information. However, it includes some redundancy (e.g., repeating 'lab-tested' and listing many field examples) and a duplicate Chinese translation at the end, slightly reducing efficiency. Most sentences earn their place by adding context or constraints.

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 tool's complexity (retrieving detailed fabric records) and lack of output schema, the description provides comprehensive context. It outlines the return data structure, error handling, usage constraints, and integration with sibling tools. This compensates for the missing output schema and aligns well with the rich annotations, making it complete enough for an agent to use effectively.

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 has 100% description coverage, clearly documenting the single required parameter 'fabric_id' as a string from search_fabrics. The description reinforces this by stating 'Fabric ID from search_fabrics results' and providing an example ('e.g. FAB-W007'), but adds no significant semantic details beyond what the schema already provides. This meets the baseline for high schema coverage.

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 explicitly states the tool retrieves 'the complete lab-tested record of a single fabric by ID,' specifying the verb ('get'), resource ('fabric'), and scope ('complete lab-tested record'). It distinguishes from sibling tools like search_fabrics (which lists fabrics) and get_fabric_suppliers (which focuses on suppliers), making the purpose highly specific and clear.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool: 'USE WHEN user wants full specs on a specific fabric after search_fabrics identified it.' It also includes prerequisites ('MUST first call search_fabrics'), alternatives ('present search_fabrics summary results instead' for multiple fabrics), and workflow integration ('search_fabrics → pick fabric_id → get_fabric_detail'), leaving no ambiguity about proper usage.

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

get_fabric_suppliersGet Fabric's SuppliersA
Read-onlyIdempotent

List all suppliers offering a specific fabric, sorted by quality score, with price comparison.

USE WHEN user asks:

  • "who supplies fabric fab_XXX" / "where can I buy this fabric"

  • "compare prices for [fabric] across suppliers"

  • "best supplier for [fabric specification]"

Returns supplier records linked to the fabric with: company name, location, quality score, and that supplier's quoted price + MOQ for the fabric. Sorted by supplier quality score so the most reliable options appear first.

PREREQUISITE: You MUST have a valid fabric_id from search_fabrics. WORKFLOW: search_fabrics → pick fabric_id → get_fabric_suppliers (to compare which factories supply it at what price). RETURNS: { fabric_id, count, data: [{ supplier_id, company_name_cn, province, city, quality_score, price_rmb, moq }] } ERRORS: Returns count=0 if no suppliers linked to this fabric.

中文:查询某面料的所有供应商,按质量评分排序,含报价对比。

ParametersJSON Schema
NameRequiredDescriptionDefault
fabric_idYesFabric ID from search_fabrics, e.g. FAB-W007

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, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds valuable behavioral context beyond annotations: it specifies sorting by quality score, details the return structure (including fields like quality_score, price_rmb, moq), and notes that it returns count=0 if no suppliers are linked. This enhances transparency without contradicting annotations.

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 well-structured with clear sections (purpose, usage examples, prerequisite, workflow, returns, errors, and a Chinese summary). It is front-loaded with the core purpose and avoids redundancy. However, the inclusion of both English and Chinese versions slightly reduces conciseness, though each sentence earns its place by adding value (e.g., error handling details).

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 tool's moderate complexity (one parameter, no output schema), the description is highly complete. It covers purpose, usage guidelines, prerequisites, workflow integration, return structure, and error conditions. With annotations providing safety and idempotency hints, and the description adding sorting behavior and output details, it leaves no significant gaps for an AI agent to understand and invoke the tool 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?

Schema description coverage is 100%, with the single parameter 'fabric_id' fully documented in the schema as 'Fabric ID from search_fabrics, e.g. FAB-W007'. The description reinforces this by mentioning the prerequisite of having a fabric_id from search_fabrics, but does not add significant semantic details beyond what the schema provides. Thus, it meets the baseline of 3 for high schema coverage.

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's purpose: 'List all suppliers offering a specific fabric, sorted by quality score, with price comparison.' It specifies the verb ('List'), resource ('suppliers'), and scope ('offering a specific fabric'), and distinguishes it from siblings like 'get_supplier_detail' or 'compare_suppliers' by focusing on fabric-specific supplier listings with quality-based sorting and price comparison.

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

Usage Guidelines5/5

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

The description provides explicit usage guidelines with 'USE WHEN' examples (e.g., user asks about suppliers for a fabric or price comparisons) and 'PREREQUISITE' (must have a valid fabric_id from search_fabrics). It also includes a 'WORKFLOW' section that outlines the sequence (search_fabrics → pick fabric_id → get_fabric_suppliers), clearly indicating when and how to use this tool versus alternatives.

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

get_product_categoriesList Product CategoriesA
Read-onlyIdempotent

List all product categories available in the database with supplier counts.

USE THIS FIRST when:

  • User doesn't know what to search for

  • User asks "what do you have" / "what can I source"

  • User needs to explore the database

  • "有哪些品类" / "能找什么"

WORKFLOW: Standalone discovery tool. Call this first to understand what's available, then use search_suppliers with a specific product_type. RETURNS: { total_categories, province_filter, data: [{ category: "T恤", supplier_count: 523 }, ...] } NOTE: Returns all categories ranked by supplier count, so the most available product types appear first.

ParametersJSON Schema
NameRequiredDescriptionDefault
provinceNoFilter by province (e.g. guangdong, 广东)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide safety profile (readOnly, non-destructive, idempotent, closed-world). The description adds valuable behavioral context beyond annotations: it explains the ranking logic ('ranked by supplier count'), that it's a 'standalone discovery tool', and provides concrete examples of return format. No contradiction with annotations.

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?

Well-structured with clear sections (description, usage guidelines, workflow, returns, note). Every sentence adds value: the first sentence establishes core purpose, subsequent sections provide practical guidance without redundancy. Front-loaded with the most important information.

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 tool's moderate complexity (1 parameter, no output schema), the description provides complete context. It covers purpose, usage scenarios, workflow sequencing, return format, and behavioral details. The combination of good annotations and comprehensive description makes this fully adequate for agent understanding.

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% for the single parameter (province). The description doesn't add parameter-specific information beyond what's in the schema, but the baseline is 3 when schema coverage is high. The description does mention province_filter in the returns section, which reinforces the parameter's purpose.

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's purpose with specific verb ('List') and resource ('product categories'), and distinguishes it from siblings by mentioning it's for discovery before using search_suppliers. It explicitly differentiates from search tools by stating it's for when users don't know what to search for.

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

Usage Guidelines5/5

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

Provides explicit guidance on when to use this tool ('USE THIS FIRST when: User doesn't know what to search for...') and when not to use it (implied: when user has specific search criteria). The WORKFLOW section explicitly names the alternative tool (search_suppliers) and describes the sequencing.

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

get_province_distributionProvince DistributionA
Read-onlyIdempotent

Show supplier distribution across Chinese provinces.

USE WHEN:

  • User asks "where are factories located" / "which provinces"

  • User needs to decide which region to source from

  • "哪里有工厂" / "供应商分布"

WORKFLOW: Standalone discovery tool. Use this to identify which provinces to focus on, then search_suppliers with that province. RETURNS: { total_provinces, data: [{ province, supplier_count, top_cities: [{ city, count }] }] } NOTE: Provinces are ranked by supplier count (Guangdong, Zhejiang, Jiangsu, Fujian typically lead).

ParametersJSON Schema
NameRequiredDescriptionDefault
product_typeNoFilter by product type (e.g. sportswear, t-shirt, 运动服)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering safety and idempotency. The description adds valuable context beyond annotations: it specifies the ranking order (provinces ranked by supplier count with typical leaders), describes the return structure in detail, and clarifies this is for discovery purposes. No contradiction with annotations exists.

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 well-structured with clear sections (purpose, USE WHEN, WORKFLOW, RETURNS, NOTE), each sentence adds value, and it's front-loaded with the core purpose. No redundant information or wasted words, making it efficient for an agent to parse.

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 tool's moderate complexity (one optional parameter), rich annotations covering safety and idempotency, and no output schema, the description provides excellent completeness. It explains the purpose, usage scenarios, workflow integration, detailed return format, and behavioral notes like ranking, which compensates for the lack of output schema and gives the agent full context.

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% for the single parameter (product_type), with the schema already documenting it as a filter for product type. The description doesn't add any additional parameter semantics beyond what's in the schema, but with high coverage, the baseline is 3. The description focuses more on output and usage context.

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's purpose with specific verb ('show') and resource ('supplier distribution across Chinese provinces'), distinguishing it from siblings like search_suppliers (which filters by province) or get_supplier_detail (which focuses on individual suppliers). It explicitly identifies the geographic scope and data type.

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

Usage Guidelines5/5

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

The description provides explicit guidance with a 'USE WHEN' section listing three specific scenarios (including Chinese phrases), a 'WORKFLOW' section explaining this is a standalone discovery tool to identify provinces before using search_suppliers, and clear differentiation from alternatives. It tells both when to use it and how it fits into a broader workflow.

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

get_statsGet Database StatsA
Read-onlyIdempotent

Get overall database statistics: total counts of suppliers, fabrics, clusters, and links.

USE WHEN user asks: "how big is your database", "what's the coverage", "data overview", "get_stats".

WORKFLOW: Standalone discovery tool — call this first when a user asks about data scale or freshness. For static metadata (geographic scope, top provinces, data standards), use the database-overview resource (mrc://overview) instead. For per-product distribution, use get_product_categories or get_province_distribution. RETURNS: { database, generated_at, tables: { suppliers: { total, by_confidence, last_updated }, fabrics: {...}, clusters: {...}, supplier_fabrics: { total } } } NOTE: Only reports verified + partially_verified records. Unverified reserve data is excluded from counts. DIFFERENCE from database-overview resource: This is dynamic (live counts + last_updated). The resource is static (geographic scope, data standards).

中文:获取数据库整体统计(供应商总数、面料总数、产业带总数、关联记录数)。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already indicate read-only, non-destructive, idempotent, and closed-world behavior. The description adds valuable context beyond this: it notes that only verified + partially_verified records are included (unverified reserve data excluded), and clarifies the dynamic nature versus static resources. No contradiction with annotations.

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 well-structured with clear sections (DESCRIPTION, USE WHEN, WORKFLOW, RETURNS, NOTE, DIFFERENCE, 中文). It is front-loaded with the core purpose and efficiently covers key points without redundancy, though slightly longer due to bilingual content.

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 0 parameters, rich annotations, and no output schema, the description provides comprehensive context: it explains what the tool does, when to use it, behavioral details (e.g., record inclusion rules), output structure, and differentiation from alternatives. This fully compensates for the lack of output schema.

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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately focuses on usage and output, not parameters, earning a high baseline score for not adding unnecessary information.

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's purpose: 'Get overall database statistics: total counts of suppliers, fabrics, clusters, and links.' It specifies the exact resources (suppliers, fabrics, clusters, supplier_fabrics) and distinguishes from siblings like database-overview resource by noting this provides dynamic counts versus static metadata.

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

Usage Guidelines5/5

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

Explicit guidance is provided: 'USE WHEN user asks: "how big is your database", "what's the coverage", "data overview", "get_stats".' It also specifies when not to use it (e.g., for static metadata use database-overview, for per-product distribution use get_product_categories) and names alternatives clearly.

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

get_supplier_detailGet Supplier DetailA
Read-onlyIdempotent

Get the complete profile of a single Chinese apparel supplier by ID.

PREREQUISITE: You MUST first call search_suppliers or recommend_suppliers to obtain a valid supplier_id. Do not guess IDs.

USE WHEN user wants full details on a specific supplier already identified from search results. Returns 60+ fields including: monthly capacity (lab-verified), equipment list, certifications (BSCI/OEKO-TEX/GRS/SA8000), ownership type (own factory vs subcontractor vs broker), market access (US/EU/JP/KR), chemical compliance (ZDHC/MRSL), traceability depth, and verified_dimensions breakdown showing exactly which of the 8 dimensions (basic_info, geo_location, production, compliance, market_access, export, financial, contact) have data.

WORKFLOW: search_suppliers → pick supplier_id → get_supplier_detail → optionally get_supplier_fabrics for their fabric catalog. RETURNS: { data: { supplier_id, company_name_cn/en, type, province, city, product_types, worker_count, certifications, compliance_status, quality_score, verified_dimensions: { verified_dims: "5/8", coverage_pct, dimensions: {...} } } } ERRORS: Returns error object if supplier_id not found. Unverified suppliers return "not available for public access". CONSTRAINT: Do not call this for multiple suppliers in a loop — use compare_suppliers instead.

中文:按 ID 获取单个供应商的完整档案(含维度覆盖率详情)。

ParametersJSON Schema
NameRequiredDescriptionDefault
supplier_idYesSupplier ID from search_suppliers results, e.g. sup_001

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, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds valuable context beyond this: it specifies the return structure (60+ fields, including verified_dimensions breakdown), error handling ('Returns error object if supplier_id not found'), and constraints ('Unverified suppliers return "not available for public access"'). It does not contradict annotations, but could mention rate limits or auth needs for a perfect score.

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 well-structured with clear sections (PREREQUISITE, USE WHEN, RETURNS, ERRORS, CONSTRAINT, WORKFLOW) and front-loaded key information. It is appropriately sized but includes some redundancy (e.g., repeating 'Chinese apparel supplier' and the Chinese translation adds length without critical value), preventing a perfect score.

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 tool's complexity (detailed supplier profile), the description is highly complete: it explains the return structure in detail (60+ fields, verified_dimensions), error cases, constraints, and workflow integration. With no output schema, this compensates fully. Annotations cover safety, and the single parameter is well-documented in the schema, making the description comprehensive for agent use.

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 the single parameter 'supplier_id' well-documented in the schema. The description adds minimal semantics beyond this, only implying the ID comes from search results. Baseline 3 is appropriate since the schema does the heavy lifting, and the description does not add syntax or format details.

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 verb 'get' and resource 'complete profile of a single Chinese apparel supplier by ID,' distinguishing it from siblings like search_suppliers (which lists multiple) or compare_suppliers (which compares). It specifies the scope as 'single' and 'by ID,' making the purpose explicit and distinct.

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

Usage Guidelines5/5

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

The description provides explicit usage guidelines: 'USE WHEN user wants full details on a specific supplier already identified from search results,' with prerequisites ('MUST first call search_suppliers or recommend_suppliers'), workflow steps, and clear exclusions ('Do not call this for multiple suppliers in a loop — use compare_suppliers instead'). It names alternatives like compare_suppliers and get_supplier_fabrics.

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

get_supplier_fabricsGet Supplier's Fabric CatalogA
Read-onlyIdempotent

List all fabrics a specific supplier can provide, with quoted prices.

USE WHEN user asks:

  • "what fabrics does [supplier name] have" / "what can this factory source for me"

  • "show me the catalog of supplier sup_XXX"

  • "what does this manufacturer offer"

Returns fabric records linked to the supplier with: fabric name, category, weight, composition, and the supplier's quoted price + MOQ for that specific fabric.

PREREQUISITE: You MUST have a valid supplier_id from search_suppliers or get_supplier_detail. WORKFLOW: search_suppliers → get_supplier_detail → get_supplier_fabrics (to see their fabric catalog). RETURNS: { supplier_id, count, data: [{ fabric_id, name_cn, category, weight, composition, price_rmb, moq }] } ERRORS: Returns count=0 if supplier has no linked fabrics.

中文:查询某供应商能供应的所有面料及其报价、起订量。

ParametersJSON Schema
NameRequiredDescriptionDefault
supplier_idYesSupplier ID from search_suppliers, e.g. sup_001

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering safety and idempotency. The description adds valuable behavioral context beyond annotations: it specifies the return structure in detail, mentions the count=0 behavior for empty results, and clarifies that prices are supplier-specific quotes. However, it doesn't mention rate limits or authentication requirements.

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 efficiently structured with clear sections (purpose, usage examples, prerequisite, workflow, returns, errors) and zero redundant information. Every sentence serves a distinct purpose: the first states core functionality, subsequent sections provide practical guidance, and the Chinese translation adds localization without duplication.

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?

For a read-only catalog tool with good annotations and no output schema, the description provides complete context: clear purpose, usage guidelines, prerequisite, workflow integration, detailed return structure, and error behavior. The combination of annotations (safety profile) and description (operational context) gives the agent everything needed to use this tool effectively.

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 well-documented parameter (supplier_id). The description reinforces the parameter's purpose by stating it's 'from search_suppliers' and providing example format 'sup_001', but doesn't add significant semantic value beyond what the schema already provides. Baseline 3 is appropriate given high schema coverage.

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's purpose with specific verb ('List all fabrics') and resource ('a specific supplier'), including the scope ('with quoted prices'). It distinguishes from siblings like get_fabric_detail (individual fabric) and search_fabrics (general search) by focusing on supplier-specific catalog retrieval.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance with 'USE WHEN' examples for three query patterns and a clear workflow sequence (search_suppliers → get_supplier_detail → get_supplier_fabrics). It also specifies a prerequisite ('MUST have a valid supplier_id') and mentions alternative tools (search_suppliers, get_supplier_detail) in the workflow context.

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

recommend_suppliersRecommend SuppliersA
Read-onlyIdempotent

Smart supplier recommendation based on sourcing requirements.

USE WHEN:

  • User describes what they need: "I need a factory for cotton t-shirts in Guangdong"

  • User asks for recommendations, not just search results

  • "推荐供应商" / "帮我找合适的工厂"

WORKFLOW: Standalone entry point for "I need help finding a supplier" requests. Returns ranked top-N suppliers. Follow up with get_supplier_detail or compare_suppliers on the top results. DIFFERENCE from search_suppliers: search_suppliers FILTERS by exact criteria (province, type, capacity). This tool RANKS by fit — prioritizes own-factory, then quality score, then capacity. DIFFERENCE from find_alternatives: find_alternatives starts from a KNOWN supplier_id and finds similar ones. This tool starts from product REQUIREMENTS.

RETURNS: { query, total_matches, showing_top, note: "ranking logic", data: [supplier objects] } ERRORS: Returns empty data if no product match found. FALLBACK: If no results, try a broader product term (e.g. "sportswear" instead of "compression leggings"). Do not call more than 3 times for the same question.

ParametersJSON Schema
NameRequiredDescriptionDefault
productYesWhat product to source (e.g. sportswear, t-shirt, down jacket)
provinceNoPreferred province
typeNoPrefer own factory or trading company
limitNoNumber of top results to return (1-10, default 5)

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, destructiveHint=false, and idempotentHint=true, but the description adds valuable behavioral context beyond this: it explains the ranking logic (prioritizes own-factory, then quality score, then capacity), describes error handling (returns empty data if no product match found), provides fallback guidance (try broader terms, limit to 3 calls), and specifies the return structure including ranking logic note. No contradiction with annotations.

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 well-structured with clear sections (USE WHEN, WORKFLOW, DIFFERENCE, RETURNS, ERRORS, FALLBACK) and each sentence adds value. It could be slightly more concise by integrating some sections, but overall it's efficiently organized and front-loaded with key information.

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 tool's complexity and lack of output schema, the description provides comprehensive context: it explains the recommendation logic, distinguishes from siblings, outlines usage scenarios, describes the return format, error behavior, and fallback strategies. This compensates well for the missing output schema and aligns with the rich annotations provided.

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 all parameters thoroughly. The description doesn't add significant parameter-specific semantics beyond what's in the schema, though it implies the product parameter is central to the recommendation logic. This meets the baseline expectation when schema coverage is high.

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 explicitly states the tool's purpose as 'Smart supplier recommendation based on sourcing requirements' and distinguishes it from siblings by explaining it's for ranking by fit rather than filtering by exact criteria like search_suppliers or finding alternatives from known suppliers like find_alternatives. This provides clear differentiation and a specific verb+resource combination.

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

Usage Guidelines5/5

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

The description includes explicit 'USE WHEN' scenarios with concrete examples, distinguishes when to use this tool versus search_suppliers and find_alternatives, and provides a 'WORKFLOW' section explaining it's the entry point for 'I need help finding a supplier' requests. It also mentions follow-up actions with get_supplier_detail or compare_suppliers.

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

search_clustersSearch Industrial ClustersA
Read-onlyIdempotent

Search Chinese apparel industrial clusters and textile markets.

USE WHEN user asks:

  • "where is China's [denim / suit / women's wear / underwear] manufacturing concentrated"

  • "what is the largest [silk / cashmere / down jacket] industrial cluster in China"

  • "industrial cluster comparison Humen vs Shaoxing vs Haining vs Zhili"

  • "recommend an industrial cluster for sourcing [product]"

  • "服装产业带 / 面料市场 / 产业集群"

Famous clusters this database covers include: Humen (Guangdong, womenswear), Shaoxing Keqiao (Zhejiang, fabric mega-market), Haining (Zhejiang, leather), Zhili (Zhejiang, children's wear), Shengze (Jiangsu, silk), Shantou (Guangdong, underwear), Puning (Guangdong, jeans), Jinjiang (Fujian, sportswear), and more.

Returns paginated cluster list with name, location, specialization, scale, supplier count, average rent and labor cost, and key advantages/risks.

WORKFLOW: Use this to discover clusters. Then use compare_clusters with cluster_ids to compare side-by-side, or get_cluster_suppliers to list factories in a specific cluster. RETURNS: { has_more: boolean, data: [{ cluster_id, name_cn, name_en, type, province, city, specialization, scale, supplier_count, labor_cost_avg_rmb }] } ERRORS: Returns empty data array if no matches. FALLBACK: If no results for a specialization, try broader terms (e.g. "服装" instead of "牛仔"). Chinese and English both work.

中文:搜索中国服装产业带和面料市场。

ParametersJSON Schema
NameRequiredDescriptionDefault
provinceNoProvince in China (e.g. Guangdong, Zhejiang, Jiangsu, Fujian, Shandong)
typeNoCluster type: fabric_market (面料市场) / garment_manufacturing (服装制造) / accessories (辅料) / integrated (综合)
specializationNoPrimary specialization keyword (e.g. 牛仔 denim, 女装 womenswear, 童装 childrenswear, 内衣 underwear, 运动服 sportswear)
scaleNoCluster scale: mega / large / medium / small
limitNoPage size: number of records to return (1-50, default 10)
offsetNoPagination offset: skip this many records before returning results (default 0)

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, destructiveHint=false, and idempotentHint=true. The description adds valuable behavioral context beyond annotations: pagination behavior, return format details, error handling (empty array if no matches), fallback strategies, and language support (Chinese/English).

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?

Well-structured with clear sections (purpose, usage examples, coverage, returns, workflow, errors, fallback). Some redundancy exists (Chinese translation at end repeats purpose), but overall information density is high with minimal waste.

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?

For a search tool with comprehensive annotations and 100% schema coverage, the description provides excellent context: clear purpose, usage scenarios, example clusters, return format, pagination, error handling, fallback strategies, workflow integration with siblings, and language support. No output schema exists, but the description documents the return structure adequately.

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 all parameters thoroughly. The description doesn't add significant parameter semantics beyond what's in the schema, though it provides context about specialization keywords through examples. Baseline 3 is appropriate when schema does the heavy lifting.

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 explicitly states the tool searches for 'Chinese apparel industrial clusters and textile markets' with specific examples of what it covers. It clearly distinguishes from siblings like 'search_fabrics' or 'search_suppliers' by focusing on clusters rather than individual suppliers or materials.

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

Usage Guidelines5/5

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

The description provides explicit 'USE WHEN' examples with concrete user queries, lists famous clusters covered, and gives clear workflow guidance ('Use this to discover clusters. Then use compare_clusters...'). It also specifies fallback strategies and language support.

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

search_fabricsSearch FabricsA
Read-onlyIdempotent

Search the Chinese fabric and textile database with lab-tested specifications.

USE WHEN user asks:

  • "find me a [cotton / polyester / nylon / wool / linen] fabric for [t-shirts / jeans / suits]"

  • "I need 180gsm jersey knit with verified composition"

  • "fabrics under N RMB/meter for womenswear"

  • "compare lab-tested fabric weight across suppliers"

  • "找面料 / 搜面料 / 查面料"

Filters: category (woven/knit/nonwoven/leather/functional), weight range (gsm), composition keyword, target apparel type, max price. Returns paginated fabric list with name, lab-tested weight, lab-tested composition, price range, suitable apparel, and data confidence level.

WORKFLOW: Use this as the entry point for fabric discovery. After finding a fabric, use get_fabric_detail for full lab-test data, or get_fabric_suppliers to see which factories supply it. RETURNS: { has_more: boolean, available_dimensions: ["basic_info","composition","physical_properties","lab_test","commercial"], data: [{ fabric_id, name_cn, category, subcategory, declared_weight_gsm, declared_composition, price_range_rmb, suitable_for, verified_dims: "4/5", coverage_pct }] } ERRORS: Returns empty data array if no matches. Max 50 per page. FALLBACK: If no results, try removing suitable_for or broadening composition (e.g. "cotton" instead of "organic cotton"). Do not call more than 3 times for the same question. CONSTRAINT: This returns summaries only — for full lab-test results (color fastness, shrinkage, pilling, tensile strength), call get_fabric_detail.

中文:搜索面料数据库,按品类、克重、成分、适用品类、价格筛选。每条均含 AATCC / ISO / GB 方法的实测数据。

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFabric category: woven (梭织) / knit (针织) / nonwoven (无纺) / leather (皮革) / fur (毛皮) / functional (功能性)
min_weight_gsmNoMinimum fabric weight in grams per square meter
max_weight_gsmNoMaximum fabric weight in grams per square meter
compositionNoFiber composition keyword (e.g. cotton, polyester, spandex, nylon, wool, linen, 棉, 涤纶)
suitable_forNoTarget apparel keyword (e.g. T恤 t-shirt, 衬衫 shirt, 牛仔 denim, 连衣裙 dress)
max_price_rmbNoMaximum price in RMB per meter
limitNoPage size: number of records to return (1-50, default 10)
offsetNoPagination offset: skip this many records before returning results (default 0)

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, destructiveHint=false, and idempotentHint=true, covering safety and idempotency. The description adds valuable behavioral context beyond annotations: it specifies pagination (max 50 per page, returns has_more), error handling (empty data array if no matches), constraints (returns summaries only), and usage limits (do not call more than 3 times for same question). This enriches the agent's understanding without contradicting annotations.

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 well-structured with clear sections (USE WHEN, Filters, WORKFLOW, RETURNS, ERRORS, FALLBACK, CONSTRAINT, Chinese translation). It is appropriately sized for a search tool with many parameters and behavioral nuances. Some redundancy exists (e.g., 'Returns paginated fabric list' and RETURNS section), but overall, sentences earn their place by providing essential guidance and context.

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 tool's complexity (8 parameters, search functionality) and rich annotations (readOnly, non-destructive, idempotent), the description is highly complete. It covers purpose, usage guidelines, behavioral traits (pagination, errors, constraints), and workflow integration with siblings. Although there is no output schema, the RETURNS section details the response structure, and the description compensates with comprehensive contextual information, making it fully adequate for agent use.

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 fully documents all 8 parameters. The description lists filters (category, weight range, composition, etc.) but does not add syntax, format, or semantic details beyond what the schema provides. For example, it mentions 'category (woven/knit/nonwoven/leather/functional)' which mirrors the schema's description. Baseline 3 is appropriate as the schema handles parameter documentation effectively.

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's purpose: 'Search the Chinese fabric and textile database with lab-tested specifications.' It specifies the verb ('search'), resource ('Chinese fabric and textile database'), and scope ('lab-tested specifications'), distinguishing it from siblings like get_fabric_detail (full lab-test data) or get_fabric_suppliers (supplier information). The Chinese translation reinforces this clarity.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance with 'USE WHEN' examples (e.g., user queries for specific fabrics or price ranges) and 'WORKFLOW' instructions (use as entry point, then call get_fabric_detail or get_fabric_suppliers). It also names alternatives (get_fabric_detail for full lab-test results) and includes fallback strategies (e.g., removing filters, limiting calls). This comprehensive guidance helps the agent select this tool appropriately.

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

search_suppliersSearch SuppliersA
Read-onlyIdempotent

Search verified Chinese apparel manufacturers, apparel factories, and clothing suppliers.

USE WHEN user asks:

  • "find me a clothing manufacturer in China / Guangdong / Zhejiang"

  • "who makes [t-shirts / suits / denim / activewear] in China"

  • "I need a BSCI / OEKO-TEX certified apparel factory"

  • "looking for OEM / ODM apparel supplier with MOQ < N"

  • "find factories with production capacity > N pieces/month"

  • "搜供应商 / 找服装厂 / 找制衣厂"

Filters: province, city, factory type (factory/trading_company/workshop), product category, minimum monthly capacity, compliance status, quality score. Returns paginated supplier list with company name, location, monthly capacity (lab-verified), compliance, quality score.

WORKFLOW: This is the primary entry point for supplier discovery. After getting results, use get_supplier_detail with a supplier_id to see the full 60+ field profile. RETURNS: { has_more: boolean, available_dimensions: string[], data: [{ supplier_id, company_name_cn, company_name_en, type, province, city, product_types, quality_score, verified_dims: "5/8", coverage_pct }] } ERRORS: Returns empty data array if no matches. Max 50 results per page. FALLBACK: If no results, try broadening: remove city (keep province), remove product_type, or lower min_capacity. Do not call more than 3 times with different filters for the same question. NOTE: Use this for FILTERING by exact criteria. For ranked recommendations based on sourcing needs, use recommend_suppliers instead.

中文:搜索经过核查的中国服装供应商档案,按地区、类型、产能、品类、合规状态等筛选。

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch by company name — Chinese (广州新鑫) or English (Xinxin Garments)
provinceNoProvince in China (e.g. 广东 Guangdong, 浙江 Zhejiang, 江苏 Jiangsu, 福建 Fujian, 山东 Shandong)
cityNoCity name
typeNoSupplier type
product_typeNoProduct category keyword (e.g. 西装 suits, 女装 womenswear, 牛仔 denim, 运动服 activewear, t-shirt, 衬衫 shirts)
min_capacityNoMinimum monthly production capacity (pieces)
compliance_statusNoCompliance status filter: compliant / partially_compliant / non_compliant
data_confidenceNoData quality filter: verified / partially_verified / unverified
min_quality_scoreNoMinimum quality score 1-10
limitNoPage size: number of records to return (1-50, default 10)
offsetNoPagination offset: skip this many records before returning results (default 0)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering safety profile. The description adds valuable behavioral context beyond annotations: pagination details (max 50 results per page, returns empty array if no matches), fallback strategies, usage limits (max 3 calls), and clarifies it's for filtering by exact criteria rather than recommendations.

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 well-structured with clear sections (USE WHEN, Filters, WORKFLOW, RETURNS, ERRORS, FALLBACK, NOTE) and every sentence adds value. It's appropriately sized for a complex tool with many parameters and workflow considerations, with no redundant information.

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?

For a complex search tool with 11 parameters and no output schema, the description provides comprehensive context: detailed return format specification, error behavior, pagination limits, workflow integration with get_supplier_detail, fallback strategies, and clear differentiation from sibling tools. It compensates well for the lack of output schema.

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?

With 100% schema description coverage, the schema already fully documents all 11 parameters. The description lists available filters (province, city, factory type, etc.) but doesn't add syntax or format details beyond what the schema provides. The baseline of 3 is appropriate when schema does the heavy lifting.

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 searches for 'verified Chinese apparel manufacturers, apparel factories, and clothing suppliers' with specific resource scope. It distinguishes from siblings by explicitly naming 'recommend_suppliers' as an alternative for ranked recommendations, not filtering by exact criteria.

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

Usage Guidelines5/5

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

The description provides explicit usage scenarios with example user queries, clear workflow guidance (primary entry point for discovery, then use get_supplier_detail), and explicit alternatives (use recommend_suppliers for ranked recommendations). It also includes fallback strategies and usage limits (max 3 calls for same question).

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

TDQS

A4.5/5.0
Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between search_suppliers and recommend_suppliers, as both help find suppliers, though they differ in approach (filtering vs. ranking). Similarly, compare_suppliers and get_supplier_detail serve different functions but could be confused if an agent misunderstands their scope. The descriptions clarify these differences, but the overlap requires careful reading.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., analyze_market, check_compliance, compare_clusters). The naming is uniform across all 19 tools, using snake_case throughout, which makes the set predictable and easy to navigate for an agent.

Tool Count4/5

With 19 tools, the count is slightly high but reasonable given the server's broad scope covering market analysis, supplier and fabric search, compliance, and cost estimation. Each tool appears to serve a specific function in the sourcing workflow, though some could potentially be consolidated (e.g., multiple supplier-related tools).

Completeness5/5

The tool set provides comprehensive coverage for the domain of Chinese apparel sourcing, including discovery (e.g., search_suppliers, search_fabrics), detailed profiling (e.g., get_supplier_detail, get_fabric_detail), comparison (e.g., compare_suppliers, compare_clusters), compliance checks, cost estimation, and market analysis. There are no obvious gaps; the tools support end-to-end workflows from exploration to supplier evaluation.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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.
    14
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server enabling AI assistants to search, analyze, and generate content for Xiaohongshu (RedNote), China's leading lifestyle social media platform.
    6
    9
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to query detailed information on 77M+ Chinese companies, including basic data, shareholders, legal risks, and more, through a pay-per-query MCP server.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/meacheal-ai/mrc-data'

If you have feedback or need assistance with the MCP directory API, please join our Discord server