Overview
Color Name Finder compares the input against a fixed list of 141 CSS named colors, the number reported in `total_named_colors`. The `hex` parameter accepts 3-, 6- or 8-digit hex with or without `#`; shorthand is expanded and an 8-digit value's alpha pair is ignored. The parsed channels come back as `input_rgb`.
For each named color the API computes the straight-line Euclidean distance between the two colors in RGB space, the square root of the summed squared channel differences. `distance` is that value rounded to two decimals, from 0 for an identical color up to about 441.67 for black against white. `similarity` rescales it to a percentage: 100 minus distance as a share of 441.67, also rounded to two decimals. The list is then sorted by distance, nearest first. `exact_match` is true only when the nearest distance is exactly 0.
`closest_color` is the top entry, with `name`, `hex` (six digits, no `#`) and `rgb`. `closest_matches` holds the top N entries, where N is the `closest` parameter, from 1 to 20 with a default of 1. The CSS list contains duplicate values, such as Aqua and Cyan or Fuchsia and Magenta, so two entries can tie at the same distance and appear side by side.
RGB distance is simple and predictable but does not model human perception evenly, so two colors that look close can sit further apart than two that look different. On the Free plan the `closest` parameter is ignored, and `distance`, `similarity` and the `closest_matches` array are removed.
Live Test Color Naming for AI Agents Source →
The tool
Once your client is connected to the VerveContext server, this appears in its tool list as ColorNamingforAIAgents. It is read-only and open-world — it fetches and never mutates anything on your side — so most clients call it without asking you to confirm.
{
"name": "ColorNamingforAIAgents",
"arguments": {
"hex": "FF5733"
}
}You do not name the tool yourself; the model picks it. Asking about FF5733 in the terms this source covers is enough for it to reach for ColorNamingforAIAgents on its own — naming it explicitly also works, and is the way to force the call.
Connecting
One server URL covers every source in the catalog, including this one. Authorization is OAuth: the client opens a browser once, and there is no key to paste into a config file.
{
"mcpServers": {
"vervecontext": {
"url": "https://api.vervecontext.com/v1/mcp"
}
}
}https://api.vervecontext.com/v1/mcpPer-client setup — Claude, Cursor, VS Code, ChatGPT — is on the MCP setup page.
Arguments
These are the properties on the tool's inputSchema, so a well-behaved client validates them before the call is made. Premium arguments are accepted on every plan but only take effect on plans that include them.
| Argument | Type | Description |
|---|---|---|
hexRequired | string | Hex color value (with or without # prefix) hexColor |
closestOptionalPremium | integer | Number of closest color matches to return default 1 · range 1–20 |
What the model gets back
The result carries a structuredContent object matching the tool's declared outputSchema, so a client reads fields without parsing prose. status is "ok" and error is null on success; a null field means the value was not available for that input, not that the call failed.
{
"status": "ok",
"error": null,
"data": {
"input_hex": "#FF5733",
"input_rgb": {
"r": 255,
"g": 87,
"b": 51
},
"exact_match": false,
"closest_color": {
"name": "Tomato",
"hex": "FF6347",
"distance": 23.32,
"similarity": 94.72,
"rgb": {
"r": 255,
"g": 99,
"b": 71
}
},
"closest_matches": [
{
"name": "Tomato",
"hex": "FF6347",
"distance": 23.32,
"similarity": 94.72,
"rgb": {
"r": 255,
"g": 99,
"b": 71
}
},
{
"name": "Coral",
"hex": "FF7F50",
"distance": 49.41,
"similarity": 88.81,
"rgb": {
"r": 255,
"g": 127,
"b": 80
}
},
{
"name": "Chocolate",
"hex": "D2691E",
"distance": 52.82,
"similarity": 88.04,
"rgb": {
"r": 210,
"g": 105,
"b": 30
}
}
],
"total_named_colors": 141
}
}
Response fields
Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.
| Field | Type | Example | Description |
|---|---|---|---|
input_hex | string | #FF5733 | The hex color value provided as input |
input_rgb | object | {…} | RGB color values decomposed from input hex |
input_rgb.r | number | 255 | Red component value from input |
input_rgb.g | number | 87 | Green component value from input |
input_rgb.b | number | 51 | Blue component value from input |
exact_match | boolean | false | Whether the input matches a named color exactly |
closest_color | object | {…} | Best matching named color with distance metrics |
closest_color.name | string | Tomato | Name of the closest matching color |
closest_color.hex | string | FF6347 | Hex code of the closest matching color |
closest_color.distancePremium | number | 23.32 | Euclidean distance metric in RGB space |
closest_color.similarityPremium | number | 94.72 | Similarity percentage of closest match |
closest_color.rgb | object | {…} | RGB values of the closest matching color |
closest_color.rgb.r | number | 255 | Red component of closest color |
closest_color.rgb.g | number | 99 | Green component of closest color |
closest_color.rgb.b | number | 71 | Blue component of closest color |
closest_matchesPremium | array[3] | Array of top matching colors with metrics | |
closest_matches.0.namePremium | string | Tomato | Name of matched color in results |
closest_matches.0.hexPremium | string | FF6347 | Hex code of matched color result |
closest_matches.0.distancePremium | number | 23.32 | Color distance metric for match result |
closest_matches.0.similarityPremium | number | 94.72 | Similarity percentage for match result |
closest_matches.0.rgbPremium | object | {…} | RGB values of matched color result |
closest_matches.0.rgb.rPremium | number | 255 | Red component of result match |
closest_matches.0.rgb.gPremium | number | 99 | Green component of result match |
closest_matches.0.rgb.bPremium | number | 71 | Blue component of result match |
total_named_colors | number | 141 | Total count of available named colors |
Why ground on it
A model can produce something that looks like this answer from its training data, and be confidently out of date or simply wrong. This source returns the current value in a shape you can check, which is the difference between an answer you can cite and one you have to hedge.
Point an evaluation at input_hex: it is the field most worth pinning a claim to, and it is either present and current or absent — never plausibly invented.
Failure modes
Errors come back as tool errors carrying a sentence the model can act on, not a bare status code. Error handling covers the full list.
| Status | What it means |
|---|---|
400 / 422 | The arguments did not validate. The message names the offending one. |
401 | The OAuth session is invalid or expired — reconnect the server. |
403 | Blocked by a key restriction or an IP allow-list. Never a bad identity. |
404 | This source is not part of VerveContext. Check the catalog. |
429 | Out of credits, or a brief rate limit. The message tells them apart. |
A call costs 1 credit each time the tool actually runs; a model that reasons about the tool without calling it costs nothing.
Use cases
- Design Tools
- Identify and name colors in design applications and color pickers
- Accessibility
- Convert hex colors to named colors for better communication and documentation
- Web Development
- Find CSS color names for hex values to improve code readability
- Color Analysis
- Analyze and categorize colors in images and designs with standard color names
Other ways to use Color Naming for AI Agents
Set up Color Naming for AI Agents on VerveContext, or reach the same source a different way. Your VerveContext account and credits work on all of them — one key, one balance.
Related
More in Reference Data: