使用说明
项目简介
MCP Inception Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,它作为一个中间层,允许你通过它来调用和利用另一个 MCP 客户端的功能。这个服务器的主要目的是为了实现任务的委托处理和上下文窗口的有效管理。你可以将其理解为一个“代理的代理”,它接收你的请求,然后转发给另一个 MCP 客户端(通常是 mcp-client-cli)来执行。
主要功能点
- 工具 (Tools): 服务器提供了一组预定义的工具,使你能够间接调用另一个 MCP 客户端的功能:
- 'execute_mcp_client': 允许你执行一个 MCP 客户端命令,并获取该命令的输出结果。这可以用于向另一个 LLM 客户端提问并获取答案。
- 'execute_parallel_mcp_client': 支持并行执行多个相同的 MCP 客户端命令,针对不同的输入项。例如,你可以使用它并行查询多个城市的时间。
- 'execute_map_reduce_mcp_client': 实现 Map-Reduce 模式的任务处理。它首先并行处理多个项目(Map 阶段),然后将所有结果归纳为一个最终结果(Reduce 阶段),适用于需要汇总分析多个文档等场景。
- 任务委托: 通过这些工具,你可以将特定的任务委派给另一个 MCP 客户端去执行,从而减轻当前客户端的计算负担或利用另一个客户端的特定能力。
- 上下文窗口卸载: 当处理任务需要大量上下文信息时,可以将任务委托给另一个客户端,从而有效地管理和卸载上下文窗口,避免单个客户端的上下文超限问题。
- 并行处理能力: 'execute_parallel_mcp_client' 和 'execute_map_reduce_mcp_client' 工具提供了并行处理能力,可以显著提高处理多个任务的效率。
安装步骤
- 安装 'mcp-client-cli' 及其依赖: 首先,你需要确保已经安装并配置好了 mcp-client-cli 客户端,包括安装其依赖,并根据其文档配置好 'config.json' 文件以及所需的 MCP 服务器。
- 克隆仓库: 从 GitHub 克隆 'mcp-inception' 仓库到你的本地计算机。
- 安装 npm 依赖: 打开终端,进入克隆下来的 'mcp-inception' 仓库目录,运行命令 'npm install' 安装项目所需的 npm 依赖包。
- 构建服务器: 在终端中运行命令 'npm run build',构建服务器的 TypeScript 代码,生成可执行的 JavaScript 文件。
服务器配置
要将 MCP Inception Server 集成到 MCP 客户端(例如 Claude Desktop),你需要在客户端的配置文件中添加服务器配置信息。以 Claude Desktop 为例,你需要编辑 'claude_desktop_config.json' 文件,并添加如下 'mcpServers' 配置:
{ "mcpServers": { "mcp-inception": { "command": "node", "args": ["/path/to/mcp-inception/build/index.js"], // 将 "/path/to/mcp-inception" 替换为 mcp-inception 项目在你的电脑上的实际路径 "disabled": false, "autoApprove": [], "env": { "MCP_INCEPTION_EXECUTABLE": "/path/to/run_llm.sh", // 将 "/path/to/run_llm.sh" 替换为你创建的 run_llm.sh 脚本的实际路径 "MCP_INCEPTION_WORKING_DIR": "/path/to/mcp-client-cli/working/dir" // 将 "/path/to/mcp-client-cli/working/dir" 替换为 mcp-client-cli 的工作目录的实际路径 } } } }
配置参数说明:
- 'command': 指定启动 MCP Inception Server 的命令,这里使用 'node' 来运行 JavaScript 文件。
- 'args': 一个字符串数组,包含了启动命令的参数。这里指向的是 'mcp-inception' 项目构建后输出的 'build/index.js' 文件路径。请务必根据你的实际文件路径进行修改。
- 'env': 一个对象,用于设置服务器运行时的环境变量:
- 'MCP_INCEPTION_EXECUTABLE': 重要! 这个环境变量需要指向一个你创建的 'run_llm.sh' 脚本文件的路径。这个脚本的目的是为了激活 'mcp-client-cli' 所需的虚拟环境,并执行 'llm' 命令来调用另一个 MCP 客户端。你需要在 'run_llm.sh' 脚本中配置好 'mcp-client-cli' 的运行环境和启动命令。请根据你的 'mcp-client-cli' 安装和配置情况,创建并配置这个脚本,并在此处提供脚本的实际路径。
- 'MCP_INCEPTION_WORKING_DIR': 重要! 这个环境变量需要指向 'mcp-client-cli' 的工作目录。这个目录是 'mcp-client-cli' 运行时的上下文环境。请根据你的 'mcp-client-cli' 配置,提供其工作目录的实际路径。
'run_llm.sh' 脚本示例 (你需要根据你的环境进行调整):
#!/bin/bash source /path/to/mcp-client-cli/venv/bin/activate # 替换为你的 mcp-client-cli 虚拟环境路径 llm --no-confirmations "$@" # 执行 llm 命令,并将接收到的参数传递给 llm
请确保 'run_llm.sh' 脚本具有执行权限 ('chmod +x run_llm.sh')。
基本使用方法
- 确保 MCP Inception Server 已经成功配置并启动。
- 在你的 MCP 客户端中选择并连接到 "mcp-inception" 服务器。
- 你可以在客户端中调用 "mcp-inception" 服务器提供的工具,例如 'execute_mcp_client', 'execute_parallel_mcp_client', 或 'execute_map_reduce_mcp_client'。
- 根据你选择的工具,提供相应的参数。例如,如果你想使用 'execute_mcp_client' 工具,你需要提供 'command' 参数,这个参数是你想要传递给 'mcp-client-cli' 执行的命令。
- 服务器会将你的请求转发给 'mcp-client-cli' 执行,并将执行结果返回给你的客户端。你将在客户端界面看到执行结果。
例如,在客户端中调用 'execute_mcp_client' 工具,并设置参数 '{"command": "what is the capital of France?"}',服务器会将命令 '"what is the capital of France?"' 传递给 'mcp-client-cli' 执行,并将 'mcp-client-cli' 的返回结果返回给你的客户端。
信息
分类
AI与计算