项目简介

Rush Stack 是一个由 Microsoft 开发和维护的、用于大型 TypeScript monorepo 项目的工具链。'@rushstack/mcp-server' 是 Rush Stack 项目中的一个包,它提供了一个符合 Model Context Protocol (MCP) 标准的服务器实现。该服务器旨在与支持 MCP 协议的 LLM 客户端(如某些编辑器扩展或 AI 助手)进行交互,提供与 Rush Stack 项目相关的上下文信息和后端能力。

主要功能点

Rush Stack MCP 服务器的核心功能围绕 MCP 协议定义的能力展开:

  1. 托管和管理资源 (Resources):服务器能够访问和提供与 Rush Stack 项目相关的各种资源,例如项目文件、配置信息、构建日志、依赖关系等。LLM 客户端可以通过标准化的 MCP 请求来获取这些数据,作为理解项目上下文的信息来源。
  2. 注册和执行工具 (Tools):服务器可以注册与 Rush Stack 工具链相关的操作作为可供 LLM 调用的工具。这可能包括触发构建任务、运行lint检查、执行测试、查询项目状态等。LLM 客户端可以通过 MCP 请求调用这些工具,实现自动化操作或获取实时结果。
  3. 定义和渲染 Prompt 模板 (Prompts):服务器可以定义结构化的 Prompt 模板,以便 LLM 客户端用于生成特定任务的 Prompt。这些模板可以包含占位符,允许客户端注入动态信息,从而定制与项目的交互模式,例如生成代码评审建议、编写文档或修复构建错误。

服务器通过 JSON-RPC 协议与客户端通信,支持不同的传输方式(如 Stdio),并负责会话管理和能力声明。

安装步骤

'@rushstack/mcp-server' 作为 Rush Stack monorepo 中的一个包发布。要使用它,您需要在您的项目中(通常是您的 Rush Stack monorepo 中)安装这个包。

  1. 如果您在 Rush monorepo 中: 在您的 monorepo 根目录下运行:

    rush add --package @rushstack/mcp-server --dev

    或者将其添加到您的项目 'package.json' 的 'devDependencies' 或 'dependencies' 中,然后在 monorepo 根目录运行 'rush update'。

  2. 如果您在非 Rush 项目中: 在您的项目根目录(如果项目是 monorepo,通常是根目录或使用该服务器的子项目目录)下运行:

    pnpm add @rushstack/mcp-server --save-dev
    # 或者
    npm install @rushstack/mcp-server --save-dev
    # 或者
    yarn add @rushstack/mcp-server --dev

    安装完成后,'@rushstack/mcp-server' 包及其依赖将被安装在项目的 'node_modules' 目录下。

服务器配置(供 MCP 客户端使用)

MCP 客户端需要通过配置信息来启动并连接到 MCP 服务器进程。以下是典型的 JSON 格式配置示例,用于指导客户端如何启动 'Rush Stack MCP 服务器':

{
  // 服务器的内部名称,用于在客户端中标识该服务器
  "server name": "RushStackMCP",

  // 用于启动 MCP 服务器进程的命令
  // 通常是 Node.js 可执行文件路径加上服务器启动脚本的路径
  // 或者使用包管理器提供的便捷命令 (如 npx)
  "command": "node", // 例如,使用 node 命令启动
  "args": [
    // 服务器启动脚本的路径,通常位于安装的包的 node_modules 目录下
    // 这里的路径是相对于 MCP 客户端进程启动时的当前工作目录 (CWD)
    "./node_modules/@rushstack/mcp-server/lib/start.js", // 示例路径,实际路径可能不同
    // 根据服务器实现可能需要的其他参数
    // "--config", "./mcp-server.config.json", // 示例:指定服务器自身的配置文件
    // "--port", "8080" // 示例:如果使用网络传输协议
  ],

  // 服务器与客户端通信的传输协议
  // "stdio" 是最常用的本地进程间通信方式
  "transport": "stdio",

  // 服务器能力声明 (可选)
  // 如果服务器支持 capability 声明,可以在这里列出
  "capabilities": {
    // ... 服务器提供的 resources, tools, prompts 的列表 ...
  }
}

注意: 上述 'command' 和 'args' 中的路径是示例。实际的服务器启动脚本路径可能需要根据您的项目结构和安装方式进行调整。启动命令和参数应能正确执行 '@rushstack/mcp-server' 包中的服务器入口脚本。建议查阅 '@rushstack/mcp-server' 包本身的文档(如果在 Rush Stack monorepo 中,可能是其 'README' 或 'package.json' 的 'bin' 字段)以获取准确的启动方式。

基本使用方法

用户不需要直接与 'Rush Stack MCP 服务器' 的进程交互。服务器是由 MCP 客户端(如一个编辑器扩展或独立的 AI 应用)根据上述配置信息自动启动或连接的。

一旦配置完成并在客户端中启用,客户端将在需要时(例如,分析当前项目文件、执行某个项目任务或根据项目上下文生成回复时)通过 JSON-RPC 协议与服务器通信,请求资源、调用工具或获取 Prompt 模板。服务器接收请求,处理后将结果返回给客户端,客户端再将信息呈现给用户或执行相应的操作。

因此,作为用户,您主要需要:

  1. 将 '@rushstack/mcp-server' 包正确安装到您的项目中。
  2. 在您的 MCP 客户端(例如 VS Code 扩展)中,添加或配置一个新的 MCP 服务器连接,使用上面提供的 JSON 格式配置,并根据您的项目实际情况调整 'command' 和 'args' 中的路径。
  3. 通过 MCP 客户端提供的界面或功能来利用 MCP 服务器提供的项目上下文和能力。

信息

分类

开发者工具