由 Palo Alto Networks 提供
<!--TOC--> <!--TOC--> <a id="overview" href="#overview">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 截获概述] 管理文档。
请遵循以下激活和入门指南:
<a id="installation" href="#installation">[!NOTE] 您可以在 Strata Cloud Manager 中管理 API 密钥和 AI 安全配置文件。
登录到 [Strata Cloud Manager]。
导航至 见解 > Prisma AIRS > Prisma AIRS AI 运行时:API 截获。
在右上角点击:
- 管理 > API 密钥 复制、重新生成或轮换 API 密钥令牌。
- 管理 > 安全配置文件 获取详情或更新 AI 安全配置文件。
- 管理 > 自定义主题 创建或更新自定义主题以检测自定义主题护栏威胁。
有关详细信息,请参阅如何 [管理应用程序、API 密钥、安全配置文件和自定义主题] 的激活和入门指南。
我们强烈推荐使用 [uv] 而不是 pip 或 pipx。试一试!你会喜欢它的。
更多安装方法请参阅 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">
一行命令安装并运行 pan-mcp-relay,显示 CLI 帮助:
uvx pan-mcp-relay@latest --help
<a id="standard-install" href="#standard-install">[!NOTE] 虽然这使得开始变得容易,但按照 标准安装 可以获得更快的启动时间。
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">
uv tool install https://github.com/PaloAltoNetworks/aisecurity-mcp-relay.git
pan-mcp-relay --help
<a id="upgrade" href="#upgrade">
如果您正在使用 uvx pan-mcp-relay@latest,那么您已经在使用最新版本。
要更新已安装的版本,请使用:
uv tool install --upgrade pan-mcp-relay
uv 安装或升级 pan-mcp-relay:uv tool install --upgrade pan-mcp-relaymcp-relay.yaml 配置文件:
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一个示例 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">
除了 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-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">
MCP 中继服务器支持标准的 MCP 传输机制:
stdio 传输:用于本地进程通信(默认)Streamable 传输:用于基于 HTTP 的通信,支持 SSE(服务器发送事件)。SSE 传输:用于向后兼容仅支持 SSE 的 MCP 客户端。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