Skip to main content
Glama
HtetOoWaiYan

Colors MCP Server

by HtetOoWaiYan

🎨 Colors MCP Server

npm license

A simple color utility MCP server for frontend developers. Convert, mix, adjust, and analyze colors right from your AI agents.

This MCP server provides a streamlined set of color utilities designed for efficiency and precision. It focuses on delivering core color manipulation tools in a straightforward, lightweight package for modern development workflows.

Tools

Tool

Description

colors_convert

Convert a color to a different color space

colors_batch_convert

Convert multiple colors to a target color space at once

colors_parse

Parse and validate a color string

colors_adjust

Adjust color properties (lightness, chroma, hue)

colors_batch_adjust

Batch adjust multiple colors (lightness, chroma, hue)

colors_mix

Mix two colors with perceptual interpolation

colors_scale

Generate a perceptually uniform color scale

colors_difference

Calculate color difference (Delta E) between two colors

colors_batch_difference

Batch calculate color difference (Delta E) against a target color

colors_contrast

Check WCAG contrast ratio between foreground and background colors

colors_batch_contrast

Batch check WCAG contrast ratio for multiple foregrounds against a background

Related MCP server: MCP Color Converter

Setup

Add the server to your MCP client config (e.g. Claude Desktop, Cursor, etc.):

{
  "mcpServers": {
    "colors": {
      "command": "npx",
      "args": ["-y", "@htetoowaiyan/colors-mcp-server"]
    }
  }
}

Development

git clone https://github.com/HtetOoWaiYan/colors-mcp-server.git
cd colors-mcp-server
npm install
npm run dev          # Run with tsx (hot reload)
npm run build        # Build for production
npm test             # Run tests
npm run test:watch   # Run tests in watch mode

Built With

License

MIT

Available Tools

11 tools
colors_adjustAdjust ColorB
Read-onlyIdempotent

Adjust color properties (lightness, chroma, hue)

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesProperty to adjust (lightness, chroma, hue)
colorYesColor string in any supported format (e.g., "#ff0000", "red", "rgb(255, 0, 0)", "oklch(0.6 0.2 29)")
amountYesAmount to adjust by (e.g., 0.1 for +10%, -0.05 for -5%)
relativeNoWhether to adjust relatively (%) or absolutely

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, non-mutating, repeatable operation. The description adds no behavioral details beyond the schema, such as how relative vs absolute adjustment behaves or whether the result is returned inline. With annotations covering safety, a 3 is appropriate.

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

Conciseness5/5

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

A single sentence of seven words that front-loads the action and resource with zero waste. It is appropriately sized for the tool's simplicity.

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

Completeness3/5

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

For a simple, well-annotated adjustment tool with full schema coverage and no output schema, the description is minimally adequate. It is missing usage context relative to siblings and any note on return behavior, but the annotations and schema carry most of the burden.

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 parameter details (mode enum, color format examples, amount semantics, relative flag default) are fully documented in the schema. The description adds no parameter meaning beyond what the schema provides, so baseline 3 is correct.

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

Purpose4/5

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

The description states a specific verb (Adjust) and resource (color properties) and enumerates the three adjustable properties (lightness, chroma, hue). It is clear what the tool does, though it does not differentiate itself from siblings like colors_scale or colors_mix beyond naming the properties.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as colors_scale, colors_mix, or colors_batch_adjust. The description merely restates the purpose without any context about selection criteria or prerequisites.

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

colors_batch_adjustBatch Adjust ColorsC
Read-onlyIdempotent

Adjust a list of colors (lightness, chroma, hue)

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesProperty to adjust (lightness, chroma, hue)
amountYesAmount to adjust by (e.g., 0.1 for +10%, -0.05 for -5%)
colorsYesList of colors to adjust
relativeNoWhether to adjust relatively (%) or absolutely

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is covered. The description adds nothing behavioral beyond that – no mention of how out-of-gamut results are handled, what the return shape is, or the meaning of relative vs absolute adjustment. With the bar lowered by annotations, it still fails to add any context.

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?

A single terse parenthetical phrase that is front-loaded and wastes no words. It is arguably under-specified rather than over-long, but for a short definition it is efficiently structured.

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

Completeness3/5

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

All parameters are documented by the schema and annotations cover safety. However, with no output schema, the description should arguably state what is returned (adjusted color strings), and it gives no behavioral detail on how batch failures or invalid colors are surfaced.

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 four parameters including the mode enum and the amount semantics. The description merely restates the enum values, adding no meaning beyond the schema. Baseline 3 applies.

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

Purpose4/5

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

States a clear verb ('adjust') and resource ('a list of colors') and names the three adjustable dimensions. The word 'list' hints at the batch-vs-single distinction against colors_adjust, but the description never explicitly differentiates itself from that sibling or from colors_convert.

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

Usage Guidelines2/5

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

No guidance on when to use this rather than colors_adjust (single color) or colors_scale. Given a crowded sibling set of ten color tools, the absence of any routing signal is a notable gap.

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

colors_batch_contrastBatch Check ContrastB
Read-onlyIdempotent

Check WCAG contrast ratio for multiple color pairs or combinations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and closed-world scope, so the safety profile is fully covered. The description adds useful context that results are judged against the WCAG standard, but says nothing about what is returned (ratios, pass/fail verdicts) or any size limits on the batch.

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?

A single efficient sentence with no filler, and the key qualifier ('multiple') lands up front. It is well sized for what it communicates, though that brevity comes at the cost of the input details an agent would need.

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

Completeness2/5

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

For a tool whose entire premise is accepting many color pairs, the empty schema plus the silence on how pairs are supplied (array? delimited string? defaults?) leaves a critical practical gap. With no output schema either, the description should explain both input shape and result format, and it does neither.

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?

There are zero parameters, so the baseline is 4 and there is no schema surface for the description to improve on. However, the description asserts the tool accepts 'multiple color pairs or combinations' while the input schema is an empty object, leaving the actual input mechanism wholly unexplained.

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

Purpose4/5

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

The description gives a specific verb ('Check'), a specific standard and metric ('WCAG contrast ratio'), and a scope ('multiple color pairs or combinations') that implicitly separates it from the singular colors_contrast sibling. It never names that sibling explicitly, so the differentiation is inferred from 'multiple' rather than stated.

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

Usage Guidelines3/5

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

The word 'multiple' implies this is the batch variant to use instead of colors_contrast for more than one pair, but there is no explicit when-to-use, when-not-to-use, or named alternative. Usage must be inferred from the batch/plural framing.

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

colors_batch_convertBatch Convert ColorsC
Read-onlyIdempotent

Convert multiple colors to a target color space

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget color space
colorsYesList of color strings to convert
precisionNoDecimal places for output values (0-10)

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered without the description. The description adds nothing beyond that — it doesn't mention the 50-item limit, error handling for unparseable inputs, or output shape, leaving the behavioral burden entirely on structured fields.

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?

A single, well-formed sentence with the action and scope front-loaded and zero filler. It is efficient, though its brevity is partly under-specification rather than pure conciseness.

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

Completeness3/5

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

For a simple read-only conversion tool with full schema coverage and no output schema, the description is minimally adequate. However, it omits the batch size limit and how per-item failures are reported, both of which an agent managing a 50-item batch would benefit from knowing.

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%, including enum values for 'to', item format examples for 'colors', and the 0-10 precision range, so the baseline is 3. The description restates the target color space concept but adds no format or syntax detail the schema lacks.

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

Purpose4/5

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

States a specific verb (Convert) and resource (colors), plus the key scope modifier 'multiple' and the target being a color space. This implicitly distinguishes it from the single-color colors_convert sibling, though it never names or contrasts that sibling explicitly.

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

Usage Guidelines2/5

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

No guidance on when to use batch conversion versus colors_convert or colors_parse, no mention of the 50-color cap, and no prerequisites or exclusions. The agent must infer usage purely from the word 'multiple'.

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

colors_batch_differenceBatch Color DifferenceB
Read-onlyIdempotent

Calculate difference between a reference and list of colors, finding the nearest match.

ParametersJSON Schema
NameRequiredDescriptionDefault
metricNoMetric to calculate (deltaE or contrast)deltaE
referenceYesThe target/reference color
candidatesYesList of colors to compare against the reference

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds one genuine behavioral detail beyond annotations: it returns the 'nearest match', implying a ranked/best-match result rather than raw pairwise values. It does not describe the output shape or metric-dependent behavior, so it remains modest.

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?

One compact sentence, front-loaded with the core action and ending on the most useful behavioral hint ('nearest match'). No filler, though it is terse enough to leave questions open.

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

Completeness4/5

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

With full schema coverage and a complete read-only annotation set, the only meaningful gap is the return value; there is no output schema, and the description partially compensates by signaling a nearest-match result. Adequate for a simple read-only batch computation.

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 reference, candidates, and the metric enum are already fully documented in the schema. The description adds no format specifics (e.g., accepted color notations) beyond what the schema provides, so the baseline 3 applies.

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

Purpose4/5

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

States a clear verb+resource: calculate difference between a reference and a list of colors. The word 'list' distinguishes it from the singular colors_difference sibling, though the description never names that sibling explicitly.

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

Usage Guidelines2/5

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

No guidance on when to pick this over colors_difference (single color) or colors_batch_contrast. The batch scope is only inferable from the name and the plural 'candidates' parameter, not from any stated condition or exclusion.

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

colors_contrastCheck ContrastA
Read-onlyIdempotent

Check WCAG contrast ratio between foreground and background colors (AA, AAA, non-text)

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoBase color to blend transparent backgrounds over (default: "#ffffff")
backgroundYesBackground color (e.g., "#ffffff", "white", "oklch(1 0 0)")
foregroundYesForeground (text) color (e.g., "#000000", "black", "oklch(0 0 0)")

TDQS

A3.8/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so safety and purity are already understood. The description contributes the WCAG levels and non-text scope but doesn't cover output format or edge-case behavior beyond the schema. This is acceptable given annotation coverage.

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?

Single, efficient sentence that front-loads the core action and constraint. No filler or repetition.

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

Completeness4/5

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

For a read-only, idempotent contrast-check tool with full schema coverage and clear annotations, the description is largely sufficient. However, missing explicit output information or guidance on handling transparent colors (for which the base parameter exists) leaves a minor gap.

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 baseline is 3. The description adds the concept of WCAG levels but the schema already documents all three parameters (foreground, background, base). No extra semantics such as default blending rules are provided beyond what's in the schema.

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

Purpose5/5

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

States a specific verb (Check) and resource (WCAG contrast ratio between foreground and background colors), and clarifies the standards evaluated (AA, AAA, non-text). This clearly distinguishes it from siblings like colors_difference or colors_batch_contrast.

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

Usage Guidelines3/5

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

Usable for assessing accessibility, but the description gives no explicit when-to-use versus alternatives or when-not-to-use guidance. It also doesn't clarify the difference from colors_batch_contrast, which is a missed opportunity given the sibling list.

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

colors_convertConvert ColorC
Read-onlyIdempotent

Convert a color to a different color space

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget color space
colorYesColor string in any supported format (e.g., "#ff0000", "red", "rgb(255, 0, 0)", "oklch(0.6 0.2 29)")
precisionNoDecimal places for output values (0-10)

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered without the description. The description adds no behavioral context beyond the title restated — nothing about invalid input handling, unsupported formats, or precision defaults (those live only in the schema).

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

Conciseness4/5

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

A single front-loaded sentence with no filler, which is efficient. It is arguably undersized for the tool's routing needs, but the dimension measures wasted words and there are none.

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

Completeness3/5

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

For a simple, fully documented, annotation-covered single-operation tool, a one-line description is minimally adequate. It still omits how invalid or unparseable colors are handled and how it relates to the sibling parse/batch tools, which an agent needs for correct selection.

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%, and the schema documents the target-space enum, example color strings, and precision range, so the description adds no parameter meaning. Baseline 3 applies when the schema does the heavy lifting.

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

Purpose4/5

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

The description states a specific verb and resource ('Convert a color') plus the scope ('to a different color space'), so the purpose is unambiguous. It does not differentiate from siblings, notably colors_batch_convert (bulk variant) or colors_parse, leaving the single-color vs batch distinction to inference.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus colors_batch_convert, colors_parse, or colors_adjust. No prerequisites, no exclusions, no alternatives are named.

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

colors_differenceColor DifferenceC
Read-onlyIdempotent

Calculate color difference (DeltaE) or contrast ratio

ParametersJSON Schema
NameRequiredDescriptionDefault
color1YesColor string in any supported format (e.g., "#ff0000", "red", "rgb(255, 0, 0)", "oklch(0.6 0.2 29)")
color2Yes
metricNoMetric to calculate (deltaE or contrast)deltaE

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds no behavioral context beyond that, which is acceptable for a pure computation but earns no bonus.

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

Conciseness3/5

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

A single short phrase with zero waste and a front-loaded verb, but it is under-specified rather than concise. There is room for one clarifying clause distinguishing the metric modes and the contrast sibling without bloat.

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

Completeness2/5

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

There is no output schema, so the description is the only place shape could be conveyed, yet it says nothing about the return value (DeltaE scale, contrast ratio range 1:1–21:1, or whether a single number or object is returned). For a 3-parameter calculation tool with no output schema, that is a meaningful gap.

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 67%, with color1/color2 formats and the metric enum already documented in the schema. The description's 'DeltaE or contrast ratio' merely echoes the metric enum values rather than adding accepted-format or metric-choice semantics beyond what the schema provides.

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

Purpose3/5

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

States a specific verb and resource ('Calculate color difference (DeltaE) or contrast ratio'), which is clearer than a bare name restatement. However it fails to differentiate from the sibling colors_contrast, which appears to overlap directly with the 'contrast ratio' branch of this same tool, leaving an agent unsure which to call.

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

Usage Guidelines2/5

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

No when-to-use guidance at all: nothing explains when to pick colors_difference over colors_contrast or colors_batch_difference, nor when to choose the deltaE vs contrast metric. The overlap with a dedicated contrast sibling makes this omission costly rather than benign.

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

colors_mixMix ColorsB
Read-onlyIdempotent

Mix two colors with perceptual interpolation

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoInterpolation color space (default: oklch)oklch
ratioNoMix ratio (0.0 - 1.0, default 0.5)
color1YesColor string in any supported format (e.g., "#ff0000", "red", "rgb(255, 0, 0)", "oklch(0.6 0.2 29)")
color2Yes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds only 'perceptual interpolation,' which hints that mixing occurs in a perceptual space, but says nothing about which space is default, how out-of-gamut results are handled, or error behavior for invalid color strings.

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

Conciseness5/5

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

A single, front-loaded sentence with zero waste that leads with the verb and resource. Nothing is padded or redundant.

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

Completeness3/5

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

With no output schema, the description carries the return-value burden and says nothing about what the mixed color looks like or in which format it is returned. For a 4-parameter tool with an ambiguous ratio semantic, this is adequate but incomplete.

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 75%, so the baseline is 3, and the description adds no parameter detail at all. Notably, the direction of 'ratio' (whether 0.0 or 1.0 weights color1) is unresolved in both the schema and the description, which is a real semantic gap the description could have closed.

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

Purpose4/5

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

States a specific verb (mix) and resource (two colors) and narrows it with 'perceptual interpolation,' which cleanly separates it from siblings like colors_convert, colors_adjust, and colors_difference. It does not explicitly name or rule out any sibling, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus colors_adjust, colors_scale, or colors_difference, nor any prerequisite or exclusion. Usage is only inferable from the name and the word 'mix,' which is minimal guidance.

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

colors_parseParse ColorC
Read-onlyIdempotent

Parse and validate a color string

ParametersJSON Schema
NameRequiredDescriptionDefault
colorYesColor string to parse and validate

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered structurally. The description adds nothing behavioral beyond that — it does not say what 'validate' means (exception vs. boolean vs. normalized output) or which color formats are accepted.

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?

A single short sentence with the action front-loaded and zero filler. It is efficient, though arguably under-informative rather than genuinely concise.

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

Completeness3/5

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

With full schema coverage, safety annotations, and no output schema, the surface-level contract is covered. But for a parse/validate tool the accepted input formats and failure behavior are the key things an agent needs, and neither is addressed.

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 'color' parameter, so the schema carries the meaning. The description adds no format examples (hex, rgb, named) or constraints beyond what the schema already states, making this the baseline 3 for high-coverage schemas.

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

Purpose4/5

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

States a specific verb pairing (parse and validate) on a single clear resource (color string), so the agent knows it takes a string and produces a validated result. It does not, however, distinguish itself from siblings like colors_convert or colors_difference, which also take color strings.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no indication of how this differs from colors_convert, and no mention of what happens on invalid input. The agent must infer usage purely from the name.

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

colors_scaleGenerate Color ScaleC
Read-onlyIdempotent

Generate a perceptually uniform color scale

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoInterpolation color space (default: oklch)oklch
stepsNoNumber of steps to generate (max 20)
colorsYesList of colors to generate scale from

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile needs no restating. The description adds only 'perceptually uniform', which hints at interpolation quality but is not explained. It says nothing about how the scale is ordered, how endpoints are treated, or determinism beyond what idempotentHint already implies.

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?

A single front-loaded sentence with no filler or redundancy. It is efficient, though the terseness edges into under-specification rather than maximal usefulness.

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

Completeness3/5

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

The input schema is fully documented and annotations cover safety and idempotency, so the minimum an agent needs to call the tool is present. But for a generator that overlaps heavily with colors_mix and colors_adjust, the definition leaves the selection decision and the nature of the output ('perceptually uniform' in which space when mode changes) unexplained.

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%: each of the three parameters (colors, steps, mode) has a description, defaults, bounds, and an enum for mode. The description adds nothing beyond the schema, which is the expected baseline when the schema does the heavy lifting.

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

Purpose3/5

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

The description gives a clear verb+resource ('Generate a ... color scale') and adds the distinguishing quality 'perceptually uniform'. However, it is nearly a verbatim restatement of the title and offers no differentiation from siblings like colors_mix, colors_adjust, or colors_convert, which also produce or manipulate colors. An agent cannot tell from this text alone which sibling applies to a given request.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus colors_mix (which also interpolates between colors) or colors_adjust. No prerequisites, no exclusions, no alternative named. The agent must infer usage entirely from the tool name.

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

Tool Schema Changelog

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

  1. 11 tool updatesv1.1.0
    • First observedcolors_adjust
    • First observedcolors_batch_adjust
    • First observedcolors_batch_contrast
    • First observedcolors_batch_convert
    • First observedcolors_batch_difference
    • First observedcolors_contrast
    • First observedcolors_convert
    • First observedcolors_difference
    • First observedcolors_mix
    • First observedcolors_parse
    • First observedcolors_scale

TDQS

A3.5/5.0

Scored across 11 tools

Disambiguation4/5

Batch and non-batch variants are clearly differentiated by the batch prefix, and most tools target distinct operations. However, colors_difference mentions contrast ratio, which overlaps with colors_contrast, creating a minor ambiguity.

Naming Consistency5/5

All tools use the colors_ prefix and snake_case consistently. The batch variants follow a predictable colors_batch_<verb> pattern, making the naming scheme easy to parse.

Tool Count5/5

11 tools are well scoped for a color manipulation server. The batch variants are justified by common bulk workflows and do not feel excessive.

Completeness5/5

The surface covers parsing, conversion, adjustment, mixing, scaling, difference calculation, and WCAG contrast checks, with batch variants for most operations. This provides comprehensive coverage for typical color-related tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides color conversion between multiple color spaces including RGB, RGBA, HEX, HSL, OKLCH, LAB, and CMYK.
    205 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive toolkit for color conversion, manipulation, and accessibility analysis supporting formats like OkLCH and WCAG compliance. It enables AI agents to manage design systems by generating harmonious palettes, transforming color spaces, and performing contrast checks.
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Wraps thecolorapi.com to provide color data and information through MCP, with no authentication required.
    6 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server providing 35 utility tools for AI agents including text analysis, encoding, hashing, password generation, JSON/CSV/XML parsing, regex, color, date, finance, URL metadata, SEO tags, DNS lookup, SSL inspection, and JWT decoding. Free, zero-dependency, and works with any MCP client.
    35
    45 npm
    MIT