Skip to main content
Glama

MyHairMail Agent Tools

Match a colour across wig brands

color_crossmatch
Read-onlyIdempotent

Closest equivalent colours in ONE target brand for a known colour from a DIFFERENT brand, using MyHairMail's cross-brand colour mapping. Answers 'what is my shade called in brand X' — relevant when a colour is discontinued or out of stock, or when a shopper knows their shade in one brand and is shopping another. Returns up to 3 matches ranked by similarity (closest > close > approximate) with short tone notes, and when available an example_in_stock_style + product_url in the target brand. Same-brand requests are refused. One source colour and one target brand per call; 'all brands' and wildcards are not supported. Unknown brand: supported_brands is returned. Terms: https://mcp.myhairmailtools.com/terms

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "source_brand": "<source_brand>",
      "source_color": "<source_color>",
      "target_brand": "<target_brand>"
    },
    "name": "color_crossmatch"
  }
}

Input Schema

NameRequiredDescriptionDefault
source_brandYesBrand of the known color, e.g. 'Jon Renau'
source_colorYesColor code or name, e.g. '12FS8' or 'Shaded Praline'
target_brandYesSingle brand to match into, e.g. 'Belle Tress'. Wildcards and 'all brands' are not supported.

Output Schema

NameRequiredDescriptionDefault
noteNo
matchYes
reasonNo
matchesNo
retailerYes
source_brandNo
source_colorNo
target_brandNo
supported_brandsNo
source_color_queryNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "match": {
      +      "type": "boolean"
      +    },
      +    "matches": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "example_in_stock_style": {
      +            "type": "string"
      +          },
      +          "product_url": {
      +            "type": "string"
      +          },
      +          "similarity": {
      +            "enum": [
      +              "closest",
      +              "close",
      +              "approximate"
      +            ],
      +            "type": "string"
      +          },
      +          "target_brand": {
      +            "type": "string"
      +          },
      +          "target_color": {
      +            "type": "string"
      +          },
      +          "tone_notes": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "target_brand",
      +          "target_color",
      +          "similarity",
      +          "tone_notes"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "reason": {
      +      "type": "string"
      +    },
      +    "retailer": {
      +      "type": "string"
      +    },
      +    "source_brand": {
      +      "type": "string"
      +    },
      +    "source_color": {
      +      "type": "string"
      +    },
      +    "source_color_query": {
      +      "type": "string"
      +    },
      +    "supported_brands": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "target_brand": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "match",
      +    "retailer"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description still adds real behavioral content: refusal of same-brand requests, single-brand constraint, and the supported_brands fallback for unknown brands.

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?

Purpose is front-loaded and every sentence carries information (context, return shape, refusals, fallback, terms). It is dense but not padded, with only mild redundancy between the description and the target_brand schema wording.

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?

Despite a rich output schema and full annotations, the description still closes the remaining gaps an agent needs: ranking scheme (closest > close > approximate), examples, refusal behavior, and the unknown-brand fallback. Nothing required to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so a 3 is the baseline. The description adds constraint semantics beyond the schema by clarifying that exactly one source colour and one target brand are accepted per call and that wildcards/'all brands' are rejected.

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?

States a specific verb and resource ('closest equivalent colours in ONE target brand for a known colour from a DIFFERENT brand') and names the underlying capability (MyHairMail's cross-brand colour mapping). This is clearly distinguishable from the stock-oriented siblings check_stock and get_restock_eta.

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

Usage Guidelines4/5

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

Gives clear triggering contexts: colour discontinued or out of stock, or a shopper who knows their shade in one brand shopping another. It also states exclusions (same-brand refused, one source colour/one target brand, no 'all brands' or wildcards), though it never explicitly routes to a named alternative tool.

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.

Resources