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 服务器通信,实现轻量级集成和部署。
安装步骤:
- 克隆仓库: 将 'contextswitcher' 仓库克隆到本地。
- 安装依赖: 在仓库根目录下运行 'npm install' 或 'yarn install' 安装项目依赖。
- 构建项目: 运行 '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"'。
- 'server name': 服务器的名称,例如 'contextSwitcher', 'coder', 'designer',可以自定义。
基本使用方法:
- 启动 ContextSwitcher 服务器: 在仓库根目录下运行命令 'node dist/cli.js',ContextSwitcher 将会读取 '.roo/mcp.json' 文件并启动配置中定义的其他 MCP 服务器。
- 配置 MCP 客户端: 将 MCP 客户端配置为连接 ContextSwitcher 服务器。由于 ContextSwitcher 使用 'stdio' 协议,客户端需要配置为通过标准输入输出与 ContextSwitcher 进程通信。具体的客户端配置方式取决于 MCP 客户端的具体实现。通常需要指定 ContextSwitcher 的启动命令 (例如 'node dist/cli.js') 作为客户端连接的服务器。
- 使用工具: MCP 客户端可以通过 'tools/list' 请求获取所有聚合的工具列表,并通过 'tools/call' 请求调用相应的工具。工具名称会带有配置的后缀 (例如 'tool_cs')。
- 上下文切换 (可选): 如果启用了上下文切换功能,客户端可以调用 'context/switch' 工具,并提供新的配置文件路径,动态切换 MCP 服务器配置。
信息
分类
AI与计算