mcpField
P

Portkey Admin MCP Server

本地服务
github.com/s-b-e-n-s-o-nAI 与智能体61 天前更新

关于 Portkey Admin MCP Server

Portkey Admin MCP Server 将 Portkey Admin API 提供给 MCP 客户端,用于管理 AI Gateway 资源,涵盖提示词、密钥、治理、分析及 MCP 服务管理等 22 个领域。

主要功能

  1. 01管理提示词和配置
  2. 02管理 API 密钥与提供商
  3. 03配置护栏和访问策略
  4. 04查看分析、日志和追踪
  5. 05管理 MCP 集成与服务

适用场景

  1. 01创建并推广提示词版本
  2. 02检查网关用量和性能
  3. 03设置 MCP 工具访问策略

MCP 相关

这是一个 MCP 服务,将 Portkey Admin API 操作作为工具提供给 MCP 客户端。可通过 PORTKEY_TOOL_DOMAINS 缩小启用的工具领域。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"s-b-e-n-s-o-n-portkey-admin": {
"command": "npx",
"args": [
"-y",
"portkey-admin-mcp"
],
"env": {
"PORTKEY_API_KEY": "<PORTKEY_API_KEY>",
"PORTKEY_TOOL_DOMAINS": "<PORTKEY_TOOL_DOMAINS>",
"PORTKEY_BASE_URL": "<PORTKEY_BASE_URL>"
}
}
}
}
启动命令npx -y portkey-admin-mcp
需要配置的环境变量
PORTKEY_API_KEY密钥Your Portkey API key for authentication
PORTKEY_TOOL_DOMAINS密钥Optional comma-separated tool domains to expose, for example prompts,analytics
PORTKEY_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmportkey-admin-mcp0.3.4

工具

150

收录的工具列表 · 更新于 2 周前

参数类型必填说明
current_pagenumber否分页的页码
page_sizenumber否每页结果数(最多 100)

详细介绍

Portkey 管理 MCP 图标

Portkey 管理 MCP 服务

Portkey 管理 API,作为 MCP 服务提供——涵盖提示词、配置、密钥、分析、治理、部署等领域的 194 个工具。

npm 版本 Node.js 许可证:MIT

CI OpenSSF 安全记分卡 OpenSSF 最佳实践 可维护性 代码覆盖率

npm 下载量 收录于 Awesome MCP Servers MCP 注册表 赞助


重要

正在积极开展兼容性开发。 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 服务12MCP 服务注册表、功能和实时连接
防护措施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_deploymentEnterprise 部署管理
审计list_audit_logsaudit_logs.list
组织级集成get_integration、list_integration_models、list_integration_workspacesorganisation_integrations.read
组织级用户list_all_users、get_user、get_user_stats、list_user_invitesorganisation_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_exclusionsorganisation_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_restrictionsEnterprise 日志导出 + 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。 维护中的软件包、注册表、市场和目录记录见 发行版与目录。当第三方索引更新滞后时,请以本仓库中生成的 工具目录为准。


构建所用技术

TypeScript MCP SDK Zod 4 Biome Node 24 Anthropic

SemVer Conventional Commits Keep a Changelog

在 LobeHub 和 Glama 上架:

LobeHub MCP

portkey-admin-mcp MCP 服务


MIT 许可证 · 灵感来自 r-huijts/portkey-admin-mcp-server

CodesWhat

返回顶部

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。