返回市场
ai安全-mcp中继

ai安全-mcp中继

作者:PaloAltoNetworks30 星标更新:2025-10-16

项目介绍

Prisma AIRS MCP 安全中继

由 Palo Alto Networks 提供

<!--TOC--> <!--TOC--> <a id="overview" href="#overview">

概述

</a>

pan-mcp-relay 是一个增强安全性的 模型上下文协议 (MCP) 中继(代理)服务器,为 MCP 客户端提供实时的 AI 威胁防护,构建于 [Prisma AIRS AI 运行时 API 截获]。

pan-mcp-relay 将帮助保护如 IDE、LLM 聊天客户端和 AI 代理等 MCP 客户端免受有害的 MCP 服务器工具威胁,自动扫描并阻止各种威胁,包括提示注入、恶意 URL、不安全的输出、AI 代理威胁、敏感数据丢失等。

MCP 中继会扫描所有 MCP 服务器工具描述、工具调用参数和工具调用响应。

关于许可、入门、激活以及获取 API 认证密钥和配置文件名称,请参阅 [Prisma AIRS AI 运行时:API 截获概述] 管理文档。

先决条件

请遵循以下激活和入门指南:

  1. 在客户支持门户中创建并关联一个 部署配置文件,用于 Prisma AIRS AI 运行时 API 截获。
  2. 在 Strata Cloud Manager 中 入门 Prisma AIRS AI 运行时 API 截获
  3. 在 Strata Cloud Manager 中 管理应用程序、API 密钥、安全配置文件和自定义主题

Prisma AIRS API 使用要求

  1. API 密钥:在 Strata Cloud Manager 的入门过程中生成一个 API 密钥(参见上述入门先决条件步骤)。
    • 通过配置标志、环境变量或配置文件指定 API 密钥。
  2. AI 安全配置文件名称:这是你在 Strata Cloud Manager 的入门过程中创建的 API 安全配置文件(参见创建 API 安全配置文件的先决条件步骤)。
    • 通过配置标志、环境变量或配置文件指定配置文件名称或配置文件 ID。

[!NOTE] 您可以在 Strata Cloud Manager 中管理 API 密钥和 AI 安全配置文件。

  1. 登录到 [Strata Cloud Manager]。

  2. 导航至 见解 > Prisma AIRS > Prisma AIRS AI 运行时:API 截获

  3. 在右上角点击:

  • 管理 > API 密钥 复制、重新生成或轮换 API 密钥令牌。
  • 管理 > 安全配置文件 获取详情或更新 AI 安全配置文件。
  • 管理 > 自定义主题 创建或更新自定义主题以检测自定义主题护栏威胁。

有关详细信息,请参阅如何 [管理应用程序、API 密钥、安全配置文件和自定义主题] 的激活和入门指南。

<a id="installation" href="#installation">

安装

</a>

我们强烈推荐使用 [uv] 而不是 pippipx。试一试!你会喜欢它的。

<details><summary>安装 uv</summary>

更多安装方法请参阅 https://docs.astral.sh/uv/getting-started/installation/

独立安装程序

uv 提供了一个独立安装程序来下载和安装 uv:

=== "macOS 和 Linux"

使用 `curl` 下载脚本并通过 `sh` 执行它:

```console
$ curl -LsSf https://astral.sh/uv/install.sh | sh
```

如果您的系统没有 `curl`,可以使用 `wget`:

```console
$ wget -qO- https://astral.sh/uv/install.sh | sh
```

通过在 URL 中包含特定版本来请求特定版本:

```console
$ curl -LsSf https://astr- al.sh/uv/0.8.13/install.sh | sh
```

=== "Windows"

使用 `irm` 下载脚本并通过 `iex` 执行它:

```pwsh-session
PS> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```

更改 [执行策略](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.4#powershell-execution-policies) 允许从互联网运行脚本。

通过在 URL 中包含特定版本来请求特定版本:

```pwsh-session
PS> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/0.8.13/install.ps1 | iex"
```

!!! tip

在使用之前可以检查安装脚本:

=== "macOS 和 Linux"

    ```console
    $ curl -LsSf https://astral.sh/uv/install.sh | less
    ```

=== "Windows"

    ```pwsh-session
    PS> powershell -c "irm https://astral.sh/uv/install.ps1 | more"
    ```

或者,可以从 [GitHub](#github-releases) 直接下载安装程序或二进制文件。
</details>

如果已经安装了 uv,则可以更新它 - uv 经常发布更新,所以确保您使用的是最新版本。

uv self update
<a id="quickstart-install-and-run-via-pypi-org" href="#quickstart-install-and-run-via-pypi-org">

快速开始:通过 pypi.org 安装和运行

</a>

一行命令安装并运行 pan-mcp-relay,显示 CLI 帮助:

uvx pan-mcp-relay@latest --help

[!NOTE] 虽然这使得开始变得容易,但按照 标准安装 可以获得更快的启动时间。

<a id="standard-install" href="#standard-install">

标准安装

</a>

uv 安装到一个标准位置,该位置会在安装 uv 时自动添加到您的 $PATH 中。

在 macOS 和 Linux 上,通常位于 ~/.local/bin

# 安装到 $(uv tool dir)/pan-mcp-relay
uv tool install pan-mcp-relay@latest

# 可执行符号链接到 $(uv tool dir --bin)/pan-mcp-relay
pan-mcp-relay --help
<a id="install-the-bleeding-edge-development-version" href="#install-the-bleeding-edge-development-version">

安装最新的开发版本

</a>
uv tool install https://github.com/PaloAltoNetworks/aisecurity-mcp-relay.git
pan-mcp-relay --help
<a id="upgrade" href="#upgrade">

升级

</a>

如果您正在使用 uvx pan-mcp-relay@latest,那么您已经在使用最新版本。

要更新已安装的版本,请使用:

uv tool install --upgrade pan-mcp-relay
  1. 使用 uv 安装或升级 pan-mcp-relayuv tool install --upgrade pan-mcp-relay
  2. 创建一个包含以下内容的 mcp-relay.yaml 配置文件:
    1. Prisma AIRS API 配置
      • Prisma AIRS API 密钥
      • Prisma AIRS AI 配置文件
      • [Prisma AIRS API 端点](可选,默认为美国 Prisma AIRS API 端点)
    2. MCP 服务器
      • 支持 stdio、SSE 和可流式传输的 HTTP MCP 服务器。
    3. 运行 MCP 中继服务器
<a id="configuration" href="#configuration">

配置

</a> <a id="relay-configuration" href="#relay-configuration">

MCP 中继服务器配置

</a> <a id="configuration-precedence" href="#configuration-precedence">

配置优先级

</a>
  1. CLI 标志
  2. 环境变量
  3. .env 文件变量
  4. 配置文件

pan-mcp-relay 支持通过 --config-file 标志、MCP_RELAY_CONFIG_FILE 环境变量或在一组预设位置检测配置文件来加载配置文件:

  • --config-file (-c) CLI 标志
  • MCP_RELAY_CONFIG_FILE 环境变量
  • ./mcp-relay.yaml
  • ~/.mcp-relay.yaml
  • ~/.config/pan-mcp-relay/mcp-relay.yaml
  • ./mcp-relay.json
  • ~/.mcp-relay.json
  • ~/.config/pan-mcp-relay/mcp-relay.json
<a id="configuration-file-format" href="#configuration-file-format">

配置文件格式

</a>

一个示例 MCP 中继服务器配置文件可在存储库中的 examples/config/mcp-relay.yaml 找到。

复制或创建一个新的 mcp-relay.yaml 文件。唯一必需的部分是 mcpServers: {}

# mcpRelay 部分是可选的。
# 通过 CLI 标志或环境变量指定 API 密钥、AI 配置文件和 API 端点。
mcpRelay:
  # Prisma AIRS API 密钥(必需),支持环境变量
  apiKey: |
    ${PRISMA_AIRS_API_KEY}
  # Prisma AIRS AI 配置文件名称或 ID(必需),支持环境变量
  aiProfile: |
    your-ai-profile-name-or-id
  # 端点可选,默认值如下所示
  # endpoint: |
  #  https://service.api.aisecurity.paloaltonetworks.com

# mcpServers 部分至少需要一个 MCP 服务器。
mcpServers:
  # 示例/演示 MCP 服务器
  homebrew:
    command: brew
    args:
      - mcp-server
    # 可选工作目录,支持环境变量
    cwd: "${HOMEBREW_PREFIX}"
    # 可选环境变量,继承自父 shell
    env:
      HOMEBREW_NO_ENV_HINTS: 1
  fetch:
    command: uvx
    args:
      - mcp-server-fetch

  # filesystem:
  #   command: npx
  #   args:
  #     - -y
  #     - '@modelcontextprotocol/server-filesystem'
  #     - /var/tmp/change/this/path
  #     # 命令行参数支持环境变量
  #     - "${XDG_PICTURES_DIR}"
<a id="environment-variables" href="#environment-variables">

环境变量

</a>

除了 CLI 标志和配置文件外,pan-mcp-relay 还支持通过以下环境变量设置配置:

# Prisma AIRS API 必需
PRISMA_AIRS_API_KEY=YOUR_API_KEY
# Prisma AIRS API 必需
PRISMA_AIRS_AI_PROFILE=YOUR_AI_PROFILE_NAME

# 可选,默认为 https://service.api.aisecurity.paloaltonetworks.com
PRISMA_AIRS_API_ENDPOINT=https://service.api.aisecurity.paloaltonetworks.com
# 请参阅 https://pan.dev/prisma-airs/scan/api/#scan-api-endpoints 获取其他区域 API 端点

# 显示所有其他环境变量的默认值
MCP_RELAY_CONFIG_FILE=~/.config/pan-mcp-relay/mcp-relay.yaml
MCP_RELAY_TRANSPORT=stdio
# SSE 传输模式主机
MCP_RELAY_HOST=127.0.0.1
# SSE 传输模式端口
MCP_RELAY_TOOL_CACHE_TTL=86400
MCP_RELAY_MAX_SERVERS=32
MCP_RELAY_MAX_TOOLS=256
# 可选 .env 文件路径
MCP_RELAY_DOTENV=
# 支持 $PATH 样式的冒号分隔列表和环境变量。目录条目将搜索名为 `.env` 的文件
# MCP_RELAY_DOTENV=$HOME/.env:~/.config/pan-mcp-relay:$PWD

MCP_RELAY_LOG_LEVEL=INFO
<a id="mcp-client-configuration" href="#mcp-client-configuration">

MCP 客户端配置

</a>

创建一个新的配置文件 mcp-relay.json 与您的 MCP 客户端(IDE、聊天客户端或代理)一起使用。

{
  "mcpServers": {
    "pan-mcp-relay": {
      "command": "uvx",
      "args": [
        "pan-mcp-relay@latest"
      ]
    }
  }
}

为了更快的启动时间,使用 uv tool install --upgrade pan-mcp-relay 安装/升级 pan-mcp-relay,并直接使用命令名称:

{
  "mcpServers": {
    "pan-mcp-relay": {
      "command": "pan-mcp-relay"
    }
  }
}

[!CAUTION]

pan-mcp-relay 应该是您的 MCP 客户端配置文件中列出的唯一 MCP 服务器。

在这里列出的任何其他 MCP 服务器将不会被 MCP 中继的安全能力所识别。

可选地,指定额外的环境变量或 CLI 标志:

{
  "mcpServers": {
    "pan-mcp-relay": {
      "command": "uvx",
      "args": [
        "pan-mcp-relay",
        "--config-file",
        "~/.config/pan-mcp-relay/mcp-relay.yaml"
      ],
      "env": {
        "PRISMA_AIRS_AI_PROFILE": "your-ai-profile",
        "MCP_RELAY_LOG_LEVEL": "WARNING"
      }
    }
  }
}
<a id="transport-options" href="#transport-options">

传输选项

</a>

MCP 中继服务器支持标准的 MCP 传输机制:

  • stdio 传输:用于本地进程通信(默认)
  • Streamable 传输:用于基于 HTTP 的通信,支持 SSE(服务器发送事件)。
  • SSE 传输:用于向后兼容仅支持 SSE 的 MCP 客户端。
<a id="usage" href="#usage">

使用

</a> <a id="pan-mcp-relay-cli-usage" href="#pan-mcp-relay-cli-usage">

pan-mcp-relay CLI 使用

</a>
pan-mcp-relay --help
Usage: pan-mcp-relay [OPTIONS] COMMAND [ARGS]...

  运行 MCP 中继服务器。

选项:
  -k, --api-key TEXT              Prisma AIRS API 密钥 [PRISMA_AIRS_API_KEY=]
  -e, --api-endpoint TEXT         Prisma AIRS API 端点 [PRISMA_AIRS_API_ENDPOINT=]
  -p, --ai-profile TEXT           Prisma AIRS AI 配置文件名称或 ID [PRISMA_AIRS_AI_PROFILE=]
  -c, --config-file FILE          配置文件路径(yaml、json)[MCP_RELAY_CONFIG_FILE=]
  -t, --transport [stdio|sse|http]
                                  使用的传输协议 [MCP_RELAY_TRANSPORT=]  [默认: stdio]
  -h, --host TEXT                 HTTP/SSE 服务器主机 [MCP_RELAY_HOST=]  [默认: 127.0.0.1]
  -p, --port INTEGER              HTTP/SSE 服务器端口 [MCP_RELAY_PORT=]  [默认: 8000]
  -TTL, --tool-registry-cache-ttl INTEGER
                                  工具注册表缓存 TTL(秒)[MCP_RELAY_TOOL_CACHE_TTL=]  [默认: 86400]
  -MS, --max-mcp-servers INTEGER  允许的最大下游 MCP 服务器数量 [MCP_RELAY_MAX_SERVERS=]  [默认: 32]
  -MT, --max-mcp-tools INTEGER