Skip to main content
Glama
BrightX

rsbuild-plugin-vue-mcp

by BrightX

Rsbuild plugin VueDevTools MCP

Язык / 同样: English | 中文

Rsbuild/Rspack MCP-плагин на базе Vue DevTools.

Поддерживает Rsbuild 1.x/2.x и Rspack 1.x/2.x.

Через Model Context Protocol (MCP) ИИ-инструменты (например, ассистенты в IDE и агенты) могут в реальном времени, приложений, делая возможным по-настоящему понятно, что правильно может понять ваше приложение.

Этот плагин соединяет ваш dev-сервер и Vue DevTools внутри страницы приложения через **birpc поверх WebSocket **, предоставляя набор MCP-инструментов, позволяющих ИИ инспектировать компоненты, роутер и Pinia-хранилища, а также непосредственно редактировать состояние компонентов.

Возможности

  • 🔌 MCP-сервер без настройки — автоматически монтируется на ваш существующий dev-сервер (без отдельного процесса).

  • 🌳 Инспектирование дерева компонентов запущенного приложения — прямо в дереве.

  • 🧩 Чтение и изменение состояния Vue-компонентов (реактивные данные, props, computed, refs…).

  • 🔦 Подсвечивание компонента на странице для визуального поиска.

  • 🧭 Информация Vue Router (то, текущий маршрут, совпадающие записи, params, query…).

  • 🗄️ Инспекция Pinia — просмотр дерева хранилищ и чтение состояния отдельных хранилищ.

  • 💥 Работает как с dev-серверами Rsbuild, так и с dev-серверами Rspack.

Related MCP server: vue-mcp-next

Использование

Установка

# For npm
npm add rsbuild-plugin-vue-mcp -D

# For yarn
yarn add rsbuild-plugin-vue-mcp -D

# For pnpm
pnpm add rsbuild-plugin-vue-mcp -D

Rsbuild

// rsbuild.config.js
import { defineConfig } from '@rsbuild/core';
import { pluginVue } from '@rsbuild/plugin-vue';
import { pluginVueMcp } from "rsbuild-plugin-vue-mcp";

export default defineConfig({
    plugins: [
        pluginVue(),
        pluginVueMcp(),
    ],
});

Rspack

// rspack.config.js
import { defineConfig } from '@rspack/cli';
import { rspack } from "@rspack/core";
import { VueLoaderPlugin } from 'rspack-vue-loader';
import { VueMcpPlugin } from 'rsbuild-plugin-vue-mcp/rspack';

export default defineConfig({
    plugins: [
        new rspack.HtmlRspackPlugin(),
        new VueLoaderPlugin(),
        new VueMcpPlugin(),
    ],
    module: {
        rules: [
            {
                test: /\.vue$/,
                loader: 'rspack-vue-loader',
                options: {
                    experimentalInlineMatchResource: true,
                },
            },
        ],
    },
});

MCP-сервер (транспорт Streamable HTTP) будет доступен по адресу http://localhost:[port]/__mcp/mcp.

Требования: требуется @rsbuild/core >= 1.2.9 (для Rsbuild) или @rspack/core >= 1.3.0 (для Rspack) требований, чтобы плагин мог подключиться к базовому HTTP-серверу.

Подключение MCP-клиента

Запустите dev-сервер (обычно npm run dev). В консоль будет выведен URL MCP-сервиса, например:

➜  MCP:     Server is running at http://localhost:5173/__mcp/mcp

Добавьте этот URL в конфигурацию MCP вашего клиента (Cursor, Claude Desktop, VS Code и т. д.):

{
  "mcpServers": {
    "vue-mcp": {
      "type": "streamable-http",
      "url": "http://localhost:<YourPort>/__mcp/mcp",
      "disabled": false
    }
  }
}

[!IMPORTANT] Для того чтобы вызывать MCP-инструменты и отлаживать приложение, необходимы две вещи:

  1. Dev-сервер должен быть запущен (тогда MCP-сервер работает).

  2. У вас открыта страница приложения в браузере (например, http://localhost:5173). Внедрённый overlay.js подключается к dev-серверу через WebSocket и инициализирует среду Vue DevTools.

Инструменты обращаются к живому приложению через это WebSocket-соединение — если страница приложения не открыта, вызовы инструментов будут завершаться ошибкой или по таймауту.

После открытия страницы ИИ-помощник сможет вызывать перечисленные ниже инструменты против вашего работающего dev-приложения.

Инструменты MCP

Плагин регистрирует на MCP-сервере следующие инструменты. Каждый инструмент общается с вашим страница приложения через birpc, поэтому данные всегда соответствуют живому приложению. Все инструменты возвращают результаты в виде JSON-текста (а не markdown).

Инструмент

Описание

Входные данные

get-component-tree

Получить дерево компонентов Vue. Результат возвращается в виде JSON-текста.

get-component-state

Получить состояние компонента в формате JSON (data, props, computed, refs…).

componentName: string

edit-component-state

Изменить значение в состоянии компонента (живое, реактивное).

componentName: string, path: string[], value: string, valueType: 'string' | 'number' | 'boolean' | 'object' | 'array' 페이지.

highlight-component

Подсветить компонент на странице (автоматически снимается через 5 секунд).

componentName: string

get-router-info

Получить текущую информацию Vue Router в формате JSON (маршрут, совпавшие записи, params, query…).

get-pinia-tree

Получить дерево хранилиществ Pinia в формате JSON.

get-pinia-state

Получить состояние одного хранилищества Pinia в формате JSON.

storeName: string

Пример рабочего процесса с ИИ

  • «Покажи мне дерево компонентов текущей страницы.»

  • «Какое состояние у компонента UserCard

  • «Установи count в Counter в 10». → вызывает edit-component-state, и интерфейс мгновенно обновляется.

  • «Подсвети компонент Navbar». → элемент мигает в браузере.

  • «На каком мы маршруте и какие у него параметры?» → вызывает get-router-info.

  • «Покажи состояние Pinia-хранилища cart».

Как работает

Плагин использует birpc в качестве RPC-слоя и WebSocket в качестве транспорта между dev-сервером и страницей приложения.

graph TD
    subgraph A["MCP Host (AI Client)"]
        A1[MCP Client]
        A2[MCP Client]
    end

    subgraph B["MCP Server (Rsbuild/Rspack Dev Server)"]
        B1[MCP Tools<br/>get-component-tree / get-component-state / ...]
        B2[birpc group<br/>createRPCServer]
        B3[WebSocket Server<br/>/__vue-devtools-mcp-ws]
    end

    subgraph C["Vue App (Browser)"]
        C1[overlay.js injected]
        C2[birpc client]
        C3[Vue DevTools Kit<br/>devtools.api / ctx]
    end

    A <-- " streamable-http / SSE " --> B1
    B1 --> B2
    B2 <== " birpc over WebSocket " ==> B3
    B3 --> C1 --> C2 --> C3
  1. Инъекция — Когда dev-сервер запускается, плагин внедряет overlay.js в HTML приложения (или, когда задан appendTo , добавляет импорт в совпадающие исходные модули). overlay.js инициализирует @vue/devtools-kit и открывает WebSocket к dev-серверу на /__vue-devtools-mcp-ws.

  2. RPC-мост — Dev-сервер создаёт birpc-группу (createRPCServer) поверх WebSocket-соединений. overlay.js создаёт birpc-клиент (createBirpc). Запросы от сервера передаются приложению; ответы возвращаемого браузера обрабатываются через колбэки хуков (onInspectorTreeUpdated, onInspectorStateUpdated, …).

  3. MCP-слой — Обработчики MCP-инструментов (src/mcp/server.ts) вызывают birpc-клиент для достижения приложения, получают ответ через hookable-хук и возвращают его как результат инструмента.

Такая двухступенчатая архитектура (MCP ↔ birpc ↔ DevTools) означает, что каждый вызов инструмента соответствует или изменяет фактически запущенное приложение, а не статический снимок.

Конфигурация

pluginVueMcp(options) (Rsbuild) и new VueMcpPlugin(options) (Rspack) принимают одинаковые параметры:

interface PluginVueMcpOptions {
    /** Host to listen on. Default: `localhost`. */
    host?: string

    /** Print the MCP server URL in the console. Default: `true`. */
    printUrl?: boolean

    /** Custom MCP server info (name/version). Ignored when `mcpServer` is provided. */
    mcpServerInfo?: { name?: string, version?: string, ... }

    /**
     * Customize or replace the MCP server instance. Called whenever a server is created.
     * You may register extra tools, or return a new McpServer to replace the default one.
     */
    mcpServerSetup?: (server: McpServer, api: RsbuildPluginAPI | Compiler) => void | Promise<void | McpServer>

    /** Path prefix for the MCP endpoint. Default: `/__mcp` (so the endpoint is `/__mcp/mcp`). */
    mcpPath?: string

    /**
     * Instead of injecting a <script> into HTML, append an import to modules whose id
     * matches this regex. Useful for projects without an HTML entry.
     * WARNING: only set this if you know exactly what it does.
     */
    appendTo?: string | RegExp
}

Примеры

Добавление дополнительных MCP-инструментов наряду с встроенными:

pluginVueMcp({
    mcpServerSetup(server, api) {
        server.registerTool('ping', { description: 'Ping the dev server' }, async () => ({
            content: [{ type: 'text', text: 'pong' }],
        }))
    },
})

Использование собственного пути к MCP-эндпоинту:

pluginVueMcp({ mcpPath: '/my-mcp' })
// → http://localhost:<port>/my-mcp/mcp

Требования

  • Node.js >= 18

  • @rsbuild/core >= 1.2.9 || >= 2.0.0 (необязательная peer-зависимость для плагина Rsbuild)

  • @rspack/core >= 1.3.0 || >= 2.0.0 (необязательная peer-зависимость для плагина Rspack)

  • Приложение Vue 3, инструментированное через @vue/devtools-kit (автоматически обрабатывается внедрённым overlay).

Отладка

Вы можете проверить MCP-сервер с помощью официального MCP Inspector:

npx @modelcontextprotocol/inspector

Затем обратитесь к нему по адресу http://localhost:<YourPort>/__mcp/mcp с транспортным протоколом Streamable HTTP.

Справочные материалы / Благодарности

  • Вдохновлено vite-plugin-vue-mcp — оригинальной идеей соединения Vue DevTools и MCP.

  • Model Context Protocol

  • birpc — RPC-слой, используемый между dev-сервером и страницей приложения

  • @vue/devtools-kit — основной API Vue DevTools

Лицензия

MIT

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides application insights for Vue apps by exposing component trees, state, routes, and Pinia data through a Model Context Protocol server.
    2,375
    573
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables real-time debugging and state manipulation of Vue.js applications through MCP protocol, integrating with Vue DevTools to access component trees, states, router info, and Pinia stores.
    34
    44
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    This MCP server enables real-time debugging and inspection of running React Native apps, providing access to console logs, errors, network requests, navigation state, storage, and performance profiling.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A Vite plugin that provides MCP server capabilities, enabling MCP clients to interact with browser environments through adapters for console, cookies, storage, performance, and component tree inspection.
    32
    4
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for interacting with the Supabase platform

  • MCP server for managing Prisma Postgres.

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BrightX/rsbuild-plugin-vue-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server