Rush StackShopBlogEvents
Skip to main content

Rush MCP 服务器

Agent context files 提供了一种简单的方式,通过发布有关 Rush 仓库的附加信息来提升人工智能(AI)编程助手的能力。Model Context Protocol (MCP) 更进一步,提供一个实时服务,可以在你的 monorepo 中响应查询并执行操作。

它是如何工作的?

  • 一个 MCP host 通常是一个 编程助手,如 GitHub Copilot(可直接在 VS Code 中使用)、TraeCursor。但任何类型的软件工具都可以通过实现 MCP client 协议来作为客户端。

  • 一个 MCP server 会向客户端公布一系列能力,客户端在执行任务时通过协议调用这些能力。根据规范,服务器可以在本地运行,也可以作为远程云服务。它的能力包括:

    • resources:例如读取文件内容、查询数据库、读取日志文件、捕获屏幕截图
    • tools:例如执行 shell 命令、修改文件、执行计算
    • prompts:暴露特定输入表单供最终用户填写
  • Rush 提供了一个现成的 MCP 服务器 @rushstack/mcp-server,可以安装在你的 monorepo 中。它的设计目标专为大型团队量身定制:

    • 易于所有人安装, 降低临时贡献者的学习曲线。
    • 集中管理, 使 monorepo 维护者能够控制其配置和安装版本,从而确保所有人获得一致的体验。在为工程师提供随叫随到的支持时,确定性行为至关重要。
    • 通过 Rush MCP 插件 实现 可扩展性, 这样你就可以集成公司特有的能力,而无需自行构建 MCP 服务器。

设置 MCP 服务器

@rushstack/mcp-server 设计为在开发者的本地计算机上作为本地进程运行,而不是作为云服务运行。Rush MCP 服务器会被 VS Code、Cursor 或 Trae 等 MCP host 自动启动。MCP host 负责启动和终止该进程。进程间通信使用 stdio 传输方式,因此你可以通过在 shell 中手动调用其 CLI 来轻松测试 Rush 的 MCP 服务器。

通常有两种配置 MCP 服务器启动的方式:适用于整个机器的 用户级别(例如 ~/.cursor/mcp.json),或适用于某个特定 Git 仓库的 工作区级别(例如 <your-repo>/.cursor/mcp.json)。对于 @rushstack/mcp-server 服务,我们推荐使用提交到 Git 的工作区级别配置文件。这样可以简化用户的设置过程,并确保所有人在某个分支上使用相同版本的 @rushstack/mcp-server,从而避免加载自定义插件时的兼容性问题。

完成基本设置后,可以考虑实现一个 Rush MCP 插件,以暴露你公司系统的特定能力。

如果你的编程助手不在下方列出:创建一个 pull request 添加设置说明!

Cursor

对于 Cursor,在你的 monorepo 中添加如下文件:

<your-repo>/.cursor/mcp.json

{
"mcpServers": {
"rush-mcp-server": {
"command": "node",
"args": [
"./common/scripts/install-run.js",
"@rushstack/mcp-server@0.2.1",
"mcp-server",
"."
]
}
}
}

@rushstack/mcp-server@0.2.1 替换为 CHANGELOG.md 中的最新版本。

Cursor 注意事项

  • Cursor 会自动将上述文件中的 "." 替换为工作区文件夹的绝对路径。
  • Cursor 不支持在 JSON 文件中使用 // 注释。

Trae

对于 Trae,请手动配置如下:

  1. 点击侧边聊天框右上角的 Settings 图标 > MCP
  2. 点击 + Add MCP Servers 按钮。
  3. 点击 "Configure Manually.",并输入以下配置:
{
"mcpServers": {
"rush-mcp-server": {
"command": "npx",
"args": [
"-y",
"@rushstack/mcp-server@0.2.1",
"<workspace-root>"
]
}
}
}

@rushstack/mcp-server@0.2.1 替换为 CHANGELOG.md 中的最新版本。

<workspace-root> 替换为 Rush monorepo 根目录的绝对路径(包含 rush.json 的文件夹)。

GitHub Copilot

对于 GitHub Copilot,在你的 monorepo 中添加如下文件:

<your-repo>/.vscode/mcp.json

{
"servers": {

"rush-mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@rushstack/mcp-server@0.2.1",
"<workspace-root>"
]
}
}
}

@rushstack/mcp-server@0.2.1 替换为 CHANGELOG.md 中的最新版本。

<workspace-root> 替换为 Rush monorepo 根目录的绝对路径(包含 rush.json 的文件夹)。

Cline

对于 Cline,请手动配置如下:

  1. 点击 MCP Servers 按钮。
  2. 点击 Installed 按钮。
  3. 点击 Configure MCP Servers 按钮,在新打开的 cline_mcp_settings.json 文件中输入以下配置:

cline_mcp_settings.json

{
"mcpServers": {
"rush-mcp-server": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@rushstack/mcp-server@0.2.1",
"<workspace-root>"
]
}
}
}

@rushstack/mcp-server@0.2.1 替换为 CHANGELOG.md 中的最新版本。

<workspace-root> 替换为 Rush monorepo 根目录的绝对路径(包含 rush.json 的文件夹)。

Windsurf

对于 Windsurf,请手动配置如下:

  1. 点击左上角 Settings > Windsurf Settings
  2. 在打开的页面中点击 Cascade > Manage plugins > View raw config
  3. 在打开的 mcp_config.json 文件中输入以下内容:

mcp_config.json

{
"mcpServers": {
"rush-mcp-server": {
"command": "npx",
"args": [
"-y",
"@rushstack/mcp-server@0.2.1",
"<workspace-root>"
]
}
}
}

@rushstack/mcp-server@0.2.1 替换为 CHANGELOG.md 中的最新版本。

<workspace-root> 替换为 Rush monorepo 根目录的绝对路径(包含 rush.json 的文件夹)。