Search Dialtone's design system with AI assistants using the Model Context Protocol
The Dialtone MCP Server lets compatible AI clients search Dialtone through Model Context Protocol (MCP) tools. Use the Dialtone CLI for direct terminal queries, shell scripts, or lookups that should match the Dialtone version installed in your project.
The Dialtone MCP Server provides AI assistants with real-time search access to:
d-p8, d-d-flex, d-w100p--dt-color-foreground-primary, --dt-spacing-100DtButton, DtModal with full API documentationbell-ring, arrow-up, calendar-plussearch_documentation: Search usage prose, recipes, accessibility rules, migration guides, and design principles. Use for "how-to" and "why" questions that go beyond component/token/icon lookups.There are three ways to install the Dialtone MCP Server. Project-scoped installation takes priority over user-scoped when both exist.
Best for team collaboration - everyone uses the same version via version control.
npm install -D @dialpad/dialtone-mcp-server
Create or update .mcp.json in your project root:
{
"mcpServers": {
"dialtone": {
"command": "dialtone-mcp-server"
}
}
}
Commit .mcp.json to version control. Restart Claude Code to connect.
Available across all your projects. Choose one method:
# Install in a dedicated directory
mkdir -p ~/.mcp-servers
cd ~/.mcp-servers
npm install @dialpad/dialtone-mcp-server
# Add to Claude Code
claude mcp add dialtone --scope user dialtone-mcp-server
npm install -g @dialpad/dialtone-mcp-server
claude mcp add dialtone --scope user dialtone-mcp-server
claude mcp add dialtone --scope user -- npx -y @dialpad/dialtone-mcp-server
This stores configuration in ~/.claude/mcp.json.
Remote server deployment for enterprise use.
claude mcp add dialtone-http --transport http --scope user https://mcp.dialtone.dialpad.com
Tool: search_utility_classes
Find CSS utility classes to style HTML elements. Use when your query mentions CSS properties (padding, margin, display, flex) or values (8px, 100%, center, auto).
Example queries:
"padding 8px" → d-p-100, d-pbs-100, d-pbe-100, d-pis-100, d-pie-100 d-px-100, d-py-100
"display flex" → d-d-flex, d-d-inline-flex
"width 100%" → d-w100p
"margin top auto" → d-mbs-auto
"text align center" → d-ta-center
Parameters:
query (required): CSS property and/or valuelimit (optional): Maximum results (1-50, default 15)Tool: search_tokens
Find design tokens (CSS variables) from Dialtone's design system. Use when your query mentions token categories (color, space, font, size) or semantic names (primary, positive, foreground, background).
Example queries:
"color foreground primary" → --dt-color-foreground-primary
"spacing 100" → --dt-spacing-100, --dt-spacing-100-negative
"font family" → --dt-font-family-body, --dt-font-family-expressive
"font weight bold" → --dt-font-weight-bold
Parameters:
query (required): Token category, name, or valuelimit (optional): Maximum results (1-50, default 15)Tool: search_components
Find Vue components from Dialtone's component library with props, events, and slots. Use when your query mentions UI elements (button, modal, input, dropdown) or component names.
Example queries:
"button" → DtButton, DtButtonGroup, DtBanner (29 results)
"modal" → DtModal, DtBanner, DtDropdown (6 results)
"checkbox" → DtCheckbox, DtCheckboxGroup, DtRadio
Returns:
Parameters:
query (required): Component name or UI elementlimit (optional): Maximum results (1-30, default 10)Tool: search_icons
Find icons from Dialtone's icon library and learn how to use icon components. Icons are imported from @dialpad/dialtone-icons/vue, not @dialpad/dialtone-vue.
Example queries:
"notification" → bell, bell-ring, bell-off, bell-plus
"arrow up" → arrow-up, arrow-up-down, arrow-up-left
"profile" → user
"calendar" → calendar, calendar-plus, calendar-event
Returns:
Parameters:
query (required): Icon name, category, or keywordlimit (optional): Maximum results (1-50, default 20)When working on a component and need specific styling:
User: "What class adds padding 8px to all sides?"
Claude: [Uses search_utility_classes tool]
Result: d-p-100 (padding: var(--dt-spacing-100) which equals 8px)
When building UI and unsure what components exist:
User: "What button components are available in Dialtone?"
Claude: [Uses search_components tool]
Result: DtButton, DtButtonGroup, DtIconButton with complete
prop documentation, events, and usage examples
When implementing designs and need exact token values:
User: "What's the primary foreground color token?"
Claude: [Uses search_tokens tool]
Result: --dt-color-foreground-primary
Value: #1C1C1C (in light theme)
Available in: dp-light, dp-dark themes
When adding icons to your interface:
User: "Show me all notification-related icons"
Claude: [Uses search_icons tool]
Result: bell, bell-ring, bell-off, bell-plus, bell-minus
Import: import { IconBell } from '@dialpad/dialtone-icons/vue'
The MCP server and Dialtone CLI use the same Dialtone search engine. Choose the interface that fits the task:
You can install both. The MCP server handles tool calls from an AI client, while the CLI handles commands that you run directly.
The server checks for updates automatically on startup. If a new version is available, you'll see:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ Dialtone MCP Server Update Available
Current: v1.2.0
Latest: v1.2.1
To update:
1. npm install -D @dialpad/dialtone-mcp-server@latest
2. Restart this conversation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
To update:
Project-scoped:
npm install -D @dialpad/dialtone-mcp-server@latest
User-scoped (local directory):
cd ~/.mcp-servers
npm update @dialpad/dialtone-mcp-server
User-scoped (global):
npm update -g @dialpad/dialtone-mcp-server
User-scoped (npx): No action needed - npx always uses the latest version.
After updating, restart your Claude Code conversation to load the new version.
List configured servers:
claude mcp list
View specific server:
claude mcp get dialtone
Remove server:
claude mcp remove dialtone
The Dialtone MCP Server works with any MCP-compatible AI assistant:
Claude Desktop:
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows):
{
"mcpServers": {
"dialtone": {
"command": "npx",
"args": ["-y", "@dialpad/dialtone-mcp-server"]
}
}
}
Restart Claude Desktop and look for the 🔌 icon to confirm connection.
For project-scoped installation:
Verify .mcp.json exists in your project root with correct format
Check package is installed:
npm list @dialpad/dialtone-mcp-server
Verify bin command exists:
ls node_modules/.bin/dialtone-mcp-server
Restart Claude Code completely
For user-scoped installation:
List configured servers:
claude mcp list
Check if dialtone is listed and enabled
Test the server:
claude mcp get dialtone
Check configuration:
cat ~/.claude/mcp.json
The server loads once at conversation start. You must restart your conversation after updating to see the new version.
claude mcp listIf you're developing or testing locally:
pnpm installpnpm nx run dialtone-mcp-server:buildNow that you have the MCP server installed, explore these resources:
Dialtone MCP Server documentation last updated Friday, September 4, 2026
fix/popover-modal-zindex-scope