关于 Portkey Admin MCP Server
Portkey Admin MCP Server 将 Portkey Admin API 提供给 MCP 客户端,用于管理 AI Gateway 资源,涵盖提示词、密钥、治理、分析及 MCP 服务管理等 22 个领域。
主要功能
- 01管理提示词和配置
- 02管理 API 密钥与提供商
- 03配置护栏和访问策略
- 04查看分析、日志和追踪
- 05管理 MCP 集成与服务
适用场景
- 01创建并推广提示词版本
- 02检查网关用量和性能
- 03设置 MCP 工具访问策略
MCP 相关
这是一个 MCP 服务,将 Portkey Admin API 操作作为工具提供给 MCP 客户端。可通过 PORTKEY_TOOL_DOMAINS 缩小启用的工具领域。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y portkey-admin-mcpPORTKEY_API_KEY密钥Your Portkey API key for authenticationPORTKEY_TOOL_DOMAINS密钥Optional comma-separated tool domains to expose, for example prompts,analyticsPORTKEY_BASE_URL密钥Portkey Admin API base URL. Defaults to https://api.portkey.ai/v1; point at a self-hosted gateway if needed本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
150收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| current_page | number | 否 | 分页的页码 |
| page_size | number | 否 | 每页结果数(最多 100) |
详细介绍
重要
正在积极开展兼容性开发。 Palo Alto Networks 于 2026‑05‑29 完成对 Portkey 的收购,并将 Portkey 定位为 Prisma AIRS AI Gateway 的核心。Portkey 管理 API 仍在运行,其官方 OpenAPI 和产品更新日志截至 2026 年 10 月仍在持续新增控制平面功能,因此本项目已恢复 API 覆盖工作。本项目面向兼容 Portkey 的 API(
x-portkey-api-key),而非直接面向 Prisma AIRS/Strata Cloud Manager。Palo Alto 现已发布 Prisma AIRS 管理规范,但其使用不同的身份验证方式、多个管理基础 URL,且涵盖的领域更少,因此不能直接替换PORTKEY_BASE_URL。有关支持的并行模型和适配器标准,请参阅简短的 Prisma AIRS 互操作指南。
目录
- [文档](#documentation) - [快速入门](#quick-start) - [你可以做什么](#what-you-can-do) - [API 密钥权限范围](#api-key-scopes) - [HTTP 服务(实验性)](#http-server) - [架构](https://github.com/CodesWhat/portkey-admin-mcp/blob/main/docs/ARCHITECTURE.md) - [分发与目录](./docs/DISTRIBUTION.md) - [Prisma AIRS 互操作性](./docs/PRISMA_AIRS_INTEROPERABILITY.md) - [验证发布版本](https://github.com/CodesWhat/portkey-admin-mcp/blob/main/docs/VERIFY_RELEASE.md) - [开发](#development) - [路线图](#roadmap) - [社区](#community) - [构建所用技术](#built-with) - [贡献](https://github.com/CodesWhat/portkey-admin-mcp/blob/main/CONTRIBUTING.md) - [治理](https://github.com/CodesWhat/portkey-admin-mcp/blob/main/GOVERNANCE.md) - [安全保障](https://github.com/CodesWhat/portkey-admin-mcp/blob/main/SECURITY-ASSURANCE.md) - [完整工具列表 — ENDPOINTS.md](./ENDPOINTS.md)文档
| 资源 | 链接 |
|---|---|
| 工具参考 | ENDPOINTS.md |
| 兼容性与弃用项 | COMPATIBILITY.md |
| 更新日志 | CHANGELOG.md |
| 路线图 | ROADMAP.md |
| 架构 | 架构 |
| 部署 | HTTP 配置,Vercel 指南 |
| 分发 | 目录与发布记录,验证发布版本 |
| Prisma AIRS | 互操作性指南 |
| 贡献与治理 | CONTRIBUTING.md,GOVERNANCE.md,行为准则 |
| 安全 | 报告政策,保障案例 |
快速入门
你需要一个具有适当权限范围的 Portkey API 密钥。请在 Portkey 控制台的 API Keys 页面获取。
版本 0.15.0 使用 MCP SDK v2,并在同一端点提供协议修订版 2026-07-28 及更早版本的
客户端支持。此版本不再支持 HTTP 会话和重放功能;
过时的设置会发出警告并被忽略。从 0.14.x 升级前,请参阅
兼容性与弃用项。
Claude Code
claude mcp add -e PORTKEY_API_KEY=your_key portkey-admin -- npx -y portkey-admin-mcp
Cursor / Windsurf / VS Code
将以下内容添加到你的 MCP 配置(.cursor/mcp.json、.windsurf/mcp.json 或 .vscode/mcp.json):
{
"mcpServers": {
"portkey-admin": {
"command": "npx",
"args": ["-y", "portkey-admin-mcp"],
"env": {
"PORTKEY_API_KEY": "your_api_key"
}
}
}
}
直接运行
PORTKEY_API_KEY=your_key npx -y portkey-admin-mcp
如需在 stdio 客户端中仅开放一部分特定工具,请设置 PORTKEY_TOOL_DOMAINS:
PORTKEY_API_KEY=your_key \
PORTKEY_TOOL_DOMAINS=prompts,analytics \
npx -y portkey-admin-mcp
限定域不仅能控制访问权限,也是降低上下文成本的最有效方式。tools/list
采用分页方式;客户端遍历所有页面并跟进 nextCursor 后,完整的 194 个工具目录约为
400 KB。将范围缩小到客户端实际需要的域,可以按大致相同比例减少数据量。
从源代码构建
git clone https://github.com/CodesWhat/portkey-admin-mcp.git
cd portkey-admin-mcp
npm install && npm run build
然后使用此配置:
{
"mcpServers": {
"portkey-admin": {
"command": "node",
"args": ["/path/to/portkey-admin-mcp/build/index.js"],
"env": {
"PORTKEY_API_KEY": "your_api_key"
}
}
}
}
你可以做什么
| 类别 | 工具数 | 示例 |
|---|---|---|
| 提示词 | 14 | 创建、版本管理、渲染、执行、迁移和推广提示词 |
| 提示词片段 | 7 | 可复用的提示词片段,支持版本管理 |
| 提示词标签 | 5 | 组织提示词版本(生产、预发布、开发) |
| 配置 | 6 | 网关路由、缓存、重试、负载均衡 |
| 部署 | 5 | 注册、检查、更新和归档可自托管的 Gateway |
| API 密钥 | 6 | 创建、轮换和管理受限范围的 API 密钥 |
| 密钥引用 | 5 | 管理 AWS、Azure 和 HashiCorp 外部密钥引用 |
| 虚拟密钥 | 5 | 管理提供商访问密钥 |
| 集合 | 5 | 按应用或项目对提示词分组 |
| 提供商 | 5 | 管理 AI 提供商配置 |
| 集成 | 11 | 提供商集成、模型定价、模型、工作区访问 |
| MCP 集成 | 10 | 外部 MCP 工具集成 |
| MCP 服务 | 12 | MCP 服务注册表、功能和实时连接 |
| 防护措施 | 14 | 大模型和 MCP 工具策略、服务映射、组织默认设置、工作区排除项 |
| 访问策略 | 5 | 允许或拒绝用户、群组和 Agent 访问 MCP 工具及提供商模型 |
| 出站允许列表 | 5 | 组织对自定义出站主机的信任设置 |
| 用量限制 | 7 | 成本和令牌消耗限制 |
| 速率限制 | 5 | 请求频率控制 |
| 分析 | 25 | 成本、延迟、错误、令牌、缓存、反馈、提供商、MCP、A2A 和工作区群组;组织范围和工作区排除项 |
| 日志记录 | 10 | 日志检索、摄取、导出和字段限制 |
| 追踪 | 2 | 创建和更新追踪上的反馈 |
| 用户和工作区 | 24 | 用户管理、邀请、工作区成员、SCIM 群组映射 |
| 审计 | 1 | 审计日志访问 |
22 个工具域中共有 194 个工具。 完整列表及说明请参见 ENDPOINTS.md。
Portkey 的新产品术语日益倾向于将提供商凭据称为 Providers,但当前 Admin API 仍同时提供 /virtual-keys 和 /providers。此服务保留这两个域:Virtual Keys 用于管理提供商访问凭据,Providers 用于管理工作区提供商配置。
API 密钥权限范围
大多数工具都可以使用启用了 Select All 权限的工作区范围服务密钥。该密钥适用于提示词、配置、虚拟密钥/API 密钥、提供商、防护措施、工作区集成、MCP 服务、速率/用量限制、日志、提示词补全以及工作区用户管理。
如果工具返回 Portkey 错误 AB03,并带有 403 状态码,这意味着缺少权限范围,而不是端点故障。
受企业版限制的工具及其他权限范围要求
### 企业版限定工具(56 个)以下工具需要仅在 Portkey Enterprise 计划中提供的组织级范围。在工作区计划中调用时会返回 403 You do not have enough permissions to execute this request。这些工具的描述会包含后缀 Enterprise-gated. Returns 403 on non-Enterprise Portkey plans.,让 MCP 客户端提前知晓。
| 区域 | 工具 | 所需范围 |
|---|---|---|
| 分析(25 个) | get_cost_analytics、get_request_analytics、get_token_analytics、get_latency_analytics、get_error_analytics、get_error_rate_analytics、get_cache_hit_latency、get_cache_hit_rate、get_cache_summary、get_users_analytics、get_error_stacks_analytics、get_error_status_codes_analytics、get_user_requests_analytics、get_rescued_requests_analytics、get_feedback_analytics、get_feedback_models_analytics、get_feedback_scores_analytics、get_feedback_weighted_analytics、get_analytics_group_users、get_analytics_group_models、get_analytics_group_metadata、get_analytics_group_providers、get_analytics_group_mcp、get_analytics_group_a2a、get_analytics_group_workspaces | 组织级 analytics.view |
| 部署(5 个) | list_deployments、register_deployment、get_deployment、update_deployment、archive_deployment | Enterprise 部署管理 |
| 审计 | list_audit_logs | audit_logs.list |
| 组织级集成 | get_integration、list_integration_models、list_integration_workspaces | organisation_integrations.read |
| 组织级用户 | list_all_users、get_user、get_user_stats、list_user_invites | organisation_users.list / organisation_users.read |
| 组织级护栏(6 个) | get_organisation_defaults、update_organisation_defaults、list_input_guardrail_workspace_exclusions、update_input_guardrail_workspace_exclusions、list_output_guardrail_workspace_exclusions、update_output_guardrail_workspace_exclusions | organisation_settings.read/update 和 organisation_exclusions.list/update |
| 日志导出(8 个) | create_log_export、list_log_exports、get_log_export、start_log_export、cancel_log_export、download_log_export、update_log_export、get_log_export_field_restrictions | Enterprise 日志导出 + logs.export |
| SCIM 组(4 个) | list_scim_groups、list_scim_workspace_mappings、create_scim_workspace_mapping、delete_scim_workspace_mapping | 已启用 SCIM + 组织管理员访问权限 |
其他范围要求
| 功能 | 要求 |
|---|---|
提示词补全(run_prompt_completion) | completions.write 范围 + 计费元数据(app、env) |
通过 create_api_key 创建组织级服务 API 密钥 | organisation_service_api_keys.create(Enterprise) |
HTTP 服务(实验性)
状态:HTTP 传输可在本地运行,并由集成测试套件覆盖,但它只是概念验证——此服务没有托管版本,目前也不以托管部署为目标。请使用 stdio(npx)这一受支持的传输方式。
该服务支持 Streamable HTTP,以便远程访问:
HTTP 身份验证用于控制对服务的访问,但不会模拟独立的 Portkey 租户。所有通过身份验证的主体都会使用相同的已配置 PORTKEY_API_KEY,并可调用该凭据授权的任何已启用工具和范围。对于不同信任级别,请使用范围各不相同的 Portkey 凭据和 PORTKEY_TOOL_DOMAINS 允许列表,运行独立实例或部署。
PORTKEY_API_KEY=your_key \
MCP_HOST=127.0.0.1 \
MCP_PORT=3000 \
MCP_PUBLIC_BASE_URL=https://mcp.example.com \
MCP_AUTH_MODE=bearer \
MCP_AUTH_TOKEN=your_secret \
node build/server.js
也可以通过 npx 运行(portkey-admin-mcp 软件包包含 HTTP 二进制文件):
PORTKEY_API_KEY=your_key MCP_AUTH_MODE=bearer MCP_AUTH_TOKEN=your_secret \
npx -y -p portkey-admin-mcp portkey-admin-mcp-http
仅在本地使用 HTTP 时,请将 MCP_HOST 保持为默认值 127.0.0.1。只有在确实需要接受来自本机以外的连接时(例如 Docker 或其他网络接口上的反向代理),才设置 MCP_HOST=0.0.0.0。
完整环境变量参考
| 变量 | 默认值 | 描述 | |----------|---------|-------------| | `PORTKEY_API_KEY` | (必填) | 你的 Portkey API 密钥 | | `PORTKEY_BASE_URL` | `https://api.portkey.ai/v1` | Portkey Admin API 基础 URL。Prisma AIRS/SCM URL 不兼容;携带凭据的请求绝不会自动跟随重定向 | | `PORTKEY_ALLOW_PRIVATE_BASE_URL` | — | 设置为 `true` 以允许将字面形式的 loopback/私有地址用作 `PORTKEY_BASE_URL` | | `PORTKEY_ALLOW_INSECURE_HTTP` | — | 仅当受信任的可自托管网关无法使用 HTTPS 时,才单独设置为 `true` | | `PORTKEY_TOOL_DOMAINS` | — | 服务端允许列表,包含 22 个域:`users`、`workspaces`、`configs`、`deployments`、`keys`、`collections`、`prompts`、`analytics`、`guardrails`、`limits`、`audit`、`labels`、`partials`、`tracing`、`logging`、`providers`、`secret-references`、`integrations`、`mcp-integrations`、`mcp-servers`、`access-policies`、`egress-allowlist`。HTTP `?tools=` 可以缩小范围,但不能扩大范围 | | `MCP_TOOL_DOMAINS` | — | `PORTKEY_TOOL_DOMAINS` 的回退值,仅在未设置该变量时使用 | | `MCP_TRANSPORT` | `stdio` | `stdio` 或 `http`;Docker 镜像据此选择入口点(为 HTTP 服务设置为 `http`) | | `MCP_HOST` | `127.0.0.1` | 绑定地址 | | `MCP_PORT` | `3000` | 端口 | | `PORT` | — | 端口覆盖值;设置后优先于 `MCP_PORT` | | `MCP_PUBLIC_BASE_URL` | — | 用于在 `/auth/info` 和状态页面中公布的公开绝对基础 URL;建议用于托管部署 | | `MCP_AUTH_MODE` | `none` | `none`、`bearer` 或 `clerk`(除非显式覆盖,否则 HTTP 下禁用 `none`) | | `MCP_AUTH_TOKEN` | — | Bearer 身份验证密钥 | | `CLERK_ISSUER` / `CLERK_AUDIENCE` | — | 当 `MCP_AUTH_MODE=clerk` 时必需的签发者和受众 | | `CLERK_JWKS_URL` | `/.well-known/jwks.json` | 用于验证 Clerk JWT 的 JWKS 端点;必须使用 HTTPS。仅当 JWKS 不在默认路径时设置 | | `CLERK_ALLOWED_SUBJECTS` | — | Clerk 可选的 CSV 主题允许列表;必须至少配置一项 Clerk 授权策略 | | `CLERK_ALLOWED_ORGANIZATION_IDS` / `CLERK_ALLOWED_ROLES` | — | 可选的 CSV 组织和角色限制;每项已配置的限制都必须匹配 | | `CLERK_REQUIRED_PERMISSIONS` | — | 可选的 CSV 权限列表,这些权限必须全部存在于经过验证的 Clerk JWT 中 | | `MCP_ALLOW_UNAUTHENTICATED_HTTP` | — | 仅在有意进行本地无身份验证 HTTP 调试时设置为 `true` | | `MCP_MAX_SESSIONS` | `100` | 并发 HTTP MCP 请求处理程序的最大数量(保留的名称) | | `MCP_REDIS_URL` | — | 用于共享速率限制的回退 Redis URL,优先级低于 `RATE_LIMIT_REDIS_URL`,高于 `REDIS_URL`;生产环境要求使用 `rediss://` | | `MCP_SESSION_MODE`、`MCP_SESSION_TIMEOUT`、`MCP_EVENT_*`、`MCP_REDIS_KEY_PREFIX` | 自 0.15.0 起忽略 | 旧会话/重放设置会产生仅包含名称的警告。0.14.x 的行为不变;请参阅[兼容性](./COMPATIBILITY.md)。 | | `MCP_TLS_KEY_PATH` | — | 原生 HTTPS 的 TLS 密钥 | | `MCP_TLS_CERT_PATH` | — | 原生 HTTPS 的 TLS 证书 | | `MCP_TLS_CA_PATH` | — | 原生 HTTPS 的可选 CA 证书包;仅在设置了 TLS 密钥和证书时使用 | | `MCP_SHUTDOWN_TIMEOUT_MS` | `10000` | 优雅关闭等待后强制进程退出的时长,单位为毫秒;必须为正数 | | `MCP_MAX_REQUEST_SIZE` | `1mb` | HTTP 请求体的最大大小;工具参数另有固定预算,上限为 10,000 个数组元素和对象成员(跨嵌套输入计数) | | `MCP_READY_CHECK_MODE` | `local` | `local` 或 `portkey`;`portkey` 会使 `/ready` 同时检查 Portkey 连通性 | | `LOG_LEVEL` | `info` | `debug`、`info`、`warn` 或 `error` | | `ALLOWED_ORIGINS` | — | CORS 允许列表;当 `MCP_AUTH_MODE=none` 时,也用于验证 `Host` 标头(防范 DNS 重绑定) | | `CORS_ORIGIN` | — | `ALLOWED_ORIGINS` 的旧版回退值,仅在未设置该变量时使用 | | `MCP_TRUST_PROXY` | `loopback` | Express 信任代理策略。使用精确的非负跳数或受信任的代理子网;不接受 `true`,因为这会信任来自所有对端的转发标头 | | `RATE_LIMIT_STORE` | `memory` | 多实例/无服务器部署使用 `redis`;生产环境使用内存模式时,必须设置 `RATE_LIMIT_SINGLE_PROCESS=true` | | `RATE_LIMIT_ENABLED` | `true` | 设置为 `false` 以关闭预身份验证速率限制器 | | `RATE_LIMIT_SINGLE_PROCESS` | — | 生产环境使用内存限制时,设置为 `true` 以确认采用单进程部署 | | `RATE_LIMIT_REDIS_URL` | — | 共享限制器 Redis URL,回退到 `MCP_REDIS_URL`/`REDIS_URL`;生产环境要求使用 `rediss://` | | `RATE_LIMIT_REDIS_KEY_PREFIX` | `mcp:rate-limit` | Redis 命名空间,用于原子预身份验证 IP 和主体加 IP 令牌桶 | | `RATE_LIMIT_MAX` | `60` | 每个预身份验证 IP 和主体加 IP 令牌桶中的最大令牌数 | | `RATE_LIMIT_WINDOW_MS` | `60000` | 速率限制窗口,单位为毫秒 | | `RATE_LIMIT_REFILL` | `60` | 每个窗口补充的令牌数 | | `RATE_LIMIT_MAX_BUCKETS` | `10000` | 显式内存模式下的本地桶数量上限;达到上限后,新客户端将共享溢出容量 | 生产容器必须明确选择速率限制拓扑:多实例部署时设置 `RATE_LIMIT_STORE=redis`,单个长期运行的进程则仅设置 `RATE_LIMIT_SINGLE_PROCESS=true`。Vercel 部署
Vercel 支持仅作为参考性概念验证保留——我们不运行托管部署。如需自行部署,请参阅 docs/VERCEL_DEPLOYMENT.md。
要点:
- 使用无状态请求处理和共享的原子 Redis 速率限制器(SDK v2);已弃用 GET 重放
- 需要 Clerk 或 bearer 身份验证
- 保持
MCP_TLS_*未设置(Vercel 会终止 HTTPS) - 将
MCP_PUBLIC_BASE_URL设置为你的部署 URL,确保公布的 MCP 端点始终不依赖请求标头 - Vercel 不支持 WebSocket——仅支持 Streamable HTTP/SSE
Docker
docker build -t portkey-admin-mcp .
docker run \
-e PORTKEY_API_KEY=your_key \
-e MCP_TRANSPORT=http \
-e MCP_HOST=0.0.0.0 \
-e MCP_PORT=3000 \
-e MCP_AUTH_MODE=bearer \
-e MCP_AUTH_TOKEN=your_secret \
-e RATE_LIMIT_SINGLE_PROCESS=true \
-p 3000:3000 \
portkey-admin-mcp
此示例运行一个长期运行的容器,并使用内存速率限制。多实例部署时,请使用
RATE_LIMIT_STORE=redis 和 TLS Redis URL。
健康检查端点
| 路径 | 用途 |
|---|---|
GET /health | 服务存活状态 |
GET /ready | 就绪状态(包含可选的 Portkey 连通性检查) |
GET /auth/info | 身份验证配置元数据 |
开发
npm run dev # stdio with hot reload
npm run dev:http # HTTP with hot reload
npm test # unit + contract tests
npm run test:coverage # unit + contract tests with the enforced 80% line floor
npm run test:e2e # MCP protocol tests
npm run test:http # HTTP endpoint smoke test
npm run smoke # credentialed read-only Portkey API smoke suite
npm run ci # full pipeline (lint + typecheck + coverage + build + e2e + verify)
实时冒烟测试套件会将预期的凭据范围拒绝,以及明确跟踪的托管控制平面路由缺口报告为跳过项。意外的 HTTP 响应、网络错误和响应契约失败仍会导致运行失败。
list_audit_logs 仅限 Enterprise 使用,因此除非设置了
PORTKEY_ORGANISATION_ID,否则冒烟测试套件会跳过对此路由的检查。将其设置为你的组织 ID,即可测试该路由。
必需的 CI 和发布门禁会检测每个 TypeScript 源文件,并在行覆盖率低于 80% 时失败。CI 和 Coverage 工作流报告会显示当前的行、分支和函数覆盖率。
CI 工作流
还会运行独立的 Qlty CLI,并为每次分析的提交发布 quality-reports 工件,其中包括 lint/安全结果、重复代码、复杂度和各项指标。现有的 Qlty 可维护性和覆盖率徽章仍由 Cloud 生成;本地分析不会更新这些徽章。覆盖率上传和 Cloud 分析仍会消耗 Qlty 分析时长。
npm run dev:http 现在默认要求设置 MCP_AUTH_MODE=bearer 或 MCP_AUTH_MODE=clerk。如需有意进行仅限本地的无身份验证测试,请设置 MCP_ALLOW_UNAUTHENTICATED_HTTP=true。
贡献请通过拉取请求进行,并遵循
CONTRIBUTING.md 中记录的检查要求。项目决策和维护者职责记录在 GOVERNANCE.md 中。请通过
SECURITY.md 报告漏洞;有关公开威胁模型和保障说明,请参阅 SECURITY-ASSURANCE.md。
路线图
0.15.0 版本升级至 MCP SDK v2 和 2026-07-28 规范。 路线图 将已完成的工作与上游契约和租户验证门禁区分开来。MCP v2 迁移已在 0.15.0 中发布,旧版客户端仍可使用同一端点,同时会弃用会话和重放存储。请参阅兼容性和弃用事项。
社区
问题和错误报告请提交至 Issues;更广泛的讨论、想法以及有关使用该服务的帮助,请前往 Discussions。 维护中的软件包、注册表、市场和目录记录见 发行版与目录。当第三方索引更新滞后时,请以本仓库中生成的 工具目录为准。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。