项目简介
MCP代理处理器(MCP Proxy Processor)是一个基于Model Context Protocol (MCP) 构建的代理服务器。它旨在解决AI代理在面对来自多个后端MCP服务器的众多工具、资源和Prompt时,可能出现的上下文窗口臃肿、性能下降和成本增加的问题。通过该代理,您可以为不同的AI任务创建定制化的“工具组”,精确地暴露AI代理所需的上下文信息,并对工具的名称、描述和参数进行优化。
主要功能点
- 工具精细管理:
- 筛选: 从后端MCP服务器中选择并暴露AI代理所需的特定工具。
- 优化描述: 将冗长复杂的工具描述改写为AI代理更容易理解的简洁版本。
- 参数控制: 隐藏不常用或不需要AI代理直接操作的参数,减少上下文负担;同时,可以注入常量参数(如API密钥、默认值)。
- 参数映射: 支持复杂的参数转换,将AI代理发出的参数格式映射为后端工具所需的格式。
- 资源灵活暴露:
- 选择性访问: 精确选择需要暴露给AI代理的文件、API或数据源。
- URI模板匹配: 支持URI模板,允许通过模式匹配多个资源URI。
- 优先级回退: 为相同资源配置多个后端服务器,实现自动故障转移。
- Prompt模板优化:
- 策展: 选择后端服务器中特定的Prompt模板暴露给AI代理。
- 参数传递: 确保Prompt参数和要求从后端定义中正确传递。
- 优先级排序与去重: 自动处理重复的Prompt名称,并通过优先级机制提供最佳Prompt。
- 分组管理: 根据不同的AI任务(如代码编写、财务分析、研究等)创建和管理不同的工具、资源和Prompt集合,使AI代理保持专注。
安装步骤
请确保您的系统已安装 Node.js 24.x 或更高版本。
-
全局安装 (推荐):
npm install -g @hughescr/mcp-proxy-processor安装完成后,您可以在命令行中使用 'mcp-proxy' 命令。
-
通过 'npx' 直接运行 (无需安装):
npx -y @hughescr/mcp-proxy-processor@latest --help此方式可以直接运行命令,但每次都会下载最新版本。
服务器配置
MCP代理处理器作为MCP服务器,需要连接到上游的后端MCP服务器。您需要编辑位于安装目录下的 'config/backend-servers.json' 文件来配置您的后端MCP服务器。
后端 MCP 服务器配置示例 ('config/backend-servers.json' 文件内容)
{ "mcpServers": { "time": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-time"] }, "calculator": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-calculator"] }, "myCustomServer": { "command": "node", "args": ["/path/to/my/server.js"], "env": { "API_KEY": "your_api_key_here" } } } }
- 'mcpServers': 包含所有后端 MCP 服务器配置的对象。
- 'time', 'calculator', 'myCustomServer': 您自定义的后端 MCP 服务器的名称。
- 'command': 启动后端 MCP 服务器的命令行可执行文件或脚本的路径。
- 'args': 传递给 'command' 的参数列表,每个参数为字符串。
- 'env': (可选)为该后端服务器进程设置的环境变量,键值对形式。
- 'time', 'calculator', 'myCustomServer': 您自定义的后端 MCP 服务器的名称。
分组配置 (暴露给AI代理的MCP服务器)
您还需要配置分组,定义每个分组要暴露哪些工具、资源和Prompt。您可以手动编辑 'config/groups.json',或者使用交互式管理界面。
使用交互式管理界面 (推荐): 这是配置分组最简单、最直观的方式。
- 启动管理界面:
mcp-proxy admin - 按照界面提示进行操作:
- 发现工具: 连接到已配置的后端服务器,查看所有可用的工具、资源和Prompt。
- 创建分组: 为不同的AI代理任务创建新的分组。
- 添加工具/资源/Prompt: 从发现列表中选择并添加到您的分组。
- 覆盖定义: 为工具、资源和Prompt重命名、修改描述、调整参数Schema等。
- 保存: 将您的分组配置保存到 'config/groups.json'。
基本使用方法
-
启动 MCP 代理服务器: 在命令行中启动您配置的某个分组对应的MCP代理服务器。例如,如果您在分组配置中定义了一个名为 'standard_tools' 的分组:
mcp-proxy serve standard_tools这个命令将启动一个MCP服务器,它只会暴露 'standard_tools' 分组中定义的工具、资源和Prompt。
-
将代理服务器连接到您的 LLM 客户端: 您的LLM客户端(例如 Claude Desktop 或其他支持MCP协议的客户端)需要知道如何连接到MCP代理服务器。通常,这意味着在客户端的配置文件中添加MCP代理服务器的启动命令。
Claude Desktop 配置示例 ('claude_desktop_config.json' 文件内容): (通常位于 macOS: '~/Library/Application Support/Claude/claude_desktop_config.json';Windows: '%APPDATA%\Claude\claude_desktop_config.json';Linux: '~/.config/Claude/claude_desktop_config.json')
{ "mcpServers": { "standard_tools_proxy": { "command": "mcp-proxy", "args": ["serve", "standard_tools"] }, "financial_analysis_proxy": { "command": "mcp-proxy", "args": ["serve", "financial_tools"] } } }- 'standard_tools_proxy', 'financial_analysis_proxy': 您在Claude Desktop中可见的MCP服务器名称。
- 'command': 'mcp-proxy' (如果您已全局安装MCP代理处理器)。
- 'args': 启动特定分组的参数列表,例如 '["serve", "standard_tools"]'。
保存客户端配置并重启您的LLM客户端。现在,您的LLM客户端将能够连接到并使用由MCP代理处理器提供的、经过精心策划的工具、资源和Prompt。
信息
分类
AI与计算