Skip to main content
Glama

Vanderpoel Pairing

vanderpoel_pairing
Read-only

Emily Noyes Vanderpoel's documented 'good' dyad/triad hue groupings (Color Problems, 1902, Plate XXXVI 'Good Dyads or Pairs' and Plate XXXVII 'Good Triads'), served from the build artefacts vanderpoel_dyads.json and vanderpoel_triads.json. Snaps an input hex to the nearest of Vanderpoel's eleven real hue-family labels, resolves that hex against the archive, and returns every documented dyad or triad the label belongs to -- each OTHER member carrying its own nearest real archive match (CIEDE2000), with hex_collision disclosed when the match is tied. Unlike hay_contrast, this carries NO proportional ratio -- only Vanderpoel's own categorical 'good' editorial judgement, printed verbatim on the plates. Returns groupings: null for a near-neutral input, where hue is not meaningfully defined, or when the nearest hue-family label is a member of no dyad or triad -- silence is the honest answer, not a forced match. Member names come from a transcriber's digitisation_alt_text (an accessibility description of the plate image), not verified printed captions; every response states this caveat explicitly (member_source_caveat), not just a code comment. The hue positions used to snap an input to a label are a modern matching convention, not a number Vanderpoel printed -- disclosed per response as label_placement_basis.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hexYesHex colour, e.g. '#CC1A14'.
n_per_memberNoArchive candidates per partner member (1-5). Default 1, which returns a single archive_match object rather than a list.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
reasonNo
coveredNo
groupingsNoDocumented dyads/triads containing the snapped label. Each carries other_member_labels (Vanderpoel's own words), other_members (each with archive_match and hex_collision), judgement, judgement_basis_verbatim, source_plate and its own member_source_caveat. null -- never [] and never a substituted weaker answer -- when nothing is documented.
input_hexNo
input_snapped_toNoVanderpoel hue-family label the input snapped to.
input_archive_matchNoNearest real archive colour to the input itself, or null if nothing is near enough.
member_source_caveatNo
label_placement_basisNoStates that the snap angles are a modern convention, not a number Vanderpoel printed.
degrees_from_nearest_named_hueNo

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only provide readOnlyHint, so the description carries the behavioral burden and handles it thoroughly. It discloses CIEDE2000 matching, hex_collision behavior, null returns for near-neutral hues, the member_source_caveat, and the label_placement_basis caveat, plus the 'silence is honest' policy. No contradiction with readOnlyHint exists.

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 and long, but almost every clause earns its place by explaining caveats and historical provenance. It is front-loaded with the core purpose, though the single-paragraph structure makes it harder to parse than a short purpose sentence plus explicit caveats would be.

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?

For a historically nuanced tool, the description is unusually complete: it explains the source, the matching algorithm, the null behavior, provenance caveats, and the key difference from hay_contrast. With an output schema present, return-value documentation is not the description's responsibility, and nothing an agent needs to call this correctly appears to be 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%, and both parameters are documented in the schema itself. The description adds context about output objects and matching behavior, but it does not materially enrich the meaning of the input parameters beyond what the schema already states.

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 states a specific verb and resource: it snaps an input hex to Vanderpoel hue-family labels and returns documented dyad/triad groupings from specific build artifacts. It also distinguishes itself from hay_contrast by explicitly saying it carries NO proportional ratio, so an agent can tell it apart from related tools.

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 clearly implies when this is appropriate — when Vanderpoel's categorical 'good' groupings are needed — and explicitly contrasts with hay_contrast. It also documents null-return conditions, but it does not provide a direct 'use this instead of X' routing beyond the one mention of hay_contrast, nor does it address the many colour-harmony siblings.

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