Skip to main content
Glama

Extract Colors Tool

extract_colors
Read-onlyIdempotent

Extract a dominant-color palette from an image. Send either a public image_url or image_base64 (base64/data-URI, e.g. a local screenshot). The image is processed in memory and never stored. Each color comes back with its hex, rgb, hsl, share of the image, and the closest human color name — a named palette in one call. Rate limit: 10 calls/min per IP.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoPalette mode: "balanced" (default), "vibrant", or "muted".
countNoHow many colors to return (2–16, default 8).
image_urlNoPublic URL of the image to pull the palette from. Provide either this or image_base64.
image_base64NoBase64-encoded image (raw base64 or a data:image/...;base64 URI), max 10 MB decoded — use this to send a local file/screenshot without hosting it. Provide either this or image_url.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed3 schema fields changed
    • addedInput schema / properties / image_base64
      Added value: +{
      +  "description": "Base64-encoded image (raw base64 or a data:image/...;base64 URI), max 10 MB decoded — use this to send a local file/screenshot without hosting it. Provide either this or image_url.",
      +  "type": "string"
      +}
    • changedInput schema / properties / image_url / description
      Previous value: -"Public URL of the image to pull the palette from."New value: +"Public URL of the image to pull the palette from. Provide either this or image_base64."
    • removedInput schema / required
      Removed value: -[
      -  "image_url"
      -]
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnly and idempotent hints, the description discloses that the image is processed in memory and never stored, and includes a rate limit. This adds significant transparency about resource usage and side effects.

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 concise, using two sentences plus a rate limit notice, with no redundant information. It is well-structured and easy 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?

The description fully covers input, output, constraints, and processing details. It is self-contained and appropriate for the tool's purpose, even without an output schema.

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?

Each parameter is given additional context: mode explains options (balanced, vibrant, muted), count specifies number of colors, and image_url/image_base64 clarify the trade-off between URL and base64, including size limit. This enriches 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 extracts a dominant-color palette from an image, and specifies the input (image_url or image_base64) and output (hex, rgb, hsl, share, color name), distinguishing it from sibling tools like get_palette.

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?

It provides usage constraints (public URL or base64, max size, rate limit) and states the processing is in-memory and not stored. However, it does not explicitly contrast with alternative tools like get_palette, so guidance on when to use this vs. others is implied rather than explicit.

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.2/5.0
Disambiguation5/5

Each tool targets a distinct operation within the color, font, or code utility domains. Descriptions clearly differentiate retrieval, search, and action tools, so an agent can reliably select the right one without ambiguity.

Naming Consistency4/5

All names use snake_case and are readable, but there's a mix of direct verb_noun patterns (check_contrast, extract_colors) and a get_ prefix for retrieval tools (get_font, get_palette). The inconsistency is minor and the pattern remains predictable overall.

Tool Count5/5

15 tools is at the upper end of the well-scoped range, but each tool serves a clear, distinct purpose across three focused domains (fonts, colors, code). No tool feels redundant or unnecessary for the server's mission.

Completeness5/5

The server provides a comprehensive lifecycle for its domains: font search, metadata, file access, CSS generation, and image recognition; color extraction, naming, shading, contrast checking, and palette search; and code detection, conversion, and minification. No obvious gaps exist.