{"serverId":"mcp-registry/io.github.rnvizion/rnv-color-mcp","tools":[{"name":"contrast_check","fixed":{"name":"contrast_check","description":"WCAG contrast ratio between a foreground and background color, for accessibility. Both accept a hex, CSS name, RNV brand name, or saved-palette reference. Returns the ratio (1.0-21.0) plus pass/fail for AA and AAA at normal and large text sizes and for UI components. Read-only and deterministic, with no side effects. Use this for legibility and accessibility checks; to measure raw perceptual difference between two colors rather than readability use color_difference instead.","inputSchema":{"type":"object","required":["foreground","background"],"properties":{"background":{"type":"string"},"foreground":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":194,"tokensAfter":194},{"name":"convert_color","fixed":{"name":"convert_color","description":"Convert a color between formats. Input accepts a hex, CSS name, RNV brand name, or saved-palette reference. With `to` set to one of hex/rgb/hsv/hsl/lab, returns just that format; leave `to` out to get all of them. hsv and hsl are fractions from 0 to 1, hue included (multiply hue by 360 for degrees). Read-only and deterministic, with no side effects. Use for format conversion of a single color; to blend several colors into one use mix_colors, and to compare two colors use color_difference.","inputSchema":{"type":"object","required":["color"],"properties":{"to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"color":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":201,"tokensAfter":201},{"name":"get_palette","fixed":{"name":"get_palette","description":"Retrieve one saved palette by name, returning its colors and metadata. Returns null if no palette by that name exists. Read-only; no side effects. Use when you already know the palette name; to list available names first use list_palettes, and to create or update a palette use save_palette.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":126,"tokensAfter":126},{"name":"list_palettes","fixed":{"name":"list_palettes","description":"List every saved palette as name + colors. Read-only; no side effects. Use to discover what palettes exist or to find a name before calling get_palette; to fetch one palette's full detail use get_palette, and to create or overwrite one use save_palette.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":104,"tokensAfter":104}],"toolsChanged":4,"tokensSaved":0,"todo":[{"tool":"color_difference","params":["color1","color2","method"]},{"tool":"contrast_check","params":["background","foreground"]},{"tool":"convert_color","params":["to","color"]},{"tool":"generate_harmony","params":["base","scheme"]},{"tool":"get_palette","params":["name"]},{"tool":"mix_colors","params":["mode","colors","weights"]},{"tool":"place_lightness","params":["color","lightness"]},{"tool":"transform_text","params":["text","operation"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}