protogrid

Search / dev.workers.mike-tusa.contrastkit/contrastkit

ContrastKit

R0· no sign-in

WCAG color contrast checks, nearest accessible color, CSS color conversion and palette pair checks.

v0.1.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality100strong
Trust82of 100
Uptime, 30 days95%
Latency p50151 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "contrastkit": {
      "type": "http",
      "url": "https://contrastkit.mike-tusa.workers.dev/mcp"
    }
  }
}
claude mcp add --transport http contrastkit https://contrastkit.mike-tusa.workers.dev/mcp
[mcp_servers.contrastkit]
url = "https://contrastkit.mike-tusa.workers.dev/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "contrastkit": {
      "type": "remote",
      "url": "https://contrastkit.mike-tusa.workers.dev/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "contrastkit": {
      "type": "http",
      "url": "https://contrastkit.mike-tusa.workers.dev/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=contrastkit&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vY29udHJhc3RraXQubWlrZS10dXNhLndvcmtlcnMuZGV2L21jcCJ9"
}
{
  "servers": {
    "contrastkit": {
      "type": "http",
      "url": "https://contrastkit.mike-tusa.workers.dev/mcp"
    }
  }
}
{
  "mcpServers": {
    "contrastkit": {
      "httpUrl": "https://contrastkit.mike-tusa.workers.dev/mcp"
    }
  }
}
extensions:
  "contrastkit":
    enabled: true
    name: "contrastkit"
    type: streamable_http
    uri: "https://contrastkit.mike-tusa.workers.dev/mcp"
    timeout: 300

Quality 100 / 100strong

protocol100 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • pass
    protocol.list_ttltool list is cacheable (ttlMs 3600000)
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations4 of 4 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 947 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
  • pass
    tools.hidden_textno hidden text in tool names, descriptions, schemas or annotations
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
  • pass
    stability.new_linksno tool change named a new site
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

4 tools, about 947 tokens to load them all · tool set 3ffb15a0b6fd · checked 2026-11-14 07:36 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 82 / 100

no-repository
provenance55
liveness98
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-95% +updated-23d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://contrastkit.mike-tusa.workers.dev/mcp streamable-httpnoneyes95%151 ms2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-052026-11-14

Tools (4)

check_contrastread-onlyCompute the WCAG 2.x contrast ratio between a text (foreground) color and a background color, with pass/fail for AA, AA large text, AAA, AAA large text and non-text UI (3:1). Handles translucent colors. Read-only. Same engine as GET /api/contrast.
check_paletteread-onlyContrast ratio for every pair of 2 to 12 colors (up to 66 pairs), highest first, each flagged against the chosen WCAG level. Use it to see which brand colors can be used together for text. Read-only. Same engine as GET /api/palette.
convert_colorread-onlyConvert a CSS color to hex, rgb() and hsl(), with its relative luminance, its contrast on white and on black, and the better text color (black or white) to put on it. Read-only. Same engine as GET /api/convert.
suggest_accessible_colorread-onlyFor a failing color pair, find the closest color (same hue and saturation, lightness changed as little as possible) that meets the chosen WCAG level. Adjust the foreground (default), the background, or both (best first). Read-only. Same engine as GET /api/suggest.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "dev.workers.mike-tusa.contrastkit/contrastkit",
  "icons": [
    {
      "src": "https://contrastkit.mike-tusa.workers.dev/favicon.svg",
      "sizes": [
        "any"
      ],
      "mimeType": "image/svg+xml"
    }
  ],
  "title": "ContrastKit",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://contrastkit.mike-tusa.workers.dev/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.1.0",
  "websiteUrl": "https://contrastkit.mike-tusa.workers.dev/",
  "description": "WCAG color contrast checks, nearest accessible color, CSS color conversion and palette pair checks."
}