@dialpad/dialtone-mcp-server 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +172 -86
- package/build/index.js +3450 -52
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,88 +1,97 @@
|
|
|
1
1
|
# Dialtone MCP Server
|
|
2
2
|
|
|
3
|
-
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that provides AI assistants with search access to Dialtone's design system: utility classes, design tokens,
|
|
3
|
+
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that provides AI assistants with search access to Dialtone's design system: utility classes, design tokens, Vue components, and icons.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Automatically filters deprecated items, swaps discouraged patterns with recommended alternatives, and provides AI-optimized search results.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Installation
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
There are three ways to install the Dialtone MCP Server. **Project-scoped installation takes priority** over user-scoped when both exist.
|
|
10
|
+
|
|
11
|
+
### Project-Scoped (Recommended for Teams)
|
|
12
|
+
|
|
13
|
+
Best for team collaboration - everyone uses the same version via version control.
|
|
10
14
|
|
|
11
15
|
```bash
|
|
12
|
-
|
|
13
|
-
pnpm nx run dialtone-mcp-server:build
|
|
16
|
+
npm install -D @dialpad/dialtone-mcp-server
|
|
14
17
|
```
|
|
15
18
|
|
|
16
|
-
|
|
19
|
+
Create or update `.mcp.json` in your project root:
|
|
17
20
|
|
|
18
|
-
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"mcpServers": {
|
|
24
|
+
"dialtone": {
|
|
25
|
+
"command": "dialtone-mcp-server"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Commit `.mcp.json` to version control. Restart Claude Code to connect.
|
|
32
|
+
|
|
33
|
+
**Priority:** Project-scoped beats user-scoped. The `dialtone-mcp-server` command resolves from `node_modules/.bin/` first.
|
|
34
|
+
|
|
35
|
+
### User-Scoped (Personal, All Projects)
|
|
36
|
+
|
|
37
|
+
Available across all your projects. Choose one method:
|
|
38
|
+
|
|
39
|
+
**Option A: Install locally in your user directory**
|
|
19
40
|
|
|
20
41
|
```bash
|
|
21
|
-
#
|
|
22
|
-
|
|
42
|
+
# Install in a dedicated directory
|
|
43
|
+
mkdir -p ~/.mcp-servers
|
|
44
|
+
cd ~/.mcp-servers
|
|
45
|
+
npm install @dialpad/dialtone-mcp-server
|
|
23
46
|
|
|
24
|
-
#
|
|
25
|
-
|
|
47
|
+
# Add to Claude Code
|
|
48
|
+
claude mcp add dialtone --scope user dialtone-mcp-server
|
|
26
49
|
```
|
|
27
50
|
|
|
28
|
-
|
|
51
|
+
**Option B: Install globally**
|
|
52
|
+
|
|
29
53
|
```bash
|
|
30
|
-
|
|
54
|
+
npm install -g @dialpad/dialtone-mcp-server
|
|
55
|
+
claude mcp add dialtone --scope user dialtone-mcp-server
|
|
31
56
|
```
|
|
32
57
|
|
|
33
|
-
**
|
|
34
|
-
- ✓ Good: `padding 8px`, `color primary`, `button`
|
|
35
|
-
- ✗ Bad: `how do I add padding?`, `what button component exists?`
|
|
58
|
+
**Option C: Use npx (no installation)**
|
|
36
59
|
|
|
37
|
-
|
|
60
|
+
```bash
|
|
61
|
+
claude mcp add dialtone --scope user -- npx -y @dialpad/dialtone-mcp-server
|
|
38
62
|
```
|
|
39
|
-
Select a search tool:
|
|
40
|
-
1. Utility Classes
|
|
41
|
-
2. Design Tokens
|
|
42
|
-
3. Components
|
|
43
63
|
|
|
44
|
-
|
|
64
|
+
This stores configuration in `~/.claude/mcp.json`.
|
|
45
65
|
|
|
46
|
-
|
|
47
|
-
Found 8 results:
|
|
48
|
-
1. d-p8
|
|
49
|
-
2. d-pt8
|
|
50
|
-
3. d-pr8
|
|
51
|
-
4. d-pb8
|
|
52
|
-
...
|
|
53
|
-
```
|
|
66
|
+
**Version checking:** When the server starts, you'll see the current version. If outdated, follow the instructions shown.
|
|
54
67
|
|
|
55
|
-
|
|
68
|
+
## Updating
|
|
56
69
|
|
|
57
|
-
|
|
70
|
+
**Project-scoped:**
|
|
58
71
|
|
|
59
|
-
|
|
72
|
+
```bash
|
|
73
|
+
npm install -D @dialpad/dialtone-mcp-server@latest
|
|
74
|
+
```
|
|
60
75
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
"args": [
|
|
67
|
-
"/ABSOLUTE/PATH/TO/dialtone/packages/dialtone-mcp-server/build/index.js"
|
|
68
|
-
]
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
76
|
+
**User-scoped (local directory):**
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
cd ~/.mcp-servers
|
|
80
|
+
npm update @dialpad/dialtone-mcp-server
|
|
72
81
|
```
|
|
73
82
|
|
|
74
|
-
**
|
|
75
|
-
- Use the absolute path to your dialtone repo
|
|
76
|
-
- Restart Claude Desktop completely after updating the config
|
|
77
|
-
- Look for the 🔌 icon to confirm connection
|
|
83
|
+
**User-scoped (global):**
|
|
78
84
|
|
|
79
|
-
**Finding your absolute path:**
|
|
80
85
|
```bash
|
|
81
|
-
|
|
82
|
-
pwd
|
|
83
|
-
# Use the output + /packages/dialtone-mcp-server/build/index.js
|
|
86
|
+
npm update -g @dialpad/dialtone-mcp-server
|
|
84
87
|
```
|
|
85
88
|
|
|
89
|
+
**User-scoped (npx):**
|
|
90
|
+
|
|
91
|
+
No action needed - npx always uses the latest version.
|
|
92
|
+
|
|
93
|
+
After updating, restart your Claude Code conversation to pick up the new version.
|
|
94
|
+
|
|
86
95
|
## What You Can Search
|
|
87
96
|
|
|
88
97
|
### 1. Utility Classes (3,315 classes)
|
|
@@ -112,27 +121,77 @@ Discover Vue components with props, events, and slots.
|
|
|
112
121
|
- `modal` → DtModal, DtBanner, DtDropdown (6 results)
|
|
113
122
|
- `checkbox` → DtCheckbox, DtCheckboxGroup, DtRadio
|
|
114
123
|
|
|
124
|
+
### 4. Icons (594 icons)
|
|
125
|
+
Find icons from Dialtone's icon library.
|
|
126
|
+
|
|
127
|
+
**Example queries:**
|
|
128
|
+
- `notification` → bell, bell-ring, bell-off, bell-plus
|
|
129
|
+
- `arrow up` → arrow-up, arrow-up-down, arrow-up-left
|
|
130
|
+
- `profile` → user
|
|
131
|
+
- `calendar` → calendar, calendar-plus, calendar-event
|
|
132
|
+
|
|
133
|
+
## Troubleshooting
|
|
134
|
+
|
|
135
|
+
**Version check shows old version:**
|
|
136
|
+
- Restart your Claude Code conversation after updating
|
|
137
|
+
- The server loads once at conversation start
|
|
138
|
+
|
|
139
|
+
**MCP server not connecting:**
|
|
140
|
+
|
|
141
|
+
For project-scoped:
|
|
142
|
+
1. Verify `.mcp.json` is in your project root with correct format
|
|
143
|
+
2. Check package is installed: `npm list @dialpad/dialtone-mcp-server`
|
|
144
|
+
3. Verify bin command exists: `ls node_modules/.bin/dialtone-mcp-server`
|
|
145
|
+
4. Restart Claude Code completely
|
|
146
|
+
|
|
147
|
+
For user-scoped:
|
|
148
|
+
1. List configured servers: `claude mcp list`
|
|
149
|
+
2. Check if dialtone is listed and enabled
|
|
150
|
+
3. Test the server: `claude mcp get dialtone`
|
|
151
|
+
4. Check configuration: `cat ~/.claude/mcp.json`
|
|
152
|
+
|
|
153
|
+
General:
|
|
154
|
+
- Check Claude Code logs for connection errors
|
|
155
|
+
- Remember: Project-scoped configuration overrides user-scoped
|
|
156
|
+
|
|
157
|
+
## Resources
|
|
158
|
+
|
|
159
|
+
- [MCP Documentation](https://modelcontextprotocol.io)
|
|
160
|
+
- [Dialtone Docs](https://dialtone.dialpad.com)
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
115
164
|
## Development
|
|
116
165
|
|
|
117
|
-
|
|
166
|
+
For contributors working in the Dialtone monorepo.
|
|
167
|
+
|
|
168
|
+
### Build
|
|
169
|
+
|
|
170
|
+
From the monorepo root:
|
|
118
171
|
|
|
172
|
+
```bash
|
|
173
|
+
pnpm install
|
|
174
|
+
pnpm nx run dialtone-mcp-server:build
|
|
119
175
|
```
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
└── README.md
|
|
176
|
+
|
|
177
|
+
### Test Interactively
|
|
178
|
+
|
|
179
|
+
Try out search queries (must be run from the package directory):
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
cd packages/dialtone-mcp-server
|
|
183
|
+
pnpm run interactive
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Or use tsx directly from anywhere:
|
|
187
|
+
```bash
|
|
188
|
+
npx tsx packages/dialtone-mcp-server/interactive-search.ts
|
|
134
189
|
```
|
|
135
190
|
|
|
191
|
+
**Query Format:** Use keywords only, not questions.
|
|
192
|
+
- ✓ Good: `padding 8px`, `color primary`, `button`
|
|
193
|
+
- ✗ Bad: `how do I add padding?`, `what button component exists?`
|
|
194
|
+
|
|
136
195
|
### Run Tests
|
|
137
196
|
|
|
138
197
|
From the package directory:
|
|
@@ -148,29 +207,56 @@ node packages/dialtone-mcp-server/test-search.js
|
|
|
148
207
|
|
|
149
208
|
Expected: `Overall Success Rate: 100%` (77/77 tests)
|
|
150
209
|
|
|
151
|
-
###
|
|
210
|
+
### Configure with Claude Desktop (for testing)
|
|
152
211
|
|
|
153
|
-
|
|
154
|
-
pnpm nx run dialtone-mcp-server:build
|
|
155
|
-
```
|
|
212
|
+
Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (MacOS) or `%APPDATA%/Claude/claude_desktop_config.json` (Windows):
|
|
156
213
|
|
|
157
|
-
|
|
214
|
+
```json
|
|
215
|
+
{
|
|
216
|
+
"mcpServers": {
|
|
217
|
+
"dialtone": {
|
|
218
|
+
"command": "node",
|
|
219
|
+
"args": [
|
|
220
|
+
"/ABSOLUTE/PATH/TO/dialtone/packages/dialtone-mcp-server/build/index.js"
|
|
221
|
+
]
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
```
|
|
158
226
|
|
|
159
|
-
**
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
4. Check Claude Desktop logs for errors
|
|
227
|
+
**Important:**
|
|
228
|
+
- Use the absolute path to your dialtone repo
|
|
229
|
+
- Restart Claude Desktop completely after updating the config
|
|
230
|
+
- Look for the 🔌 icon to confirm connection
|
|
164
231
|
|
|
165
|
-
**
|
|
232
|
+
**Finding your absolute path:**
|
|
166
233
|
```bash
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
#
|
|
234
|
+
cd /path/to/dialtone
|
|
235
|
+
pwd
|
|
236
|
+
# Use the output + /packages/dialtone-mcp-server/build/index.js
|
|
170
237
|
```
|
|
171
238
|
|
|
172
|
-
|
|
239
|
+
### Project Structure
|
|
173
240
|
|
|
174
|
-
|
|
175
|
-
-
|
|
176
|
-
|
|
241
|
+
```
|
|
242
|
+
packages/dialtone-mcp-server/
|
|
243
|
+
├── src/
|
|
244
|
+
│ ├── index.ts # MCP server setup
|
|
245
|
+
│ ├── types.ts # TypeScript interfaces
|
|
246
|
+
│ ├── data.ts # Data imports
|
|
247
|
+
│ ├── utils/filters.ts # Smart filtering
|
|
248
|
+
│ └── tools/ # Search implementations
|
|
249
|
+
│ ├── utility-classes.ts
|
|
250
|
+
│ ├── tokens.ts
|
|
251
|
+
│ ├── components.ts
|
|
252
|
+
│ └── icons.ts
|
|
253
|
+
├── build/ # Compiled output
|
|
254
|
+
├── test-search.js # Automated tests
|
|
255
|
+
├── interactive-search.ts # Interactive CLI tool
|
|
256
|
+
└── README.md
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### Additional Documentation
|
|
260
|
+
|
|
261
|
+
- [Search Implementation Details](./MCP_CONTEXT.md)
|
|
262
|
+
- [Icon Search Summary](./ICON_SEARCH_SUMMARY.md)
|