@dialpad/dialtone-mcp-server 1.1.0 → 1.2.0

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.
Files changed (3) hide show
  1. package/README.md +172 -86
  2. package/build/index.js +2993 -1
  3. package/package.json +1 -1
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, and Vue components.
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
- ## Quick Start
5
+ Automatically filters deprecated items, swaps discouraged patterns with recommended alternatives, and provides AI-optimized search results.
6
6
 
7
- ### 1. Build
7
+ ## Installation
8
8
 
9
- From the monorepo root:
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
- pnpm install
13
- pnpm nx run dialtone-mcp-server:build
16
+ npm install -D @dialpad/dialtone-mcp-server
14
17
  ```
15
18
 
16
- ### 2. Test Interactively
19
+ Create or update `.mcp.json` in your project root:
17
20
 
18
- Try out search queries (must be run from the package directory):
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
- # Navigate to the package directory first!
22
- cd packages/dialtone-mcp-server
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
- # Then run the interactive tool
25
- pnpm run interactive
47
+ # Add to Claude Code
48
+ claude mcp add dialtone --scope user dialtone-mcp-server
26
49
  ```
27
50
 
28
- Or use tsx directly from anywhere:
51
+ **Option B: Install globally**
52
+
29
53
  ```bash
30
- npx tsx packages/dialtone-mcp-server/interactive-search.ts
54
+ npm install -g @dialpad/dialtone-mcp-server
55
+ claude mcp add dialtone --scope user dialtone-mcp-server
31
56
  ```
32
57
 
33
- **Query Format:** Use keywords only, not questions.
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
- Example session:
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
- Enter 1, 2, or 3: 1
64
+ This stores configuration in `~/.claude/mcp.json`.
45
65
 
46
- > padding 8px
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
- Type `help` for more examples, `switch` to change tools, `quit` to exit.
68
+ ## Updating
56
69
 
57
- ### 3. Configure with Claude Desktop
70
+ **Project-scoped:**
58
71
 
59
- Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (MacOS) or `%APPDATA%/Claude/claude_desktop_config.json` (Windows):
72
+ ```bash
73
+ npm install -D @dialpad/dialtone-mcp-server@latest
74
+ ```
60
75
 
61
- ```json
62
- {
63
- "mcpServers": {
64
- "dialtone": {
65
- "command": "node",
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
- **Important:**
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
- cd /path/to/dialtone
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
- ### Project Structure
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
- packages/dialtone-mcp-server/
121
- ├── src/
122
- │ ├── index.ts # MCP server setup
123
- │ ├── types.ts # TypeScript interfaces
124
- │ ├── data.ts # Data imports
125
- │ ├── utils/filters.ts # Smart filtering
126
- │ └── tools/ # Search implementations
127
- │ ├── utility-classes.ts
128
- │ ├── tokens.ts
129
- │ └── components.ts
130
- ├── build/ # Compiled output
131
- ├── test-search.js # Automated tests
132
- ├── interactive-search.js # Interactive CLI tool
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
- ### Rebuild After Changes
210
+ ### Configure with Claude Desktop (for testing)
152
211
 
153
- ```bash
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
- ## Troubleshooting
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
- **MCP server not connecting:**
160
- 1. Verify `build/index.js` exists
161
- 2. Check the path in config is absolute (not relative)
162
- 3. Restart Claude Desktop completely
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
- **Test the server manually:**
232
+ **Finding your absolute path:**
166
233
  ```bash
167
- node build/index.js
168
- # Should print: "Dialtone MCP Server running on stdio"
169
- # Press Ctrl+C to exit
234
+ cd /path/to/dialtone
235
+ pwd
236
+ # Use the output + /packages/dialtone-mcp-server/build/index.js
170
237
  ```
171
238
 
172
- ## Resources
239
+ ### Project Structure
173
240
 
174
- - [MCP Documentation](https://modelcontextprotocol.io)
175
- - [Dialtone Docs](https://dialtone.dialpad.com)
176
- - [Search Implementation Details](./SEARCH_REFERENCE.md)
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)