Sherpa MCP 服务器合集 (Camp 4 系列与安全工作坊示例)

使用说明(简要概览,便于快速上手与理解工作流)

  • 项目简介

    • 该仓库包含若干 MCP 服务器实现与示例,覆盖从基础的无认证示例到带有 Bearer Token、OIDC/KMS 等认证、以及输出脱敏的完整场景,旨在展示 MCP 的核心能力与安全实践路径。
  • 主要功能点

    • 提供 MCP 服务器端的核心能力:以 JSON-RPC/流式传输方式处理请求,暴露工具、资源、提示模板等“上下文”内容供 LLM 使用。
    • 资源与工具管理:服务器端托管资源(Resources)、工具(Tools),以及 PROMPT 模板,用于驱动 LLM 的对话流程与操作。
    • 多传输与可观测性:内置对流式传输(Streamable HTTP)、HTTP/REST 调用,另外集成 Azure Monitor/OpenTelemetry 以实现日志、追踪与告警。
    • 安全与合规:包含对 MCP 请求的快速正则筛选、Azure Content Safety 的 Prompt Shields 调用(异步),PII 与凭据脱敏(redaction),并通过 PRM(Protected Resource Metadata)实现 OAuth 授权元数据发现。
    • 安全演示与防护练习:提供了 Vulnerable/Secure 的对照示例、输出脱敏演示、以及基于 CAMPS 的安全工作坊脚本和测试用例。
  • 安装步骤(简化版)

    • 依赖环境:Python3、Node.js(若涉及前端/工作流脚本)、可选的 Azure 依赖与 OpenTelemetry、uvicorn、FastAPI 等。
    • 克隆仓库并进入目标分支/场景目录,例如:
      • Camp 4 安全工作流与 MCP 服务器集合
      • Camp 4 安全函数(security-function-v2)等
    • 安装依赖(示例命令仅为指示,不给出代码实现细节,实际请参考各自子目录的 README/要求)
    • 运行服务器(示例命令在各自服务器入口脚本中实现,常见方式如直接执行 server.py,或通过 uvicorn 启动 FastAPI 应用)
    • 客户端连接演示:MCP 客户端通过配置的服务器地址与传输协议连接到服务器的 /mcp 路径,执行初始化、调用工具、读取资源等操作。
  • 服务器配置(MCP 客户端需要的最小信息,JSON 格式示例) { "server_name": "Sherpa MCP Server - Camp 4", "command": "python3", "args": [ "camps/camp4-monitoring/security-function-v2/sherpa-mcp-server/src/server.py" ], "description": "启动 Sherpa Camp 4 的 MCP 服务器,暴露 /mcp 路径的流式 HTTP 接口供 MCP 客户端调用", "env": { "PORT": "8000", "APPLICATIONINSIGHTS_CONNECTION_STRING": "<可选,若启用 Azure Monitor>" } }

    注释说明

    • server_name: MCP 服务器的名称标识,便于客户端在管理面板中识别。
    • command/args: 启动服务器的命令及参数,路径指向仓库中的实际启动脚本。
    • description: 对应服务器的简短描述,帮助理解该实例的用途。
    • env: 启动时可选的环境变量,包含端口、监控、以及其他依赖配置。
    • 以上配置仅为示例,实际部署可按具体环境与容器编排工具进行调整。
  • 基本使用方法

    • 启动服务器后,MCP 客户端应按 MCP 文档配置的服务地址与传输协议建立连接(如 Streamable HTTP)。
    • 客户端发送初始化请求,列出工具和资源,并按需要调用工具、读取资源或获取提示模板。
    • 如需输出脱敏,请对 MCP 响应进行后处理,或使用服务端自带的 sanitize-output 端点进行字段级脱敏。
    • 如需对接监控与日志,请确保 Azure Monitor/OpenTelemetry 等组件已正确配置,以便在日志分析工具中实现告警和可观测性。

服务器信息