ContextSwitcher 项目简介

ContextSwitcher 是一个轻量级的 Model Context Protocol (MCP) 网关,旨在帮助用户在不同的环境和项目中管理多个 MCP 服务器。它可以作为 Claude Desktop 或 Roo Code 等 MCP 客户端的单一入口点,无缝对接各种上下文 AI 代理设置。

主要功能点:

  • 多服务器管理: 启动和管理在 '.roo/mcp.json' 文件中定义的多个 MCP 服务器。
  • 工具聚合: 将对 'tools/list' 的请求路由到所有注册的服务器,并将结果合并返回,方便客户端发现所有可用工具。
  • 上下文切换: 通过 'context/switch' 工具实现动态切换 MCP 服务器配置,允许用户在不同的上下文环境之间快速切换。
  • 工具命名空间: 为所有工具名称添加可配置的后缀(默认为 '_cs'),避免不同服务器之间工具名称冲突。
  • 轻量级集成: 使用 'stdio' 协议与 MCP 服务器通信,实现轻量级集成和部署。

安装步骤:

  1. 克隆仓库: 将 'contextswitcher' 仓库克隆到本地。
  2. 安装依赖: 在仓库根目录下运行 'npm install' 或 'yarn install' 安装项目依赖。
  3. 构建项目: 运行 'npm run build' 或 'yarn build' 构建项目。

服务器配置:

ContextSwitcher 通过 '.roo/mcp.json' 文件配置要管理的 MCP 服务器。以下是一个配置示例,客户端需要根据此配置信息来连接 ContextSwitcher 服务器。

{
  "mcpServers": {
    "contextSwitcher": {
      "command": "node",
      "args": ["dist/cli.js"],
      "cwd": "./",
      "env": {
        "SWITCHING_ENABLED": "true",
        "TOOL_SUFFIX": "_cs"
      }
    },
    "coder": {
      "command": "bun",
      "args": ["src/mcp-server.ts"],
      "cwd": "/Users/you/projects/awesome-agent/coder"
    },
    "designer": {
      "command": "bun",
      "args": ["src/mcp-server.ts"],
      "cwd": "/Users/you/projects/awesome-agent/designer"
    }
  }
}

配置参数说明:

  • 'mcpServers': 定义要管理的 MCP 服务器的集合。
    • 'server name': 服务器的名称,例如 'contextSwitcher', 'coder', 'designer',可以自定义。
      • 'command': 启动 MCP 服务器的命令,例如 'node', 'bun'。
      • 'args': 启动命令的参数数组,例如 '["dist/cli.js"]', '["src/mcp-server.ts"]'。
      • 'cwd': MCP 服务器进程的工作目录。
      • 'env': MCP 服务器进程的环境变量,例如:
        • 'SWITCHING_ENABLED': (仅 contextSwitcher 服务器) 是否启用上下文切换功能,'"true"' 或 '"false"'。
        • 'TOOL_SUFFIX': (仅 contextSwitcher 服务器) 工具名称后缀,例如 '"_cs"'。

基本使用方法:

  1. 启动 ContextSwitcher 服务器: 在仓库根目录下运行命令 'node dist/cli.js',ContextSwitcher 将会读取 '.roo/mcp.json' 文件并启动配置中定义的其他 MCP 服务器。
  2. 配置 MCP 客户端: 将 MCP 客户端配置为连接 ContextSwitcher 服务器。由于 ContextSwitcher 使用 'stdio' 协议,客户端需要配置为通过标准输入输出与 ContextSwitcher 进程通信。具体的客户端配置方式取决于 MCP 客户端的具体实现。通常需要指定 ContextSwitcher 的启动命令 (例如 'node dist/cli.js') 作为客户端连接的服务器。
  3. 使用工具: MCP 客户端可以通过 'tools/list' 请求获取所有聚合的工具列表,并通过 'tools/call' 请求调用相应的工具。工具名称会带有配置的后缀 (例如 'tool_cs')。
  4. 上下文切换 (可选): 如果启用了上下文切换功能,客户端可以调用 'context/switch' 工具,并提供新的配置文件路径,动态切换 MCP 服务器配置。

信息

分类

AI与计算