模块图服务插件

Rsbuild插件,为Rsbuild应用提供MCP服务器以展示模块依赖图和配置信息。

  • by colinaaa
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 colinaaa/rsbuild-plugin-mcp

使用说明

rsbuild-plugin-mcp 翻译成中文是:“rsbuild 的 MCP 插件”。这里,“rsbuild”可能是一个构建工具或框架的名称,“MCP”则可能是该插件的特定功能或用途的缩写,具体含义需要根据上下文或该插件的官方文档来确定

Rsbuild 插件,用于为您的 Rsbuild 应用启用 MCP 服务器,以提供有关您的设置和模块图的信息。

用法

安装:

npm add rsbuild-plugin-mcp -D

向您的(系统/应用)添加插件 rsbuild.config.ts:

import { defineConfig } from '@rsbuild/core';
import { pluginMcp } from 'rsbuild-plugin-mcp';

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

选项

mcpRouteRoot

  • 类型: string | undefined
  • 默认: /__mcp

自定义MCP服务器的路由。

  • 示例:
import { defineConfig } from '@rsbuild/core';
import { pluginMcp } from 'rsbuild-plugin-mcp';

export default defineConfig({
  plugins: [
    pluginMcp({
      mcpRouteRoot: '/api/__mcp',
    }),
  ],
});

自定义MCP服务器

MCP服务器可以通过以下方式扩展:

带有插件选项

使用 mcpServerSetup 定制MCP服务器。

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 */
      },
    }),
  ],
});

你也可以退回一件新的 McpServer 实例以替换默认实例:

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;
      },
    }),
  ],
});

与其他插件一起

这个插件提供了 McpServer 使用实例 api.expose。

你可以使用 api.useExposed 获取实例并进行定制:

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 */)
      }
    },
  },
}

功劳/学分

这个插件的灵感来源于 Vite 插件 - MCP(多客户端协议/中间件通信协议等,具体含义根据上下文确定)实施和文档均已根据原始Vite插件进行了调整和参考。

许可证

麻省理工学院(MIT)。