McPC MCP 服务器代理与测试服务器实现

  • 项目简介

    • 该仓库不仅包含面向 MCP 客户端的完整实现(桥接、会话管理、传输层等),还实现了一个 MCP 代理服务器模块,用于将上游 MCP 客户端连接的能力对外暴露成一个独立的 MCP 服务器实例。代理服务器通过本地 HTTP 服务接受请求,并转发给上游的 MCP 客户端,实现工具、资源、Prompts 等能力的访问。该设计便于在 AI 沙箱和本地开发环境中使用。
  • 主要功能点

    • 代理 MCP 请求:将工具、资源、Prompts 及相关操作等请求从外部客户端转发给上游 MCP 客户端并返回结果
    • 支持多种请求类型:ListTools、CallTool、ListResources、ReadResource、ListPrompts、GetPrompt、ListResourceTemplates、Ping、SetLoggingLevel 等
    • 认证代理(可选):通过配置 Bearer Token 等实现对代理端口的访问控制
    • 上游集成:代理端口后端通过一个 MCP 客户端连接到真实 MCP 服务器,具备动态查询能力
    • 安全性与隔离:代理服务器设计用于将外部访问严格限制在代理边界内,避免暴露上游凭证
  • 安装步骤

    • 安装依赖并构建环境
    • 启动代理服务器并连接上游 MCP 客户端
    • 如需 AI 沙箱,配置代理并可选开启 Bearer Token 认证
  • 服务器配置(供 MCP 客户端使用的配置示例说明)

    • 服务器配置文件(供 MCP 客户端解析,用于连接到 MCP 代理服务器的上游目标)应包含以下信息:
      • 服务器名称(例如 "proxy-upstream"):
        • 作用:标识要连接的 MCP 服务器目标
        • 说明:仅用于 MCP 客户端在多服务器场景中的区分
      • 启动命令 (command) 与参数 (args):
        • 作用:指定上游 MCP 服务器的暴露入口(本代理服务器所对接的上游目标)
        • 示例注释(非代码):例如需要使用本地代理服务对接一个远端 MCP 服务器,命令可能是启动一个上游 MCP 客户端进程并让它连接到远端服务器的命令及其参数
      • 额外环境变量(env):
        • 说明:可用于传递认证信息、代理配置、网络选项等
    • 说明:以上配置仅用于 MCP 客户端连接到该代理服务器的上游目标。本 MCP 服务器代理本身作为一个独立服务对外暴露端口,供 MCP 客户端访问。
  • 基本使用方法

    • 启动与连接
      • 启动本地代理服务器,并确保上游 MCP 客户端能够连接到该代理
      • 如需要浏览器/外部客户端访问,配置代理端口及 Bearer Token 认证
    • 客户端调用
      • 通过标准 MCP 客户端向代理服务器端口发送 Tool/Resource/Prompts 等请求,代理服务器将请求转发给上游 MCP 客户端并返回结果
    • 监控与安全
      • 使用代理自带的认证机制限定访问
      • 通过日志与监控分析代理的请求与响应

服务器信息