{"ok":true,"api_version":"2.3.4","total_endpoints":55,"mcp_exposed":51,"rest_only":4,"mcp_tool_count":91,"mcp_tool_names":["accessibility_check","accessibility_font","accessibility_matrix","accessibility_rules","accessibility_simulate","agent_brief","agent_verify","archive_cliche","archive_coverage_gap","archive_cultural_anachronism","archive_evidence_gap","archive_provenance","archive_report_brief","archive_search","brand_asset_pack","brand_audit","brand_collision","brand_guideline_claims","brand_guideline_pdf","brand_guideline_select","brand_guideline_specify","brand_guideline_status","brand_report","brand_system","colour_card","colour_combination","colour_compare","colour_cultural_risk","colour_dna","colour_forensics","colour_harmonies","colour_hooks","colour_match_paint","colour_metrics","colour_mix","colour_namer","colour_passport","colour_passports","colour_relationships","colour_slugs","colour_story","colour_strategy","colour_timeline","colour_variants","colour_verdict","design_session","ecommerce_copy","ecommerce_namer","extract_image_colours","historical_colour_query","house_specify","image_brief","image_palette","image_personal","index_resonance","ingest_image","interior_specify","meta_capabilities","palette_analyse","palette_audit","palette_compare","palette_concept","palette_export","palette_extract","palette_finalize","palette_generate","palette_gradient","palette_heritage","palette_iterate","palette_light_dark","palette_pdf","palette_specify","palette_strict","palette_swatch","palette_translate","palette_verdict","project_delete","project_export","project_get","project_list","project_versions","query_conceptual","query_hex","render_colour_result","session_brief","style_match","system_status","tool_guide","ui_states","vanderpoel_pairing","why_connected"],"mcp_tool_action_types":{"query_conceptual":"read","extract_image_colours":"compute","query_hex":"read","palette_specify":"compute","colour_metrics":"compute","colour_harmonies":"compute","accessibility_check":"compute","accessibility_matrix":"compute","accessibility_rules":"compute","colour_slugs":"compute","palette_light_dark":"compute","accessibility_font":"compute","archive_search":"read","colour_combination":"compute","palette_strict":"compute","palette_pdf":"export","palette_audit":"compute","brand_system":"compute","brand_asset_pack":"compute","accessibility_simulate":"compute","colour_match_paint":"compute","colour_card":"compute","meta_capabilities":"read","system_status":"read","colour_story":"compute","palette_concept":"compute","colour_mix":"compute","colour_timeline":"compute","image_palette":"compute","colour_compare":"compute","colour_cultural_risk":"compute","design_session":"compute","image_personal":"compute","style_match":"compute","interior_specify":"compute","house_specify":"compute","palette_generate":"compute","palette_gradient":"compute","palette_translate":"compute","archive_cliche":"compute","colour_verdict":"compute","palette_verdict":"compute","agent_brief":"compute","colour_strategy":"compute","archive_report_brief":"compute","palette_heritage":"compute","archive_coverage_gap":"compute","archive_cultural_anachronism":"compute","session_brief":"compute","index_resonance":"read","archive_evidence_gap":"compute","brand_collision":"compute","brand_report":"compute","brand_audit":"compute","agent_verify":"compute","colour_passport":"read","colour_passports":"read","colour_dna":"compute","ecommerce_copy":"compute","colour_hooks":"compute","archive_provenance":"read","colour_forensics":"compute","palette_iterate":"compute","colour_variants":"compute","palette_export":"compute","palette_compare":"compute","ecommerce_namer":"compute","ui_states":"compute","colour_namer":"compute","palette_swatch":"export","palette_analyse":"compute","ingest_image":"export","palette_extract":"compute","image_brief":"compute","project_get":"read","project_list":"read","project_versions":"read","project_delete":"delete","project_export":"export","brand_guideline_specify":"compute","brand_guideline_status":"compute","brand_guideline_select":"update","brand_guideline_pdf":"export","brand_guideline_claims":"compute","render_colour_result":"compute","palette_finalize":"compute","tool_guide":"read","historical_colour_query":"read","colour_relationships":"read","why_connected":"read","vanderpoel_pairing":"read"},"mutating_tools":["brand_guideline_select","project_delete"],"schema_hash":"11c1cd24eeb58f4f","note":"accessibility_matrix replaces multiple accessibility_check calls for palette workflows.","endpoints":[{"method":"GET","path":"/capabilities","description":"This endpoint. Live inventory of all endpoints and MCP tools.","mcp":false,"status":"active"},{"method":"GET","path":"/health","description":"API health check. Returns archive count, colour count, version.","mcp":false,"status":"active"},{"method":"POST","path":"/query/hex","description":"Find nearest archive colours to a hex value using CIEDE2000.","mcp":true,"status":"active"},{"method":"POST","path":"/query/conceptual","description":"Find archive colours matching a natural language concept.","mcp":true,"status":"active"},{"method":"GET","path":"/colour/{name}","description":"Get full data for a named archive colour.","mcp":true,"status":"active"},{"method":"POST","path":"/colour/verdict","description":"Should I use this colour? Use case, market, and medium analysis.","mcp":true,"status":"active"},{"method":"POST","path":"/colour/name-generator","description":"Generate archive-grounded colour names for a hex value.","mcp":true,"status":"active"},{"method":"POST","path":"/colour/compare","description":"Deep perceptual and semantic comparison between two hex values.","mcp":true,"status":"active"},{"method":"GET","path":"/physics/{hex}","description":"Colour metrics for a hex value: LRV estimate, relative luminance, CIELAB lightness, chroma and hue angle, and Bradford corresponding colours (colour_metrics).","mcp":true,"status":"active"},{"method":"POST","path":"/colour/harmonies","description":"Complementary, triadic, analogous harmonies from the archive. Also 'hay_contrast': D.R. Hay's (1838) documented contrast pairing with Field's proportional power.","mcp":true,"status":"active"},{"method":"POST","path":"/colour/story","description":"Cultural and historical narrative for a hex value.","mcp":true,"status":"active"},{"method":"POST","path":"/colour/timeline","description":"Trace a colour concept through history in chronological order.","mcp":true,"status":"active"},{"method":"POST","path":"/colour/passport","description":"Canonical colour truth object. Complete colour science, archive anchor, evidence grade, hex provenance, physics and cultural reading in one call.","mcp":true,"status":"active"},{"method":"POST","path":"/colour/dna","description":"Compact semantic fingerprint for a hex value.","mcp":true,"status":"active"},{"method":"POST","path":"/colour/forensics","description":"Physical application safety for a hex value.","mcp":true,"status":"active"},{"method":"POST","path":"/accessibility/matrix","description":"Full WCAG 2.1 matrix for a palette. Every foreground/background pair in one call.","mcp":true,"status":"active"},{"method":"GET","path":"/accessibility/{hex}","description":"WCAG 2.1 report for a single colour against a background.","mcp":true,"status":"active"},{"method":"GET","path":"/accessibility/pair","description":"Contrast ratio between any two colours.","mcp":false,"status":"active"},{"method":"GET","path":"/accessibility/simulate/{hex}","description":"Full-severity dichromacy simulation only (Machado, Oliveira & Fernandes 2009): protanopia, deuteranopia, tritanopia.","mcp":true,"status":"active"},{"method":"GET","path":"/colour/match-paint/{hex}","description":"Nearest Farrow and Ball / Little Greene paint match.","mcp":true,"status":"active"},{"method":"POST","path":"/palette/generate","description":"Generate a palette from a concept with lock-and-fill support.","mcp":true,"status":"active"},{"method":"POST","path":"/palette/iterate","description":"Refine a palette with natural language feedback.","mcp":true,"status":"active"},{"method":"POST","path":"/palette/translate","description":"Map a palette to a target archive using CIEDE2000.","mcp":true,"status":"active"},{"method":"POST","path":"/palette/verdict","description":"Evaluate a palette for a use case, market, and medium.","mcp":true,"status":"active"},{"method":"POST","path":"/palette/concept","description":"Generate a historically grounded palette from a concept.","mcp":true,"status":"active"},{"method":"POST","path":"/palette/compare","description":"Deep comparison between two palettes.","mcp":true,"status":"active"},{"method":"POST","path":"/palette/export","description":"Export a palette to CSS, Tailwind, or Figma tokens.","mcp":true,"status":"active"},{"method":"POST","path":"/palette/specify","description":"Complete interior specification from a palette.","mcp":true,"status":"active"},{"method":"POST","path":"/image/palette","description":"Extract dominant colours from an image. Accepts base64 or image_url.","mcp":true,"status":"active"},{"method":"POST","path":"/colour/cultural-risk","description":"Cultural risk assessment for a hex value or palette.","mcp":true,"status":"active"},{"method":"POST","path":"/colour/strategy","description":"Commercial colour strategy endpoint.","mcp":true,"status":"active"},{"method":"POST","path":"/brand/report","description":"Complete brand colour intelligence report.","mcp":true,"status":"active"},{"method":"POST","path":"/brand/guideline/specify","description":"Brand Standard: propose brand colour candidates from a brief or existing palette.","mcp":true,"status":"active"},{"method":"POST","path":"/brand/guideline/select","description":"Brand Standard: record the chosen candidate for a brand_ref, incrementing project_version.","mcp":true,"status":"active"},{"method":"POST","path":"/brand/guideline/pdf","description":"Brand Standard: render the PDF archetype set (cover, palette, usage, accessibility, distinctiveness, appendix) from a resolved brand_ref.","mcp":true,"status":"active"},{"method":"POST","path":"/project/get","description":"Fetch a persisted project (house or brand) by ref or id.","mcp":true,"status":"active"},{"method":"POST","path":"/project/list","description":"List persisted projects for the calling API key.","mcp":true,"status":"active"},{"method":"POST","path":"/project/versions","description":"List the immutable version history for a persisted project.","mcp":true,"status":"active"},{"method":"POST","path":"/project/delete","description":"Soft-delete a persisted project. Mutating.","mcp":true,"status":"active"},{"method":"POST","path":"/project/export","description":"Export a persisted project's content as an editable DOCX or XLSX via a short-lived signed link.","mcp":true,"status":"active"},{"method":"POST","path":"/interior/specification","description":"Complete interior colour specification from a concept.","mcp":true,"status":"active"},{"method":"POST","path":"/ecommerce/copy","description":"Ecommerce product copy for a colour.","mcp":true,"status":"active"},{"method":"POST","path":"/agent/brief","description":"Complete colour direction package for AI image generation. Supports Midjourney, Flux, DALL-E, Stable Diffusion.","mcp":true,"status":"active"},{"method":"POST","path":"/colour/hooks","description":"Hook sentence, story, tweet, image prompt for a colour.","mcp":true,"status":"active"},{"method":"POST","path":"/archive/provenance","description":"Provenance explanation for a named archive colour.","mcp":true,"status":"active"},{"method":"POST","path":"/archive/cliche","description":"Find the most surprising archive colour for a concept.","mcp":true,"status":"active"},{"method":"POST","path":"/palette/gradient","description":"Perceptually smooth gradient between 2-5 archive anchor colours.","mcp":true,"status":"active"},{"method":"POST","path":"/session/design","description":"Compound one-call design session tool.","mcp":true,"status":"active"},{"method":"POST","path":"/colour/style-match","description":"Does this colour combination work together?","mcp":true,"status":"active"},{"method":"POST","path":"/image/personal","description":"Personal colour analysis from a portrait photo.","mcp":true,"status":"active"},{"method":"GET","path":"/archives","description":"List all archives with colour counts.","mcp":false,"status":"active"},{"method":"GET","path":"/archive/{name}/audit","description":"Data quality audit for a named archive.","mcp":true,"status":"active"},{"method":"GET","path":"/relationships/{record_id}","description":"What this archive record is connected to, and why -- source-asserted relationships (e.g. Wada combination membership) kept separate from structural facts.","mcp":true,"status":"active"},{"method":"GET","path":"/relationships/{a}/why/{b}","description":"Why two specific archive records are connected, if at all -- traces the actual path through the relationship graph.","mcp":true,"status":"active"},{"method":"POST","path":"/vanderpoel/pairing","description":"Vanderpoel's (1902) documented 'good' dyad/triad hue groupings by nearest hue-family match to a hex, each other member resolved to a real archive colour. Categorical judgement only, no ratio -- unlike hay_contrast.","mcp":true,"status":"active"}]}