Rsbuild plugin that enables a MCP server for your Rsbuild app to provide information about your setup and modules graphs.
Install:
npm add rsbuild-plugin-mcp -DAdd plugin to your rsbuild.config.ts:
import { defineConfig } from '@rsbuild/core';
import { pluginMcp } from 'rsbuild-plugin-mcp';
export default defineConfig({
plugins: [pluginMcp()],
});- Type:
string | undefined - Default:
/__mcp
Customize the routes of the MCP server.
- Example:
import { defineConfig } from '@rsbuild/core';
import { pluginMcp } from 'rsbuild-plugin-mcp';
export default defineConfig({
plugins: [
pluginMcp({
mcpRouteRoot: '/api/__mcp',
}),
],
});The MCP server can be extended with the following ways:
Use the mcpServerSetup to customize the MCP server.
import { defineConfig } from '@rsbuild/core';
import { pluginMcp } from 'rsbuild-plugin-mcp';
export default defineConfig({
plugins: [
pluginMcp({
mcpServerSetup(mcpServer) {
// Register tools, resources and prompts
mcpServer.tool(); /** args */
mcpServer.resource(); /** args */
mcpServer.prompt(); /** args */
},
}),
],
});You may also return a new McpServer instance to replace the default one:
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { defineConfig } from '@rsbuild/core';
import { pluginMcp } from 'rsbuild-plugin-mcp';
export default defineConfig({
plugins: [
pluginMcp({
mcpServerSetup() {
// Create a new `McpServer` and return
const mcpServer = new McpServer();
// Register tools, resources and prompts
mcpServer.tool();
return mcpServer;
},
}),
],
});This plugin exposes the McpServer instance using api.expose.
You may use api.useExposed to get the instance and make customization:
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
import type { RsbuildPlugin } from '@rsbuild/core'
export function pluginFoo(): RsbuildPlugin {
return {
name: 'plugin-foo',
pre: ['plugin-mcp'],
setup(api) {
if (api.isPluginExists('plugin-mcp')) {
const mcpServer = api.useExposed<McpServer>('rsbuild-plugin-mcp:mcpServer')!
// Register tools, resources and prompts
mcpServer.tool(/** args */)
mcpServer.resource(/** args */)
mcpServer.prompt(/** args */)
}
},
},
}This plugin is inspired by vite-plugin-mcp. Both the implementation and documentation have been adapted and referenced from the original Vite plugin.
MIT.