MCP Server

Tonebook Palette

app.tonebook/palette
Design & Creative Public & reachable MCP 2025-11-25

What this MCP does

Creates and compares digital color palettes and generates portable palette boards for outfits, events, and packing.

compare_colors
Compare supplied digital colors
Compare up to 12 supplied six-digit hex colors or standard color names with a portable selected palette. Unknown or ambiguous names request hex values. Return the nearest digital swatch with a fixed RGB rule and concise rationale. This does not assess skin, photos, fabrics or garments you own.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['palette_ref', 'colors'], 'properties': {'colors': {'type': 'array', 'items': {'anyOf': [{'type': 'object', 'required': ['hex'], 'properties': {'hex': {'type': 'string', 'pattern': '^#[0-9a-f]{6}$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'pattern': '^[A-Za-z ]+$', 'maxLength': 48, 'minLength': 1}}, 'additionalProperties': False}]}, 'maxItems': 12, 'minItems': 1}, 'palette_ref': {'type': 'string', 'maxLength': 1400, 'minLength': 16}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['schema_version', 'kind', 'result'], 'properties': {'kind': {'type': 'string', 'const': 'compare_colors'}, 'result': {'anyOf': [{'type': 'object', 'required': ['state', 'color_positions', 'clarification'], 'properties': {'state': {'type': 'string', 'const': 'clarification_needed'}, 'clarification': {'type': 'string', 'maxLength': 600}, 'color_positions': {'type': 'array', 'items': {'type': 'integer', 'maximum': 12, 'minimum': 1}}}, 'additionalProperties': False}, {'type': 'object', 'required': ['state', 'palette', 'method', 'comparisons', 'caveat'], 'properties': {'state': {'type': 'string', 'const': 'compared'}, 'caveat': {'type': 'string'}, 'method': {'type': 'string'}, 'palette': {'type': 'object', 'required': ['version', 'season_id', 'source', 'confirmed', 'quiz_version', 'suggested_season_id', 'revision', 'palette_ref', 'season', 'colors', 'guidance', 'caveat', 'storage'], 'properties': {'caveat': {'type': 'string', 'maxLength': 600}, 'colors': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'hex'], 'properties': {'hex': {'type': 'string', 'pattern': '^#[0-9A-F]{6}$'}, 'label': {'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 12, 'minItems': 12}, 'season': {'type': 'string'}, 'source': {'enum': ['quiz_suggestion', 'user_selection'], 'type': 'string'}, 'storage': {'type': 'string', 'maxLength': 600}, 'version': {'type': 'string', 'const': 'tonebook.palette.v1'}, 'guidance': {'type': 'string', 'maxLength': 600}, 'revision': {'type': 'integer', 'maximum': 1000, 'minimum': 1}, 'confirmed': {'type': 'boolean'}, 'season_id': {'enum': ['bright_spring', 'warm_spring', 'light_spring', 'light_summer', 'cool_summer', 'soft_summer', 'soft_autumn', 'warm_autumn', 'deep_autumn', 'deep_winter', 'cool_winter', 'bright_winter'], 'type': 'string'}, 'palette_ref': {'type': 'string', 'maxLength': 1400, 'minLength': 16}, 'quiz_version': {'anyOf': [{'type': 'string', 'const': 'tonebook.quiz.2026-09-23'}, {'type': 'null'}]}, 'suggested_season_id': {'anyOf': [{'enum': ['bright_spring', 'warm_spring', 'light_spring', 'light_summer', 'cool_summer', 'soft_summer', 'soft_autumn', 'warm_autumn', 'deep_autumn', 'deep_winter', 'cool_winter', 'bright_winter'], 'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'comparisons': {'type': 'array', 'items': {'type': 'object', 'required': ['input_hex', 'swatch', 'hex', 'relation', 'rationale'], 'properties': {'hex': {'type': 'string'}, 'swatch': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'relation': {'enum': ['exact_palette_color', 'nearest_digital_swatch'], 'type': 'string'}, 'input_hex': {'type': 'string'}, 'rationale': {'type': 'string', 'maxLength': 600}}, 'additionalProperties': False}, 'maxItems': 12, 'minItems': 1}}, 'additionalProperties': False}]}, 'schema_version': {'type': 'string', 'const': 'tonebook.connector.v1'}}, 'additionalProperties': False}
create_palette_board
Create a portable palette board
Generate a labeled downloadable SVG board and matching 12-color PNG from a user-confirmed palette, a chosen outfit/event/packing purpose and optional supplied garment colors. Requires the user’s chosen palette; unknown colors request clarification. Computation only; no upload, charge, account record or closet inference.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['palette_ref', 'purpose'], 'properties': {'colors': {'type': 'array', 'items': {'anyOf': [{'type': 'object', 'required': ['hex'], 'properties': {'hex': {'type': 'string', 'pattern': '^#[0-9a-f]{6}$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'pattern': '^[A-Za-z ]+$', 'maxLength': 48, 'minLength': 1}}, 'additionalProperties': False}]}, 'maxItems': 12}, 'purpose': {'enum': ['outfit', 'event', 'packing'], 'type': 'string'}, 'occasion': {'enum': ['casual', 'work', 'evening', 'celebration', 'formal'], 'type': 'string'}, 'palette_ref': {'type': 'string', 'maxLength': 1400, 'minLength': 16}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['schema_version', 'kind', 'result'], 'properties': {'kind': {'type': 'string', 'const': 'create_palette_board'}, 'result': {'anyOf': [{'type': 'object', 'required': ['state', 'color_positions', 'clarification'], 'properties': {'state': {'type': 'string', 'const': 'clarification_needed'}, 'clarification': {'type': 'string', 'maxLength': 600}, 'color_positions': {'type': 'array', 'items': {'type': 'integer', 'maximum': 12, 'minimum': 1}}}, 'additionalProperties': False}, {'type': 'object', 'required': ['state', 'version', 'board_id', 'board_ref', 'palette', 'purpose', 'occasion', 'constraints', 'accessible_text', 'artifacts', 'storage'], 'properties': {'state': {'type': 'string', 'const': 'ready'}, 'palette': {'type': 'object', 'required': ['version', 'season_id', 'source', 'confirmed', 'quiz_version', 'suggested_season_id', 'revision', 'palette_ref', 'season', 'colors', 'guidance', 'caveat', 'storage'], 'properties': {'caveat': {'type': 'string', 'maxLength': 600}, 'colors': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'hex'], 'properties': {'hex': {'type': 'string', 'pattern': '^#[0-9A-F]{6}$'}, 'label': {'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 12, 'minItems': 12}, 'season': {'type': 'string'}, 'source': {'enum': ['quiz_suggestion', 'user_selection'], 'type': 'string'}, 'storage': {'type': 'string', 'maxLength': 600}, 'version': {'type': 'string', 'const': 'tonebook.palette.v1'}, 'guidance': {'type': 'string', 'maxLength': 600}, 'revision': {'type': 'integer', 'maximum': 1000, 'minimum': 1}, 'confirmed': {'type': 'boolean'}, 'season_id': {'enum': ['bright_spring', 'warm_spring', 'light_spring', 'light_summer', 'cool_summer', 'soft_summer', 'soft_autumn', 'warm_autumn', 'deep_autumn', 'deep_winter', 'cool_winter', 'bright_winter'], 'type': 'string'}, 'palette_ref': {'type': 'string', 'maxLength': 1400, 'minLength': 16}, 'quiz_version': {'anyOf': [{'type': 'string', 'const': 'tonebook.quiz.2026-09-23'}, {'type': 'null'}]}, 'suggested_season_id': {'anyOf': [{'enum': ['bright_spring', 'warm_spring', 'light_spring', 'light_summer', 'cool_summer', 'soft_summer', 'soft_autumn', 'warm_autumn', 'deep_autumn', 'deep_winter', 'cool_winter', 'bright_winter'], 'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'purpose': {'enum': ['outfit', 'event', 'packing'], 'type': 'string'}, 'storage': {'type': 'string', 'maxLength': 600}, 'version': {'type': 'string', 'const': 'tonebook.board.v1'}, 'board_id': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'occasion': {'anyOf': [{'enum': ['casual', 'work', 'evening', 'celebration', 'formal'], 'type': 'string'}, {'type': 'null'}]}, 'artifacts': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'mimeType', 'sha256'], 'properties': {'name': {'type': 'string'}, 'sha256': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'mimeType': {'enum': ['image/svg+xml', 'image/png'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 2, 'minItems': 2}, 'board_ref': {'type': 'string', 'maxLength': 4096, 'minLength': 16}, 'constraints': {'type': 'array', 'items': {'type': 'object', 'required': ['input_hex', 'swatch', 'hex', 'relation', 'rationale'], 'properties': {'hex': {'type': 'string'}, 'swatch': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'relation': {'enum': ['exact_palette_color', 'nearest_digital_swatch'], 'type': 'string'}, 'input_hex': {'type': 'string'}, 'rationale': {'type': 'string', 'maxLength': 600}}, 'additionalProperties': False}, 'maxItems': 12}, 'accessible_text': {'type': 'string', 'maxLength': 3000}}, 'additionalProperties': False}]}, 'schema_version': {'type': 'string', 'const': 'tonebook.connector.v1'}}, 'additionalProperties': False}
get_palette_board
Reconstruct a portable palette board
Reconstruct the same SVG, PNG, selected palette and supplied-color comparisons from a complete board reference. Anyone with a reference can read its public palette data. It is not an account credential and cannot retrieve purchased reports. No Tonebook server record is required.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['board_ref'], 'properties': {'board_ref': {'type': 'string', 'maxLength': 4096, 'minLength': 16}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['schema_version', 'kind', 'result'], 'properties': {'kind': {'type': 'string', 'const': 'get_palette_board'}, 'result': {'anyOf': [{'type': 'object', 'required': ['state', 'color_positions', 'clarification'], 'properties': {'state': {'type': 'string', 'const': 'clarification_needed'}, 'clarification': {'type': 'string', 'maxLength': 600}, 'color_positions': {'type': 'array', 'items': {'type': 'integer', 'maximum': 12, 'minimum': 1}}}, 'additionalProperties': False}, {'type': 'object', 'required': ['state', 'version', 'board_id', 'board_ref', 'palette', 'purpose', 'occasion', 'constraints', 'accessible_text', 'artifacts', 'storage'], 'properties': {'state': {'type': 'string', 'const': 'ready'}, 'palette': {'type': 'object', 'required': ['version', 'season_id', 'source', 'confirmed', 'quiz_version', 'suggested_season_id', 'revision', 'palette_ref', 'season', 'colors', 'guidance', 'caveat', 'storage'], 'properties': {'caveat': {'type': 'string', 'maxLength': 600}, 'colors': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'hex'], 'properties': {'hex': {'type': 'string', 'pattern': '^#[0-9A-F]{6}$'}, 'label': {'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 12, 'minItems': 12}, 'season': {'type': 'string'}, 'source': {'enum': ['quiz_suggestion', 'user_selection'], 'type': 'string'}, 'storage': {'type': 'string', 'maxLength': 600}, 'version': {'type': 'string', 'const': 'tonebook.palette.v1'}, 'guidance': {'type': 'string', 'maxLength': 600}, 'revision': {'type': 'integer', 'maximum': 1000, 'minimum': 1}, 'confirmed': {'type': 'boolean'}, 'season_id': {'enum': ['bright_spring', 'warm_spring', 'light_spring', 'light_summer', 'cool_summer', 'soft_summer', 'soft_autumn', 'warm_autumn', 'deep_autumn', 'deep_winter', 'cool_winter', 'bright_winter'], 'type': 'string'}, 'palette_ref': {'type': 'string', 'maxLength': 1400, 'minLength': 16}, 'quiz_version': {'anyOf': [{'type': 'string', 'const': 'tonebook.quiz.2026-09-23'}, {'type': 'null'}]}, 'suggested_season_id': {'anyOf': [{'enum': ['bright_spring', 'warm_spring', 'light_spring', 'light_summer', 'cool_summer', 'soft_summer', 'soft_autumn', 'warm_autumn', 'deep_autumn', 'deep_winter', 'cool_winter', 'bright_winter'], 'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'purpose': {'enum': ['outfit', 'event', 'packing'], 'type': 'string'}, 'storage': {'type': 'string', 'maxLength': 600}, 'version': {'type': 'string', 'const': 'tonebook.board.v1'}, 'board_id': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'occasion': {'anyOf': [{'enum': ['casual', 'work', 'evening', 'celebration', 'formal'], 'type': 'string'}, {'type': 'null'}]}, 'artifacts': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'mimeType', 'sha256'], 'properties': {'name': {'type': 'string'}, 'sha256': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'mimeType': {'enum': ['image/svg+xml', 'image/png'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 2, 'minItems': 2}, 'board_ref': {'type': 'string', 'maxLength': 4096, 'minLength': 16}, 'constraints': {'type': 'array', 'items': {'type': 'object', 'required': ['input_hex', 'swatch', 'hex', 'relation', 'rationale'], 'properties': {'hex': {'type': 'string'}, 'swatch': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'relation': {'enum': ['exact_palette_color', 'nearest_digital_swatch'], 'type': 'string'}, 'input_hex': {'type': 'string'}, 'rationale': {'type': 'string', 'maxLength': 600}}, 'additionalProperties': False}, 'maxItems': 12}, 'accessible_text': {'type': 'string', 'maxLength': 3000}}, 'additionalProperties': False}]}, 'schema_version': {'type': 'string', 'const': 'tonebook.connector.v1'}}, 'additionalProperties': False}
get_quiz_questions
Get palette quiz choices
Return Tonebook’s eight categorical self-assessment questions. Ask for the user’s own choices; do not infer choices from a photo or conversation history. No account, photo or payment is needed.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['schema_version', 'kind', 'result'], 'properties': {'kind': {'type': 'string', 'const': 'get_quiz_questions'}, 'result': {'type': 'object', 'required': ['questions', 'seasons', 'caveat', 'quiz_version'], 'properties': {'caveat': {'type': 'string'}, 'seasons': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 12, 'minItems': 12}, 'questions': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'number', 'prompt', 'choices'], 'properties': {'key': {'type': 'string'}, 'number': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'prompt': {'type': 'string'}, 'choices': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}}, 'additionalProperties': False}, 'maxItems': 8, 'minItems': 8}, 'quiz_version': {'type': 'string', 'const': 'tonebook.quiz.2026-09-23'}}, 'additionalProperties': False}, 'schema_version': {'type': 'string', 'const': 'tonebook.connector.v1'}}, 'additionalProperties': False}
score_color_quiz
Score a palette self-assessment
Use eight explicit user-selected answers to suggest a 12-color starting palette and adjacent option. Uncertain or conflicting preferences prompt clarification. The versioned result is unconfirmed guidance, not a diagnosis. It never overwrites a confirmed palette.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['undertone', 'skin_depth', 'natural_hair', 'eye_color', 'contrast', 'metal_preference', 'white_preference', 'complimented_colors'], 'properties': {'contrast': {'enum': ['high', 'medium', 'low'], 'type': 'string', 'description': 'What is your overall feature contrast?'}, 'eye_color': {'enum': ['bright', 'warm', 'soft', 'deep'], 'type': 'string', 'description': 'What is your eye color?'}, 'undertone': {'enum': ['cool', 'warm', 'neutral', 'unsure'], 'type': 'string', 'description': 'Which colors do you prefer near your face?'}, 'skin_depth': {'enum': ['fair', 'medium', 'deep'], 'type': 'string', 'description': 'How would you describe your skin depth?'}, 'natural_hair': {'enum': ['warm_light', 'cool_light', 'warm_dark', 'cool_dark'], 'type': 'string', 'description': 'What is your natural hair color?'}, 'metal_preference': {'enum': ['silver', 'gold', 'both', 'rose'], 'type': 'string', 'description': 'Which metal look do you prefer near your face?'}, 'white_preference': {'enum': ['cool_white', 'unsure', 'cream'], 'type': 'string', 'description': 'Which white do you prefer wearing?'}, 'complimented_colors': {'enum': ['bright', 'muted', 'warm_rich', 'cool_soft', 'deep', 'light'], 'type': 'string', 'description': 'Which colors have drawn compliments on you?'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['schema_version', 'kind', 'result'], 'properties': {'kind': {'type': 'string', 'const': 'score_color_quiz'}, 'result': {'type': 'object', 'required': ['state', 'palette', 'adjacent_season_id', 'adjacent_season', 'clarification', 'starter_swatches', 'confidence'], 'properties': {'state': {'enum': ['suggestion', 'clarification_needed'], 'type': 'string'}, 'palette': {'type': 'object', 'required': ['version', 'season_id', 'source', 'confirmed', 'quiz_version', 'suggested_season_id', 'revision', 'palette_ref', 'season', 'colors', 'guidance', 'caveat', 'storage'], 'properties': {'caveat': {'type': 'string', 'maxLength': 600}, 'colors': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'hex'], 'properties': {'hex': {'type': 'string', 'pattern': '^#[0-9A-F]{6}$'}, 'label': {'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 12, 'minItems': 12}, 'season': {'type': 'string'}, 'source': {'enum': ['quiz_suggestion', 'user_selection'], 'type': 'string'}, 'storage': {'type': 'string', 'maxLength': 600}, 'version': {'type': 'string', 'const': 'tonebook.palette.v1'}, 'guidance': {'type': 'string', 'maxLength': 600}, 'revision': {'type': 'integer', 'maximum': 1000, 'minimum': 1}, 'confirmed': {'type': 'boolean'}, 'season_id': {'enum': ['bright_spring', 'warm_spring', 'light_spring', 'light_summer', 'cool_summer', 'soft_summer', 'soft_autumn', 'warm_autumn', 'deep_autumn', 'deep_winter', 'cool_winter', 'bright_winter'], 'type': 'string'}, 'palette_ref': {'type': 'string', 'maxLength': 1400, 'minLength': 16}, 'quiz_version': {'anyOf': [{'type': 'string', 'const': 'tonebook.quiz.2026-09-23'}, {'type': 'null'}]}, 'suggested_season_id': {'anyOf': [{'enum': ['bright_spring', 'warm_spring', 'light_spring', 'light_summer', 'cool_summer', 'soft_summer', 'soft_autumn', 'warm_autumn', 'deep_autumn', 'deep_winter', 'cool_winter', 'bright_winter'], 'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'confidence': {'type': 'string'}, 'clarification': {'type': ['string', 'null']}, 'adjacent_season': {'type': 'string'}, 'starter_swatches': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'hex'], 'properties': {'hex': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 4, 'minItems': 4}, 'adjacent_season_id': {'enum': ['bright_spring', 'warm_spring', 'light_spring', 'light_summer', 'cool_summer', 'soft_summer', 'soft_autumn', 'warm_autumn', 'deep_autumn', 'deep_winter', 'cool_winter', 'bright_winter'], 'type': 'string'}}, 'additionalProperties': False}, 'schema_version': {'type': 'string', 'const': 'tonebook.connector.v1'}}, 'additionalProperties': False}
select_palette
Confirm or correct a palette choice
Return a portable user-confirmed palette from an explicit season choice. For correction, pass the prior palette reference so source and revision are retained. Confirm only the user’s stated choice. Keep the new reference for later calls; this does not write account or native report data.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['season_id', 'confirmed'], 'properties': {'confirmed': {'type': 'boolean', 'const': True}, 'season_id': {'enum': ['bright_spring', 'warm_spring', 'light_spring', 'light_summer', 'cool_summer', 'soft_summer', 'soft_autumn', 'warm_autumn', 'deep_autumn', 'deep_winter', 'cool_winter', 'bright_winter'], 'type': 'string'}, 'previous_palette_ref': {'type': 'string', 'maxLength': 1400, 'minLength': 16}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['schema_version', 'kind', 'result'], 'properties': {'kind': {'type': 'string', 'const': 'select_palette'}, 'result': {'type': 'object', 'required': ['version', 'season_id', 'source', 'confirmed', 'quiz_version', 'suggested_season_id', 'revision', 'palette_ref', 'season', 'colors', 'guidance', 'caveat', 'storage'], 'properties': {'caveat': {'type': 'string', 'maxLength': 600}, 'colors': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'hex'], 'properties': {'hex': {'type': 'string', 'pattern': '^#[0-9A-F]{6}$'}, 'label': {'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 12, 'minItems': 12}, 'season': {'type': 'string'}, 'source': {'enum': ['quiz_suggestion', 'user_selection'], 'type': 'string'}, 'storage': {'type': 'string', 'maxLength': 600}, 'version': {'type': 'string', 'const': 'tonebook.palette.v1'}, 'guidance': {'type': 'string', 'maxLength': 600}, 'revision': {'type': 'integer', 'maximum': 1000, 'minimum': 1}, 'confirmed': {'type': 'boolean'}, 'season_id': {'enum': ['bright_spring', 'warm_spring', 'light_spring', 'light_summer', 'cool_summer', 'soft_summer', 'soft_autumn', 'warm_autumn', 'deep_autumn', 'deep_winter', 'cool_winter', 'bright_winter'], 'type': 'string'}, 'palette_ref': {'type': 'string', 'maxLength': 1400, 'minLength': 16}, 'quiz_version': {'anyOf': [{'type': 'string', 'const': 'tonebook.quiz.2026-09-23'}, {'type': 'null'}]}, 'suggested_season_id': {'anyOf': [{'enum': ['bright_spring', 'warm_spring', 'light_spring', 'light_summer', 'cool_summer', 'soft_summer', 'soft_autumn', 'warm_autumn', 'deep_autumn', 'deep_winter', 'cool_winter', 'bright_winter'], 'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'schema_version': {'type': 'string', 'const': 'tonebook.connector.v1'}}, 'additionalProperties': False}
Added
get_palette_board
Oct. 3, 2026, 2:40 a.m.
Added
create_palette_board
Oct. 3, 2026, 2:40 a.m.
Added
compare_colors
Oct. 3, 2026, 2:40 a.m.
Added
select_palette
Oct. 3, 2026, 2:40 a.m.
Added
score_color_quiz
Oct. 3, 2026, 2:40 a.m.
Added
get_quiz_questions
Oct. 3, 2026, 2:40 a.m.