Skip to main content
Glama

Extract Colours from Image

extract_image_colours
Read-only

Extract dominant colours from a photograph using Colour Memory's proprietary k-means++ algorithm. Requires either a public image_url, or an image_id. If you only have a raw uploaded file with no public URL (e.g. a local file path or a ChatGPT file attachment without a usable download_url), call ingest_image first to get an image_id, then pass that image_id here. Returns hex values with proportional weights. Optionally matches colours against the archive with style_context for coherent cultural naming. Use this before image_brief when you have an uploaded photograph.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kNoNumber of colours to extract (3-12, default 6)
imageNoImage file attachment from ChatGPT
analyseNoIf true, match colours against archive and return names
image_idNoEphemeral image_id returned by ingest_image. Use this if you only have a local file path or raw file attachment with no public URL.
image_urlNoPublic URL of image
grey_card_hexNoHex from a grey/white card for white balance
style_contextNoe.g. English cottage garden, Victorian, Japanese

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, which aligns with the extraction (read-only) nature of the tool. The description adds useful behavioral context beyond this: the algorithm used (k-means++), the dual input path requirement (URL vs ID), and the fact that style_context optionally matches against an archive for cultural naming. It doesn't describe rate limits or error behaviour, but for a read-only extraction tool this is adequate.

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 three sentences long with zero waste. It front-loads the core purpose and algorithm, covers the critical input logic (URL vs ID, ingest flow), notes functionality (hex weights, cultural matching), and ends with usage positioning. Every sentence contributes meaningful information.

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?

Given the output schema exists, the description doesn't need to explain return values. It adequately covers the dual input modes, the prerequisite ingest_image flow, and the optional analysis feature. The only minor gap is that it doesn't explicitly note grey_card_hex usage context (white balance calibration), but the schema covers that. For a 7-parameter tool with full schema coverage and an output schema, this is well-rounded.

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 coverage is 100%, so all 7 parameters are documented in the schema. The description adds value by explaining the relationship between image_url/image_id (mutually exclusive input options) and clarifies the ingest_image prerequisite flow. However, the description doesn't add much beyond the schema for individual parameters like k, grey_card_hex, or style_context — those are already well-named and documented in the schema itself.

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 dominant colours from a photograph using a named algorithm (k-means++), and specifies the exact inputs (image_url or image_id) and outputs (hex values with proportional weights, optional cultural naming). It also distinguishes itself from siblings by explicitly positioning it before image_brief and referencing ingest_image for upload flow.

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?

The description provides explicit guidance: requires either public image_url OR image_id; if the user has a raw file without a public URL, call ingest_image first. It also states when to use this tool ('Use this before image_brief when you have an uploaded photograph') and mentions the optional style_context/analyse flow for archive matching. This is excellent when-to-use coverage.

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

A3.6/5.0
Disambiguation2/5

Several tool clusters perform near-identical functions: extract_image_colours, image_palette and palette_extract all extract dominant colours from images; colour_passport, colour_dna, colour_metrics and colour_cultural_risk all profile a single hex; and at least six compound 'complete package' tools (agent_brief, archive_report_brief, brand_report, design_session, image_brief, session_brief) overlap heavily in scope. The descriptions try to differentiate -- some even point to tool_guide for routing -- but the volume and similarity of clusters makes misselection likely.

Naming Consistency4/5

The vast majority of tools follow a clear domain_prefix_suffix pattern (colour_, palette_, archive_, brand_, accessibility_, project_) and within families naming is very disciplined (brand_guideline_specify/select/pdf/claims/status, project_get/list/versions/delete). However, a handful of outliers invert the order (extract_image_colours, ingest_image, render_colour_result, query_hex) and some descriptions reference tools that don't exist as endpoints (palette_from_concept, match_paint_system, get_colour_metrics).

Tool Count1/5

88 tools is far beyond any reasonable single-server surface, even for a platform spanning archives, branding, interiors and accessibility. The sheer number forces agents into a massive decision space, and many tools exist purely as convenience wrappers that replace chains of 3-6 other tools, suggesting aggressive consolidation was needed.

Completeness4/5

The surface covers an unusually broad domain -- archive search, colour science, palettes, branding, interiors, accessibility, image extraction, projects, and PDF/Word/Excel exports -- with very few dead ends for end-user workflows. Minor gaps: several compound-tool descriptions reference tools that no longer exist, and valid archive names are only discoverable via error messages rather than a dedicated listing endpoint.

Resources