RamosLabs DS
For Agents / MCP Server

The design system as typed tools.

A Model Context Protocol server exposes this system as seven verifiable tools, so any MCP-capable agent reads tokens, checks contrast, and lints CSS as first-class calls — no scraping HTML, no fetching files, no invented values. Stateless, read-only, no auth.

Claude Codeclaude mcp add --transport http ramoslabs-ds https://design.ramoslabs.com/mcp
What it is

One endpoint, seven tools

The Model Context Protocol is an open standard for connecting an AI agent to external tools. This server runs on the same Worker that serves the docs, overStreamable HTTP at POST /mcp. It is stateless, read-only, and needs no auth — connect it and the agent gets the tools below.

Quick start

Connect your client

Claude Code
shell
claude mcp add --transport http \
  ramoslabs-ds https://design.ramoslabs.com/mcp
Cursor · Windsurf · VS Code
json
{
  "mcpServers": {
    "ramoslabs-ds": {
      "url": "https://design.ramoslabs.com/mcp",
      "transport": "http"
    }
  }
}

Then the agent has search_tokens, check_contrast,lint_css, and the rest as first-class tools.

The tools

Seven, all read-only

ToolArgumentsPurpose
search_tokensquery, limit?Find tokens by name or value substring.
get_tokennameExact token value plus the var(--…) to use. Errors if it does not exist, so an agent never invents one.
check_contrastforeground, backgroundWCAG ratio plus AA/AAA verdicts for normal text, large text, and UI.
list_docsEvery documentation page title (foundations and patterns).
get_doctitleThe full distilled doctrine for one page. Read it before implementing a pattern.
lint_csscodeFlag a raw hex, rgb, px, or rem that should be a token, and suggest the matching token.
get_agents_guideThe full AGENTS.md agent guide.
The difference

These tools verify. They don't just install.

Most component MCP servers exist to discover and install code. This one exists so an agent gets the system right: contrast checked, CSS linted against the token contract, and token values returned exact and never invented. The agent builds against a contract it cannot get wrong, instead of interpreting rendered output.

get_token('color-primary') returns the value and thevar(--color-primary) to use — and errors on an unknown name, so an invented token fails loudly instead of shipping.

Quick check

Confirm it live

List the tools, then check the accent on white — indigo 600 returns roughly 6.3:1, which passes AA.

shell
# list the seven tools
curl -s -X POST https://design.ramoslabs.com/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

# check_contrast: indigo 600 on white → ~6.3, AA
curl -s -X POST https://design.ramoslabs.com/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
      "params":{"name":"check_contrast",
      "arguments":{"foreground":"#4f46e5","background":"#ffffff"}}}'

Prefer the branded design.ramoslabs.com/mcp. If a cloud-hosted client is ever blocked, the same server answers atramoslabs-ds.edwardramosp.workers.dev/mcp, which is never bot-gated.