Skip to main content
Glama

Colour Relationships

colour_relationships
Read-only

What is this archive record connected to, and why? One-hop lookup over Colour Memory's stored relationship graph -- today populated for PigmentLineage, whose 348 design_combination nodes are Wada's 1933 Dictionary of Color Combinations plates. Returns edges in separate blocks by relationship_class so a caller can never mistake a computed colour distance for something a historical source actually said: SOURCE_ASSERTED (the source itself states the relationship, e.g. 'this colour was assigned to numbered combination 176') versus DETERMINISTIC_STRUCTURAL (a mechanical fact about the source object, e.g. 'printed on this plate'). Every edge carries its own 'does_not_mean' caveat inline -- e.g. membership in the same Wada combination does not assert that any specific pair within it was individually intended as a pairing. Not every record_id has relationships yet; an empty result is a true negative, not an error. Get record_id values from archive_search or colour_card.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
record_idYesStable record id, e.g. from archive_search or colour_card.
include_computedNoInclude computed (not source-asserted) relationships where available. Default true.
include_unresolvedNoInclude same-name candidates across sources -- the cheapest, easiest-to-misread-as-evidence edge in the system. Default false.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
labelNo
record_idNo
structuralNoMechanical facts about the source object (plate layout etc.), kept separate from source_asserted on purpose.
source_assertedNoEdges the source itself states, grouped by predicate.

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses significant behavior: results are returned in separate blocks by relationship_class, each edge carries an inline 'does_not_mean' caveat, and empty results are true negatives rather than errors. It even gives a concrete example of a caveat (membership in a Wada combination does not assert individual pairing intent). This goes far beyond the annotation and fully explains what the caller should expect.

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?

The description is dense but every sentence carries information needed for correct invocation: purpose, data scope, result structure, caveat handling, and empty-result semantics. The historical Wada detail adds color but is not strictly necessary; still, it serves to explain why the relationship graph is populated. Overall it is well-structured and front-loaded with the core question.

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 covers the tool's purpose, result format, relationship taxonomy, inline caveats, empty-result meaning, and how to obtain required IDs. Since an output schema exists, the description does not need to enumerate return fields. The one-hop scope is explicit, and the behavioral caveats remove the main risk of misinterpreting results. Nothing essential is missing.

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 three parameters with meaningful descriptions. The tool description adds contextual nuance around 'computed' relationships and 'same-name candidates', but it does not introduce new parameter semantics beyond what the schema already states. Per the baseline rule for full schematic coverage, a 3 is appropriate.

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 opens with a concrete question ('What is this archive record connected to, and why?') and names the exact action and resource: a one-hop lookup over Colour Memory's stored relationship graph. It also actively distinguishes its output types (SOURCE_ASSERTED vs DETERMINISTIC_STRUCTURAL) so a caller cannot confuse this with colour-distance computation. The tool is clearly separated from archive_search and colour_card, which are referenced as sources for record_id.

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?

The description gives clear context for when this tool is appropriate: when investigating archival connections via a one-hop lookup, with explicit guidance that an empty result is a true negative, not an error. It also tells the caller where to get valid record_id values (archive_search or colour_card). However, it does not explicitly name sibling alternatives (e.g., why_connected) or state when not to use this tool, so the exclusion guidance is only implied.

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