{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "name": "chromologium",
  "version": "1.5.0",
  "protocolVersion": "2025-06-18",
  "description": "Live access to The Chromologium archive: material optics, Kubelka–Munk pigment mixing, OKLCH movement tokens, batch APCA contrast auditing with font size/weight lookup, passing color suggestion, accessible scale generation, multi-platform token export (iOS, Android, Figma DTCG), component scaffolding, cultural earcons, and full-text search, and the instrument round-trip: read any shared lab state and render it back as SVG/CSS with a stamped plate URL.",
  "transport": "streamable-http",
  "endpoint": "https://chromologium.com/mcp",
  "license": "MIT",
  "homepage": "https://chromologium.com",
  "tools": [
    {
      "name": "get_instrument_state",
      "description": "Read half of the instrument round-trip: parse any Chromologium lab permalink (the URL a visitor shares from the Loom or the Thin-Film workbench) into its full recipe — the validated state, the resolved specimen data (threading plan or film physics), the fringe or thread palette, and the plate/embed URLs. Give it a URL a human made; get back everything needed to reproduce or vary it."
    },
    {
      "name": "render_instrument",
      "description": "Write half of the instrument round-trip: given an instrument and a state, return the artefact as text-native output — the Loom yields editable SVG (thread-level rects), dependency-free repeating-linear-gradient CSS, and the weaver's draft; the thin film yields an interference-gradient SVG and its physics-sampled fringe stops. Also returns the permalink and PNG plate URL for the state, so an agent can hand its user a finished, provenance-stamped image."
    },
    {
      "name": "generate_pattern",
      "description": "Commission a generative pattern from the Pattern Press: Truchet tilings, flow fields, isometric lattices, or interference meshes. Returns editable SVG (every mark its own element), a permalink, a stamped plate URL, and — for the families that genuinely tile — dependency-free CSS. Deterministic in its seed, so the same arguments always return the same sheet. Colours default to the archive's canonical ink but may be overridden to match a caller's own tokens."
    },
    {
      "name": "marble_trough",
      "description": "Float archival pigments on a size bath and draw a comb through them — the ebru technique behind old bookbinders' endpapers. Returns the marbler's recipe (every drop in the order it was floated, and the comb drawn through them), a permalink and a stamped plate URL. Note that marbled paints do not blend: each colour holds its own boundary on the size, which is why the result reads as crisp veins rather than a wash."
    },
    {
      "name": "teleprint",
      "description": "Re-type one of the archive's specimens as character art and return it as plain text, ready to paste into a README or a terminal. Sources are the archive's own instruments (a woven cloth, an interference film, a pressed pattern, a marbled sheet); each cell takes the character whose ink coverage is nearest its brightness, after the sheet is stretched to its own tonal range, so the result reads as tone rather than as texture."
    },
    {
      "name": "list_looks",
      "description": "The curated looks catalogue — named, permalinkable instrument states (the same rail shown on each lab). The browsable menu an agent can offer before tuning by hand."
    },
    {
      "name": "export_palette",
      "description": "Colours out in the file formats designers' tools import: GIMP .gpl (also Krita, Inkscape, Aseprite) and Tokens Studio JSON inline; Adobe .ase and Procreate .swatches as base64. Pass explicit colours, or an instrument state (a loom cloth's threading plan, a thin film's fringe stops) to export what the archive computed."
    },
    {
      "name": "get_material_optics",
      "description": "Retrieve the authored optical coefficients for a catalogued national material — scatter depth, micro-facet roughness, specular anisotropy, metalness, refractive index at 589 nm, and patina rate — plus its tactile profile, damping regime, and the artwork citation. These are the exact values that drive the Chromologium's GPU material plates."
    },
    {
      "name": "mix_pigments",
      "description": "Mix two or more archival pigments using genuine two-constant Kubelka–Munk subtractive scattering (K/S = (1−R)²/2R), the way paint actually mixes — not an RGB average. Returns the mixed colour alongside the naive additive average so the difference is visible."
    },
    {
      "name": "audit_apca_contrast",
      "description": "Compute the APCA Lc (Advanced Perceptual Contrast Algorithm) score between text and background colors with plain-language WCAG 3 verdicts. Supports single color pairs or batch arrays of pairs, plus optional font size / weight lookup for exact pass/fail evaluation."
    },
    {
      "name": "suggest_passing_color",
      "description": "Suggest the nearest color in OKLCH that passes a desired APCA contrast threshold against a given background substrate, preserving the original hue and chroma while minimally shifting lightness."
    },
    {
      "name": "get_movement_tokens",
      "description": "Retrieve the full token set for one of the six calibrated design movements in a given substrate mode, returning both OKLCH and Hex values, CSS variables, Tailwind v4 @theme blocks, contrast scores, kinetics, and acoustics."
    },
    {
      "name": "get_earcon",
      "description": "Retrieve the resonant acoustic profile for a catalogued nation — frequency in Hz, waveform, source instrument, cultural lineage, and psychoacoustic rationale — for synthesising a culturally-grounded UI earcon."
    },
    {
      "name": "search_archive",
      "description": "Full-text search across the entire Chromologium archive — 31 sovereign entries, 12 archival pigments, 6 movements, 41 lexicon terms, 9 monographs, and 8 lab workbenches — returning matches with their canonical URLs."
    },
    {
      "name": "cite",
      "description": "Generate citations and attribution blocks for project colophons, /about pages, README acknowledgments, monographs, and catalogued artworks in APA, BibTeX, JSX/HTML Colophon, or Markdown formats."
    },
    {
      "name": "generate_accessible_scale",
      "description": "Generate a calibrated 10-step (50–950) OKLCH perceptual color scale from any seed color, guaranteeing monotonic lightness distribution, APCA Lc contrast ratings for black/white text pairings on every step, and ready-to-use CSS variables, Tailwind v4 @theme, and W3C DTCG JSON blocks."
    },
    {
      "name": "export_platform_tokens",
      "description": "Export a visual movement's complete token dictionary into native platform architectures: iOS (Swift / SwiftUI), Android (Kotlin / Jetpack Compose), Figma Tokens Studio (W3C DTCG standard), Style Dictionary JSON, or Tailwind v4 @theme CSS."
    },
    {
      "name": "scaffold_component",
      "description": "Generate production-ready, fully accessible React + TypeScript component code (Button, Card, Dialog/Modal, Range Slider, Badge, Tabs) styled with the specified movement's OKLCH design tokens, Framer Motion spring physics, and ADA/WCAG 2.2 Level AA semantics."
    },
    {
      "name": "validate_theme_token_matrix",
      "description": "Audit an entire site or design-system theme token dictionary across both dark and light modes, verifying WCAG 2.1 AA (4.5:1 body / 3.0:1 UI) and APCA Lc compliance for all foreground/background pairings. Identifies failing pairs in either mode and suggests compliant color replacements."
    },
    {
      "name": "lint_component_accessibility",
      "description": "Pre-flight static audit of React/JSX component code for ADA/WCAG 2.1 AA violations, nested interactive elements, missing form/icon labels, keyboard traps in scrollable regions, hardcoded dark chamber inks, and CSS selector collision hazards."
    },
    {
      "name": "audit_viewport_resilience",
      "description": "Audit JSX layout patterns and Tailwind CSS classes for mobile viewport traps: rigid min-widths > 320px, non-responsive multi-column grids, and un-padded pre/code blocks causing horizontal blowout on narrow mobile screens (320px–375px)."
    },
    {
      "name": "get_registry_component",
      "description": "Retrieve full installation manifest, typed props, dependencies, code integration boilerplate, and curatorial colophon suggestions for any Chromologium shadcn-compatible component (e.g. 'specimen-document-deck', 'material-plate'). Includes optional Colophon Seal and reference snippets the agent can suggest to the user."
    }
  ],
  "resources": [
    {
      "uri": "chromologium://instruments/all.json",
      "name": "The Instrument Catalogue",
      "description": "Every laboratory instrument, its parameters with types, ranges and enumerated options, its permalink shape and its plate endpoint. This is the same source the instruments themselves obey, so it cannot drift from what they accept.",
      "mimeType": "application/json"
    },
    {
      "uri": "chromologium://looks/all.json",
      "name": "Curated Instrument Looks",
      "description": "Named, permalinkable starting points across all six instruments — a preset library with a URL for each.",
      "mimeType": "application/json"
    },
    {
      "uri": "chromologium://tokens/dtcg.json",
      "name": "Design Tokens (W3C DTCG Format)",
      "description": "Standard W3C Design Tokens Community Group JSON format for all 6 Visual Movements.",
      "mimeType": "application/json"
    },
    {
      "uri": "chromologium://movements/all.json",
      "name": "Visual Movements Master Catalog",
      "description": "Complete metadata, tokens, kinematics, and aesthetics for all 6 Visual Movements.",
      "mimeType": "application/json"
    },
    {
      "uri": "chromologium://atlas/all.json",
      "name": "Archival Atlas Sovereignties",
      "description": "All 31 sovereign cultural entries with material physics, refractive indices, and provenance.",
      "mimeType": "application/json"
    },
    {
      "uri": "chromologium://monographs/diegetic-interface-architecture.md",
      "name": "Monograph: Diegetic Interface Architecture",
      "description": "Curatorial monograph on physicalized sensory feedback and cognitive ergonomics.",
      "mimeType": "text/markdown"
    },
    {
      "uri": "chromologium://monographs/the-borgesian-library-taxonomies.md",
      "name": "Monograph: The Borgesian Library Taxonomies",
      "description": "Curatorial monograph on recursive multi-dimensional information architecture.",
      "mimeType": "text/markdown"
    },
    {
      "uri": "chromologium://monographs/computational-patina-entropy.md",
      "name": "Monograph: Computational Patina & Material Entropy",
      "description": "Curatorial monograph on algorithmic wear and time-grounded UI physics.",
      "mimeType": "text/markdown"
    },
    {
      "uri": "chromologium://standards/a11y-contracts",
      "name": "Normative Accessibility Architecture & Theme Synchronization Contracts",
      "description": "Normative rules for WCAG 2.1 AA compliance: MutationObserver DOM-to-React theme synchronization, CSS selector collision defense, and certified high-contrast palette mappings.",
      "mimeType": "text/markdown"
    },
    {
      "uri": "chromologium://components/all.json",
      "name": "The Component Registry Catalogue",
      "description": "Every open-source shadcn-compatible component, typed props, dependencies, registry URLs, and required project attribution contracts.",
      "mimeType": "application/json"
    }
  ],
  "prompts": [
    {
      "name": "design_a_specimen",
      "description": "Take a described intent ('a cold teal marbled endpaper', 'iridescent cloth for a hero') to a tuned instrument state, a permalink, and a plate. Walks the full loop: choose the instrument, read its parameter contract, tune, then capture.",
      "arguments": [
        {
          "name": "intent",
          "required": true
        },
        {
          "name": "instrument",
          "required": false
        }
      ]
    },
    {
      "name": "brand_from_specimen",
      "description": "Derive a working palette and design tokens from an existing specimen permalink — the bridge from a picture you liked to code you can ship.",
      "arguments": [
        {
          "name": "permalink",
          "required": true
        },
        {
          "name": "target",
          "required": false
        }
      ]
    },
    {
      "name": "publish_a_specimen",
      "description": "Produce every shareable form of a specimen at once: permalink, social plate, oEmbed-backed embed, README badge, and the agent payload another model can consume.",
      "arguments": [
        {
          "name": "permalink",
          "required": true
        }
      ]
    },
    {
      "name": "generate_colophon_entry",
      "description": "Generate an architectural Colophon / Credits section documenting typography, token scales, APCA contrast compliance, and design system foundations.",
      "arguments": [
        {
          "name": "projectName",
          "required": false
        },
        {
          "name": "movement",
          "required": false
        }
      ]
    },
    {
      "name": "audit_palette_contrast",
      "description": "Audit a design palette or UI theme for APCA (WCAG 3) contrast compliance across body copy, headings, and muted elements.",
      "arguments": [
        {
          "name": "text",
          "required": true
        },
        {
          "name": "background",
          "required": true
        }
      ]
    },
    {
      "name": "scaffold_movement_theme",
      "description": "Scaffold design tokens and CSS custom properties for a Chromologium movement.",
      "arguments": [
        {
          "name": "movement",
          "required": true
        },
        {
          "name": "mode",
          "required": false
        }
      ]
    }
  ]
}
