使用说明

项目简介

'rollup-plugin-mcp' 是一个 Rollup 插件,它在 Rollup 构建过程中集成了一个 MCP (Model Context Protocol) 服务器。该插件旨在为 AI 助手提供关于你的代码库的上下文信息,并允许 AI 主动修改和控制构建流程。通过标准化的 MCP 协议,AI 工具可以安全、可扩展地访问构建信息和执行相关操作。

主要功能点

  • MCP 服务器集成: 在 Rollup 构建过程中创建并管理 MCP 服务器。
  • 双向 AI 集成: 不仅向 AI 助手提供代码库的上下文,还允许 AI 主动修改和控制构建过程。
  • 丰富的模块信息: 预置工具暴露模块依赖、构建配置和错误诊断等 Rollup 构建信息。
  • 可扩展的工具框架: 允许开发者创建自定义 MCP 工具,暴露项目特定的信息或功能。
  • 构建流程集成: 无缝集成到 Rollup 插件链和 Rollup Hooks 中。
  • 持久化服务器: 在 Watch 模式下构建完成后仍保持运行,支持持续的 AI 交互。
  • 标准传输层: 使用 HTTP 和 Server-Sent Events (SSE) 作为传输层,与实现了 MCP 协议的 AI 助手广泛兼容。

安装步骤

pnpm add -D rollup-plugin-mcp

服务器配置

MCP 服务器以 Rollup 插件的形式运行,无需单独启动命令。MCP 客户端需要配置 Rollup 项目的构建命令,并启用 Watch 模式以保持服务器运行。

MCP 客户端配置 (JSON 示例):

{
  "serverName": "rollup-mcp-server",
  "command": "rollup",
  "args": [
    "--config", "rollup.config.js", "--watch"
  ],
  "description": "启动 Rollup 构建并运行 MCP 服务器 (Watch 模式)",
  "transport": {
    "type": "sse",
    "baseUrl": "http://localhost:14514/mcp"
  }
}

参数注释:

  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'command': 启动 MCP 服务器的命令,这里是 Rollup 的命令行工具 'rollup'。
  • 'args': 传递给 Rollup 命令的参数列表。
    • '--config rollup.config.js': 指定 Rollup 配置文件为 'rollup.config.js',请根据实际项目调整。
    • '--watch': 关键参数,启用 Rollup 的 Watch 模式,使 Rollup 在文件更改时重新构建,并保持 MCP 服务器持续运行。
  • 'description': 对该配置的描述,方便用户理解其用途。
  • 'transport': 配置 MCP 客户端与服务器通信的传输方式。
    • 'type': 传输类型,这里使用 SSE (Server-Sent Events)。
    • 'baseUrl': MCP 服务器的 SSE 基地址,默认为 'http://localhost:14514/mcp',与插件默认配置一致。如果修改了插件的 'port', 'host' 或 'basePath' 配置,此处也需要相应修改。

注意: MCP 服务器的端口、主机和基础路径等可以在 'rollup.config.js' 中配置 'rollup-plugin-mcp' 插件时进行修改。

基本使用方法

  1. 在 'rollup.config.js' 中引入并配置插件:

    import { defineConfig } from 'rollup';
    import mcp from 'rollup-plugin-mcp';
    import { ModuleTool,BuildConfigTool,BuildErrorTool } from 'rollup-plugin-mcp/tools'
    
    export default defineConfig({
      // ... Rollup 配置 ...
      plugins: [
        mcp({
          provideRollupMcpTools: () => [
            // 注册默认工具
            new ModuleTool(),
            new BuildConfigTool(),
            new BuildErrorTool()
          ]
        }),
        // ... 其他 Rollup 插件 ...
      ]
    });
  2. 运行 Rollup 构建 (Watch 模式):

    在项目根目录下运行 Rollup 命令,并启用 Watch 模式:

    rollup --config rollup.config.js --watch

    或者在 'package.json' 的 'scripts' 中配置:

    "scripts": {
      "dev": "rollup --config rollup.config.js --watch",
      // ... 其他脚本 ...
    }

    然后运行 'pnpm dev' 或 'npm run dev'。

  3. 使用 MCP 客户端连接服务器:

    配置并启动 MCP 客户端,连接到 'http://localhost:14514/mcp/sse' (默认地址)。客户端即可调用插件提供的工具,获取 Rollup 构建信息。

  4. 自定义工具 (可选):

    可以创建自定义的 'RollupMcpTool' 并注册到插件中,扩展 MCP 服务器的功能,例如暴露项目特定的资源或执行自定义操作。具体方法请参考仓库 README.md 中的 "Custom Tools" 部分。

注意事项

  • 该插件默认只在 Rollup 的 Watch 模式下启动 MCP 服务器。如果需要在非 Watch 模式下使用,请设置插件选项 'useOnlyInWatchMode: false'。
  • 插件默认使用 SSE 传输协议,可以通过配置 'httpServer' 选项来自定义 HTTP 服务器和传输协议。
  • 如果注册了多个 'affectsBuildProcess' 为 'true' 的工具,插件会抛出错误,因为这可能会导致构建流程冲突。

信息

分类

开发者工具