Candor UI docs and component suggestions. Read-only, no key, never serves paid source.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
One item's brief to hand to the coding agent that builds the screen: the same Markdown the docs page's "Copy for a coding agent" button copies (what the item is, its tier and install command, an example with the import paths an app uses, every prop, the string keys, and the rules to keep).
The registry name, e.g. "thread" or "approval-request".
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http candor https://candor.themethodic.com/mcp
One item's brief to hand to the coding agent that builds the screen: the same Markdown the docs page's "Copy for a coding agent" button copies (what the item is, its tier and install command, an example with the import paths an app uses, every prop, the string keys, and the rules to keep).
| Argument | Type | Description |
|---|---|---|
| name* | string | The registry name, e.g. "thread" or "approval-request". |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The registry name, e.g. \"thread\" or \"approval-request\"."
}
}
}Read one item's docs as Markdown: what it is, its tier and install command, an example with the import paths an app uses, every prop, function, type, and the LocaleProvider string keys.
| Argument | Type | Description |
|---|---|---|
| name* | string | The registry name, e.g. "thread", "approval-request" or "cost-guard-claude". |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The registry name, e.g. \"thread\", \"approval-request\" or \"cost-guard-claude\"."
}
}
}The design system as Markdown: every colour role and what it's for, the type scale, radius, shadows, motion, density and themes, read from the shipped CSS; how an app re-tokens for its brand; and how to build the screens around Candor components (surfaces, rhythm, writing, do and don't).
No arguments.
{
"type": "object",
"properties": {}
}Read a pattern as Markdown: a common problem in agent UIs (approvals, traces, cost guards, …) and the components that solve it.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The pattern's slug, as search_docs or suggest_components gives it. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The pattern's slug, as search_docs or suggest_components gives it."
}
}
}The checklist to run after each screen where an AI agent acts, before moving on: one line per check, each tied to a rule (model output is text, unknown stays unknown, a locked control says why, nothing pre-selected, approve the exact change, reasoning is believed, the app names the agent, say what can be undone, plus status, progress and accessibility). From the candor-agent-ui skill; works with or without Candor.
No arguments.
{
"type": "object",
"properties": {}
}How to install Candor UI in a React or Next.js app, render a chat, connect an agent SDK, add licensed items and keep them updated.
No arguments.
{
"type": "object",
"properties": {}
}List every item by group (Chat, Agent work, App shell, …), or one group's items with descriptions.
| Argument | Type | Description |
|---|---|---|
| tier | string | Only items this tier unlocks. |
| group | string | A group's title, e.g. "Chat" or "Full-stack blocks". Leave it out for the overview. |
{
"type": "object",
"properties": {
"tier": {
"enum": [
"free",
"pro",
"premium"
],
"type": "string",
"description": "Only items this tier unlocks."
},
"group": {
"type": "string",
"description": "A group's title, e.g. \"Chat\" or \"Full-stack blocks\". Leave it out for the overview."
}
}
}Search Candor UI's components, hooks, blocks and patterns by what they do ("approve a tool call", "cost estimate", "session list"). Returns names, tiers and one-line descriptions; read one with get_component_docs.
| Argument | Type | Description |
|---|---|---|
| tier | string | Only items this tier unlocks: free, pro (free and Pro) or premium (everything). |
| limit | integer | At most this many items (default 10). |
| query* | string | What you're looking for, in words. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"tier": {
"enum": [
"free",
"pro",
"premium"
],
"type": "string",
"description": "Only items this tier unlocks: free, pro (free and Pro) or premium (everything)."
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "At most this many items (default 10)."
},
"query": {
"type": "string",
"description": "What you're looking for, in words."
}
}
}Describe the screen or feature you're building; get the Candor UI items that fit, why, the matching patterns, and one install command. Read each suggestion's docs before using it.
| Argument | Type | Description |
|---|---|---|
| task* | string | What you're building, e.g. "a chat where the agent asks before deploying". |
| tier | string | Only suggest what this tier unlocks. Leave it out to see everything, with tiers marked. |
{
"type": "object",
"required": [
"task"
],
"properties": {
"task": {
"type": "string",
"description": "What you're building, e.g. \"a chat where the agent asks before deploying\"."
},
"tier": {
"enum": [
"free",
"pro",
"premium"
],
"type": "string",
"description": "Only suggest what this tier unlocks. Leave it out to see everything, with tiers marked."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.