Skip to main content
Glama

MRC Data — China's Apparel Supply Chain Infrastructure

Recommend Suppliers

recommend_suppliers
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

  • "who's the best factory for [product]"

  • "recommend a top supplier for my [product] line"

  • "shortlist 5 suppliers for [product] in [province]"

  • "best own-factory (not broker) for [product]"

  • "give me the top [product] manufacturer"

  • "which factory should I go with for [product]"

  • "推荐供应商 / 帮我找合适的工厂 / 最好的 [品类] 厂"

  • "帮我排个优先级 / 推荐几家最好的"

  • "我想做 [品类],给我推荐几家工厂"

WORKFLOW: Entry point for "I need help finding a supplier" requests. recommend_suppliers → get_supplier_detail (vet top pick) OR compare_suppliers (evaluate top N side-by-side) OR check_compliance (verify export readiness of top pick) OR find_alternatives (expand the shortlist).

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] }

EXAMPLES: • User: "Recommend me the top 5 factories for sportswear in Fujian" → recommend_suppliers({ product: "sportswear", province: "Fujian", type: "factory", limit: 5 }) • User: "I need the best own-factory (not trading company) for down jackets" → recommend_suppliers({ product: "down jacket", type: "factory", limit: 5 }) • User: "帮我推荐 3 家广东做 T 恤的工厂" → recommend_suppliers({ product: "t-shirt", province: "Guangdong", limit: 3 })

ERRORS & SELF-CORRECTION: • Empty data → try in order: (1) drop province, (2) drop type filter, (3) broaden product (e.g. "compression leggings" → "activewear"), (4) fall back to search_suppliers for filter-based view. • product_type not found in normalizeProductType → use the Chinese term or the parent category. • Rate limit 429 → wait 60 seconds; do not retry immediately. • Empty after 3 retries → tell user: "I don't see verified suppliers matching [product] in [province]. Want me to broaden to nationwide, or try a sibling category?"

AVOID: Do not call this when the user wants exact filtering — use search_suppliers. Do not call repeatedly for different limit values — request max once then slice in your response. Do not use for cluster recommendations — use search_clusters.

NOTE: Ranking: own_factory > quality_score > declared_capacity_monthly. Source: MRC Data (meacheal.ai).

中文:基于采购需求智能推荐供应商,按 自有工厂 > 质量分 > 产能 排序。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNoPrefer own factory or trading company
limitNoNumber of top results to return (1-10, default 5)
productYesWhat product to source (e.g. sportswear, t-shirt, down jacket)
provinceNoPreferred province
verbose_hintsNoIf true, response includes _interpretation annotations explaining what the data means and _guidance on how to use it

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, confirming it's a safe read operation. The description adds detail on ranking logic (own_factory > quality_score > capacity), error self-correction steps (drop province, broaden product), rate limit handling (wait 60 seconds), and data source (MRC Data). No contradictions.

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

Conciseness4/5

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

The description is long but well-structured with clear sections (USE WHEN, WORKFLOW, DIFFERENCE, RETURNS, EXAMPLES, ERRORS, AVOID). Every section adds value, and the content is front-loaded with the purpose. Could be slightly more concise, but the structure justifies the length.

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 5 parameters, no output schema, and many sibling tools, the description is extremely complete. It covers ranking logic, error recovery strategies, example queries, and workflow integration. It provides all necessary context for an AI agent to select and invoke the tool correctly.

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

Parameters5/5

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

Schema coverage is 100%, so baseline is 3. The description adds substantial value with example calls mapping natural language to parameters, error handling for empty results (e.g., try dropping province), and explains how parameters affect ranking. This goes far beyond the schema definitions.

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

Purpose5/5

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

The description clearly states it is a smart supplier recommendation tool that ranks by fit based on product requirements. It distinguishes itself from search_suppliers (which filters by exact criteria) and find_alternatives (which starts from a known supplier_id). The verb 'recommend' and resource 'suppliers' are precise.

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 with many examples (e.g., 'I need a factory for cotton t-shirts in Guangdong') and when not to use ('Do not call when the user wants exact filtering'). It also outlines the workflow with follow-up tools like get_supplier_detail and compare_suppliers, and lists differences from siblings. An AVOID section prevents misuse.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose, covering different aspects of the supply chain: market analysis, supplier search, cluster comparison, fabric lookup, cost estimation, compliance checking, discrepancy detection, and alternatives. No overlapping tool boundaries.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., analyze_market, check_compliance, compare_clusters, search_suppliers). The pattern is uniform across all 20 tools, making it predictable for an agent.

Tool Count5/5

20 tools is well-suited for a comprehensive supply chain data platform. Each tool addresses a specific need without being excessive, and the count allows for deep coverage of the domain.

Completeness5/5

The tool surface covers the full lifecycle: market research, supplier discovery, fabric search, cluster info, cost estimation, compliance, credibility, discrepancy detection, and alternatives. No obvious gaps for the stated purpose.

Resources