AI在线 AI在线

你的 MCP 调用正在成为系统的"后门",这个解决方案刻不容缓!

在人工智能快速发展的今天,大型语言模型 (LLM) 已成为提升工作效率的重要工具。 随着 MCP(Model Context Protocol)的出现,我们有了一种标准化的方式来与 AI 模型交互。 然而,当需要同时使用多个 MCP 资源服务器时,管理和使用这些服务不仅变得复杂,安全问题也越发严重。

在人工智能快速发展的今天,大型语言模型 (LLM) 已成为提升工作效率的重要工具。随着 MCP(Model Context Protocol)的出现,我们有了一种标准化的方式来与 AI 模型交互。然而,当需要同时使用多个 MCP 资源服务器时,管理和使用这些服务不仅变得复杂,安全问题也越发严重。MCP Proxy正是为解决这一问题而生,它可以聚合多个 MCP 资源服务器,并通过单一 HTTP 服务器提供服务,同时加强安全管控。

MCP 协议简介

在了解 MCP Proxy 之前,我们先简要了解一下 MCP 协议。MCP(Model Context Protocol)是一种为大型语言模型设计的开放协议,旨在标准化 AI 模型的访问方式。它允许开发者以统一的方式与不同的 AI 模型交互,无论这些模型来自哪个提供商,从而简化了应用开发过程。

MCP 协议的核心是提供一套标准化的 API,使开发者能够发送请求到支持 MCP 的服务器,并接收模型生成的回应。这种标准化对于构建复杂的 AI 应用系统尤为重要。

MCP 兼容性说明

在使用 MCP 时,需要注意系统环境对相关包管理工具的依赖:

1. NPX 依赖:当配置使用npx命令作为 MCP 客户端时(如fetch-mcp),系统需要安装 Node.js 环境并确保 NPM 可用。这是因为 MCP Proxy 会调用系统的 npx 命令来执行相关 MCP 插件。

2. UVX 依赖:如果配置使用了uvx作为包管理工具,需要在系统中预先安装uv工具。uv 是一个更快的 Python 包管理器和解释器,在使用 Python 实现的 MCP 插件时可以提供更好的性能。

3. 客户端环境要求:

• 对于基于 Node.js 的 MCP 插件:确保安装了 Node.js 环境(建议 v16+)

• 对于基于 Python 的 MCP 插件:需要安装 Python 环境(建议 3.8+)

• 对于提供 Docker 镜像的 MCP 插件:客户端需要安装 Docker 环境

• 对于其他语言实现的 MCP 客户端:需要安装相应的运行环境

PIG AI新版来袭:一站式Java AI解决方案,六大能力全面升级!

MCP 安全性问题

虽然 MCP 协议为 AI 模型交互提供了标准化方式,但它也带来了一些安全性挑战,MCP 客户端可能存在以下安全风险:

  1. 1. 代码执行风险:MCP 客户端通常需要执行外部命令,这可能导致任意代码执行的风险。例如,使用npx或 uv 其他命令行工具时,如果没有适当的沙箱限制,可能会执行恶意代码。
  2. 2. 权限提升:没有适当限制的 MCP 客户端可能访问系统敏感资源,如文件系统、网络接口或环境变量。
  3. 3. 资源耗尽:恶意或错误配置的 MCP 客户端可能消耗过多系统资源,导致服务降级或拒绝服务。
  4. 4. 数据泄露:如果 MCP 客户端处理敏感数据但缺乏适当的隔离措施,可能导致数据泄露。

MCP Proxy 的主要特性

17455133991745513399

MCP Proxy 是一个强大的代理服务器,具有以下核心特性:

• 代理多个 MCP 客户端:连接到多个 MCP 资源服务器,并聚合它们的工具和功能

• SSE 支持:提供 SSE(Server-Sent Events)服务器,实现实时更新

• 灵活配置:支持多种客户端类型(stdio、sse或streamable-http),并可自定义设置

安全性考量

在使用 MCP Proxy 时,安全性是一个重要考量因素。该工具提供了多层安全保障:

1. 身份验证:通过authTokens配置项,可以设置身份验证令牌,确保只有授权用户才能访问服务

2. 服务隔离:对每个 MCP 服务器可以单独配置安全选项,实现精细化的权限控制

3. 日志记录:通过启用logEnabled选项,可以记录客户端请求,便于安全审计和问题排查

兼容性与集成

MCP Proxy 的一大优势是其出色的兼容性,支持多种类型的 MCP 客户端:

• 命令行工具(stdio):可通过子进程运行的命令行工具,如使用npx -y fetch-mcp等

• SSE 服务器:支持 Server-Sent Events 的服务器

• HTTP 流式服务器:支持 HTTP 流式传输的服务器

这种灵活性使得 MCP Proxy 能够与各种现有系统无缝集成,无论是自定义开发的 MCP 服务器还是第三方提供的服务。

快速部署

复制
docker run -d -p 9090:9090 -v /Users/lengleng/Downloads/mcp-proxy/config.json:/config/config.json ghcr.io/tbxark/mcp-proxy:latest

Docker 镜像默认支持两种 MCP 调用方法:npx和uvx,使得部署过程更加简单。

配置详解

MCP Proxy 通过 JSON 文件进行配置,包含两个主要部分:

1. mcpProxy:代理 HTTP 服务器配置

• baseURL:服务器的公共可访问 URL

• addr:服务器监听的地址

• name和version:服务器的名称和版本

• options:默认选项配置

2. mcpServers:MCP 服务器配置

• 可配置多种类型的 MCP 客户端,如 stdio、sse 或 streamable-http

• 每个客户端可以有独立的安全配置

以下是一个配置示例,以百度地图 MCP 为例

复制
{
  "mcpProxy":{
    "baseURL":"http://localhost:9090",
    "addr":":9090",
    "name":"MCP Proxy",
    "version":"1.0.0",
    "options":{
      "panicIfInvalid":false,
      "logEnabled":false
    }
},
"mcpServers":{
    "map":{
      "command":"npx",
      "args":[
          "-y",
          "@baidumap/mcp-server-baidu-map"
      ],
      "env":{
          "BAIDU_MAP_API_KEY":"XXX"
      },
      "options":{
        "panicIfInvalid":true,
        "logEnabled":true
      }
    }
}
}

支持 MCP 的客户端配置 SSE 模式,直接对接 mcp proxy 的代理端点,实现mcp 的安全性调用

17455161901745516190

进阶配置

  1. 1. 服务器将启动并聚合所有已配置的 MCP 客户端的工具和功能
  2. 2. 可以通过 http(s)://{baseURL}/{clientName}/sse 访问服务器(例如,根据示例配置,访问 https://my-mcp.example.com/map/sse)
  3. 3. 如果 MCP 客户端不支持自定义请求头,以将 clients 中的键(如 map)更改为 map/{apiKey},然后通过 map/{apiKey} 进行访问

总结

MCP Proxy 通过聚合多个 MCP 资源服务器,简化了与多个 AI 模型的交互过程。它不仅提供了灵活的配置选项,还确保了安全性和兼容性,是构建复杂 AI 应用的理想工具。无论是个人开发者还是企业用户,都可以通过 MCP Proxy 更高效地利用多种 AI 模型的能力。

相关资讯

Manus平替方案:用DeepSeek+MCP Server构建AI自主工作流

前言在AI技术日新月异的今天,我们正见证着LLM(大语言模型)从"能说会道"向"能工巧匠"的进化。 当Anthropic推出Model Context Protocol(MCP)时,它像一道闪电划破夜空——这个被称作AI界的USB-C的协议,正在重新定义人机协作的边界。 作为一个沉迷于技术探索的开发者,我始终在寻找让AI真正"落地"的方法。
4/16/2025 3:22:51 PM
后端小肥肠

mcp-agent发布:轻量级框架助力智能体应用高效构建

mcp-agent正式发布,作为一款基于模型上下文协议(MCP)的轻量级框架,旨在为开发者提供一个简化的智能体应用构建解决方案。 该框架不仅能够与其他MCP服务无缝集成,还具备高度的可组合性和可定制性,使得开发者能够更专注于核心业务逻辑的实现,而无需过多关注复杂的系统架构。 mcp-agent的设计理念是简洁而高效,它去除了传统框架中多余的模块,提供了一个轻量级的代理模式库。
4/21/2025 12:00:58 PM
AI在线

一文读懂:模型上下文协议(MCP)

Hello folks,我是 Luga,今天我们来聊一下人工智能应用场景 - 构建高效、灵活的计算架构的模型上下文协议(MCP)。 随着人工智能迈向更复杂的应用场景,单一模型的局限性逐渐显现,而多模型协同与上下文感知的需求日益迫切。 从对话系统需要理解用户的历史语境,到跨模态任务要求无缝整合文本、图像等多源数据,AI 的发展正呼唤一种全新的协作范式。
3/18/2025 9:10:00 AM
架构驿站
  • 1