1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://cdn.vuetifyjs.com/docs/images/logos/vmcp-logo2-dark.png">
<img alt="Vuetify MCP Logo" src="https://cdn.vuetifyjs.com/docs/images/logos/vmcp-logo-light.png" height="150">
</picture>
</div>
[](https://www.npmjs.com/package/@vuetify/mcp)
[](https://npm.chart.dev/@vuetify/mcp)
[](https://opensource.org/licenses/MIT)
Model Context Protocol (MCP) server providing Vuetify component information and documentation to any MCP-compatible client or IDE.
## Overview
The Vuetify Model Context Protocol (MCP) server bridges the gap between Vuetify's powerful component library and AI-assisted development environments. This integration enables seamless access to Vuetify's extensive component ecosystem directly within your development workflow.
This MCP server enables IDEs and other Model Context clients to assist with:
- Generating Vuetify components with proper props and attributes
- Creating common UI layouts and patterns following best practices
- Providing comprehensive information about Vuetify features and APIs
- Accessing installation guides, FAQs, and release notes without leaving your IDE
- Working with @vuetify/v0 composables and headless components for building custom design systems
By connecting your development environment to the Vuetify MCP server, you gain AI-powered assistance that understands Vuetify's component structure, styling conventions, and implementation details.
## Quick Start
### Hosted HTTP Server (Easiest)
Use the hosted MCP server directly:
```bash
# Claude Desktop
claude mcp add --transport http vuetify-mcp https://mcp.vuetifyjs.com/mcp
```
### Local Installation
Run Vuetify MCP locally:
```bash
# Start the Vuetify MCP server
npx -y @vuetify/mcp
```
This command downloads and runs the latest version of the Vuetify MCP server, making it immediately available to your MCP-compatible clients.
## Configuration
You can configure the Vuetify MCP server in your IDE or client by running the interactive CLI or by manually updating your settings file.
### Using the Interactive CLI
The interactive CLI provides the simplest way to configure your environment:
```bash
# Configure for hosted remote server
npx -y @vuetify/mcp config --remote
# Or configure for local installation
npx -y @vuetify/mcp config
```
The CLI will:
1. Detect supported IDEs on your system (VS Code, Claude, Cursor, Trae, Windsurf)
2. Prompt you if multiple IDEs are found
3. Apply the necessary settings automatically to your selected environment
4. Use the hosted server (with `--remote`) or local installation
### Manual Configuration
Below are the locations and JSON snippets for each supported environment. Copy the JSON into your client or IDE settings file at the specified path.
| IDE | Settings File Path | JSON Key Path |
|----------|------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------|
| VSCode | `<user home>/.config/Code/User/settings.json` | `mcp.servers.vuetify-mcp` |
| Claude | `<user home>/Library/Application Support/Claude/claude_desktop_config.json` (macOS)<br>`%APPDATA%\Claude\claude_desktop_config.json` (Windows) | `mcpServers.vuetify-mcp` |
| Cursor | `<user home>/.config/Cursor/User/mcp.json` | `mcpServers.vuetify-mcp` |
| Trae | `<user home>/.config/Trae/User/mcp.json` | `mcpServers.vuetify-mcp` |
| Windsurf | `<user home>/.config/Windsurf/User/mcp.json` | `mcpServers.vuetify-mcp` |
**Local stdio (most IDEs):**
```json
{
"mcpServers": {
"vuetify-mcp": {
"command": "npx",
"args": ["-y", "@vuetify/mcp"]
}
}
}
```
**Hosted remote server (most IDEs):**
```json
{
"mcpServers": {
"vuetify-mcp": {
"url": "https://mcp.vuetifyjs.com/mcp"
}
}
}
```
### Authentication
Some tools (like creating bins) require a Vuetify API key. How you pass the key depends on your transport type.
**Local stdio servers** use environment variables:
```json
{
"mcpServers": {
"vuetify-mcp": {
"command": "npx",
"args": ["-y", "@vuetify/mcp"],
"env": {
"VUETIFY_API_KEY": "<YOUR_API_KEY>"
}
}
}
}
```
**HTTP/remote servers** require headers (env vars don't work for HTTP transport):
```json
{
"mcpServers": {
"vuetify-mcp": {
"type": "http",
"url": "https://mcp.vuetifyjs.com/mcp",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}
```
The server accepts either `Authorization: Bearer <token>` or `X-Vuetify-Api-Key: <token>` headers.
**VSCode local:**
```json
{
"servers": {
"vuetify-mcp": {
"command": "npx",
"args": ["-y", "@vuetify/mcp"],
"env": {
"VUETIFY_API_KEY": "<YOUR_API_KEY>",
"GITHUB_TOKEN": "<YOUR_GITHUB_TOKEN>"
}
}
}
}
```
**VSCode remote:**
```json
{
"servers": {
"vuetify-mcp": {
"url": "https://mcp.vuetifyjs.com/mcp"
}
}
}
```
**WSL (Windows Subsystem for Linux)**
If you prefer to run the MCP server from Windows using WSL:
```json
{
"mcpServers": {
"vuetify-mcp": {
"command": "wsl.exe",
"args": [
"bash",
"-c",
"/home/<user>/.nvm/versions/node/<version>/bin/node /home/<user>/sites/mcp/dist/index.js"
]
}
}
}
```
Replace `<user>` and `<version>` with your actual WSL username and Node.js version.
### Self-Hosted HTTP Server
Run your own HTTP server for remote access:
```bash
# Start with HTTP transport
npx -y @vuetify/mcp --transport=http --port=3000 --host=0.0.0.0 --stateless
```
**Configuration:**
```json
{
"mcpServers": {
"vuetify-mcp": {
"url": "http://your-server:3000/mcp"
}
}
}
```
**CLI Arguments:**
- `--transport=http` - Enable HTTP transport
- `--port=3000` - Port number (default: 3000)
- `--host=0.0.0.0` - Host address (default: localhost)
- `--path=/mcp` - Endpoint path (default: /mcp)
- `--stateless` - Stateless mode (recommended for public servers)
## Features
The Vuetify MCP server provides a comprehensive set of tools to enhance your development experience. These tools are automatically available to any MCP-compatible client once the server is configured.
### API Tools
- `get_vuetify_api_by_version`: Download and cache Vuetify API types by version. Supports all major Vuetify versions (2.x and 3.x).
- `get_component_api_by_version`: Return the API list for a specific Vuetify component, including props, events, slots, and exposed methods.
- `get_directive_api_by_version`: Return the API information for a specific Vuetify directive (e.g., `v-ripple`, `v-scroll`). Includes directive description, arguments, default values, and source reference.
### Documentation Tools
- `get_installation_guide`: Get detailed installation guides for various environments, including Vue CLI, Nuxt, Vite, and manual installation methods.
- `get_available_features`: Get a list of available Vuetify features, including components, directives, and composables.
- `get_exposed_exports`: Get a list of exports from the Vuetify npm package, useful for understanding what can be imported directly.
- `get_frequently_asked_questions`: Get the FAQ section from the Vuetify docs, providing answers to common questions and issues.
- `get_release_notes_by_version`: Get release notes for one or more Vuetify versions, helping you understand changes between versions.
- `get_vuetify_one_installation_guide`: Get the README contents for @vuetify/one package from GitHub.
### Vuetify0 (@vuetify/v0) Tools
Support for @vuetify/v0, a headless meta-framework providing unstyled components and composables for building design systems:
- `get_vuetify0_installation_guide`: Get installation and usage instructions for @vuetify/v0 from GitHub.
- `get_vuetify0_package_guide`: Get package-specific documentation for @vuetify/v0.
- `get_vuetify0_composable_list`: List all 28+ composables organized by category (foundation, registration, selection, forms, system, plugins, transformers).
- `get_vuetify0_component_list`: List all 8 headless components (Atom, Avatar, ExpansionPanel, Group, Popover, Selection, Single, Step).
- `get_vuetify0_composable_guide`: Get detailed documentation and source code for specific composables.
- `get_vuetify0_component_guide`: Get detailed documentation and source code for specific components.
## Project Structure
The Vuetify MCP server follows a modular architecture that separates concerns and makes the codebase easier to navigate and extend:
```text
vuetify-mcp/
โโโ bin/
โ โโโ cli.js # CLI entry point with argument handling
โโโ src/
โ โโโ index.ts # Main server entry point
โ โโโ services/ # Core business logic
โ โ โโโ api.ts # API-related services
โ โ โโโ documentation.ts # Documentation services
โ โ โโโ vuetify0.ts # @vuetify/v0 services
โ โโโ tools/ # MCP tool definitions
โ โ โโโ api.ts # API tools
โ โ โโโ documentation.ts # Documentation tools (includes @vuetify/v0)
โ โโโ transports/ # Transport implementations
โ โ โโโ http.ts # HTTP transport with stateless/stateful modes
โ โโโ cli/ # Interactive CLI configuration
โโโ package.json
โโโ tsconfig.json
โโโ README.md
```
This structure makes it easy to locate specific functionality and extend the server with new features.
## Development
If you want to contribute to the Vuetify MCP server or customize it for your own needs, follow these steps to set up your development environment:
```bash
# Install dependencies
pnpm install
# Run development server
pnpm dev
```
The development server will start with hot-reloading enabled, allowing you to see your changes immediately.
### Adding New Features
To add new features or extend existing ones:
1. Add or update service methods in the appropriate service file (e.g., `src/services/component.ts`)
2. Register the tool in the corresponding tools file (e.g., `src/tools/component.ts`)
3. Build and test your changes
## MCP SDK Integration
This project uses the `@modelcontextprotocol/sdk` package to create a Model Context Protocol server that Claude and other AI assistants can interact with. The MCP architecture enables AI assistants to:
- Call specific tools defined in the server
- Receive structured responses in a standardized format
- Provide a better experience for Vuetify-related inquiries
The implementation follows the standard MCP patterns with:
- Server initialization using `McpServer` class
- Parameter validation with Zod schemas for type safety
- Multiple transport options: stdio (default) and HTTP with session management
### Example Tool Implementation
Here's a simplified example of how a tool is implemented in the Vuetify MCP server:
```typescript
// In src/tools/component.ts
import { z } from 'zod';
import { componentService } from '../services/component';
export const getComponentApiByVersion = {
name: 'get_component_api_by_version',
description: 'Return the API list for a Vuetify component',
parameters: z.object({
component: z.string().describe('The component name (e.g., "VBtn")'),
version: z.string().optional().describe('Vuetify version (defaults to latest)')
}),
handler: async ({ component, version }) => {
return componentService.getComponentApi(component, version);
}
};
```
## Troubleshooting
### Common Issues
- **Server Not Starting**: Ensure you have Node.js 16 or higher installed
- **Configuration Not Working**: Verify the paths and JSON structure in your settings file
- **Missing API Information**: Check that you're using a supported Vuetify version
### Getting Help
If you encounter issues not covered here, please:
1. Check the [GitHub issues](https://github.com/vuetifyjs/mcp/issues) for similar problems
2. Join the [Vuetify Discord](https://discord.com/invite/vuetify) for community support
3. Open a new issue with detailed reproduction steps
## Version Compatibility
The Vuetify MCP server is compatible with:
- Vuetify 3.x
- Node.js 22 and higher
- All major MCP-compatible clients (Claude, VSCode, etc.)
## License
Vuetify MCP is available under the [MIT](http://opensource.org/licenses/MIT) software license.
Copyright (c) 2025-present Vuetify, LLC