关于 Exa Search
Exa Search 可搜索实时网页并提取来源页面的整洁内容,适用于需要获取最新网络结果和网页正文的用户与 Agent。
主要功能
- 01搜索实时网页
- 02获取页面内容
- 03提取整洁的来源文本
适用场景
- 01查找最新网络信息
- 02获取来源页面的可读内容
MCP 相关
条目将 Exa Search 标为 MCP 服务,但未说明其向 MCP 客户端公开的工具或资源。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gen.pollinations.ai/mcp/exaclaude mcp add --transport http pollinations-exa https://gen.pollinations.ai/mcp/exa{"mcpServers":{"pollinations-exa":{"type":"http","url":"https://gen.pollinations.ai/mcp/exa"}}}在 Cursor 中打开{"servers":{"pollinations-exa":{"type":"http","url":"https://gen.pollinations.ai/mcp/exa"}}}在 VS Code 中打开{"mcpServers":{"pollinations-exa":{"type":"http","url":"https://gen.pollinations.ai/mcp/exa"}}}{"mcpServers":{"pollinations-exa":{"serverUrl":"https://gen.pollinations.ai/mcp/exa"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://gen.pollinations.ai/mcp/exa需要授权工具
详细介绍
| 名称 | 描述 | 作者 |
|---|---|---|
| 🎮 Tiny Fighter Arena | 用一句话描述一名格斗者,AI 会据此设计出完整角色,然后让它参加一场带解说的短程战斗,逐级攀登五阶阶梯。一句话输入(一个会在打雷前道歉的害羞风暴云…… | @kreggscode |
| 💬 Radio Bloom | Radio Bloom 是一个可随时复制的语音角色体验场。访客使用自己的 Pollen 登录,然后与三个由 Pollinations 聊天、转录和语音功能驱动的 AI 角色交谈或发送文字。 | @ismailbanouigu |
| 🎮 One Line Arena | 用一句话描述一名格斗者。Pollinations 会据此设计完整角色:姓名、称号、肖像、属性、三个招式、一个怪癖、一个弱点和一句口头禅。然后让该角色参加一场短程战斗…… | @Drjacky |
| 🎬 AI 广告视频生成器 | AI Ad Video Maker 是一款 Windows 桌面应用,可制作 7–10 秒的广告视频,包含 AI 生成的脚本、画面、配音、字幕和背景音乐。支持 21 种语言、多种…… | @zee7lubricantsoperations-collab |
| 🖼️ 快速广告海报 | 面向马来西亚小型卖家的马来语广告海报制作工具。用户输入产品、标题和优惠信息,选择样式和尺寸(信息流、快拍、横幅),还可上传产品照片,随后即可获得可直接使用的…… | @Syafixit |
| 🖼️ Pollinations 模型测试器 | 该应用是 Pollinations.ai 模型测试器——一个基于浏览器的单文件体验场,可并排比较 Pollinations 文本模型。用户可以输入任意模型 ID…… | @scriptsnsenses-sys |
| 🖼️ Teapot Art | 单页图像生成器:用文字描述想要的内容,即可生成图片。它是单个静态 HTML 文件,无需构建步骤,也没有依赖项。生成过程通过 Pollinations 图像 API 完成;用户密钥…… | @SvirepyiBambr |
| 🖼️ StyleLens AI | 使用 POLLINATIONS AI,即时转换图像风格并进行自定义艺术编辑。Restyle 是一个深色单页工作室:上传照片,从 12 种风格中选择,或描述…… | @nalnd1 |
| 🖼️ Pollen Postcard | 将一段小小的回忆变成精美的插画明信片。Pollinations 撰写标题和简短寄语,然后生成相配的方形图片。访客通过 BYOP 连接,并批准 1 Pollen 预算…… | @ismailbanouigu |
| 💬 Shimi Bechor (Firstborn Greeter) | 一个迎宾 Agent,负责欢迎访客并介绍一个小型 Agent 网络(其章程、公共公告板和 API)。它使用当前的 Pollinations 集成:仅限浏览器的 Connect User Wallets (BYOP),并…… | @sunraz2 |
🚀 统一 API
https://gen.pollinations.ai 提供一个 API,支持文本、图像、音频、视频、3D 和嵌入。
包含内容
- 统一端点:通过
gen.pollinations.ai上的单一 API 进行所有生成 - Pollen 积分:简单的按需付费系统($1 ≈ 1 Pollen)
- 所有模型,一处获取:Flux、GPT、Claude、Gemini、Seedream 等
- API 密钥:用于模型调用的密钥,以及用于追踪 BYOP 应用的应用密钥。
- CLI:供人类和 AI Agent 使用的
npx @pollinations/cli(源码)
前往 enter.pollinations.ai 开始使用,并查看 API 文档
🆕 最新消息
Barbara 可以跟进群聊 Oct 25
将 Barbara 的 Telegram 群组设置为 Every message,这样她无需每次都被提及即可阅读对话。只有在有实用内容可补充时,她才会回复未提及她的消息。所有人都可以使用 My Apps Oct 25
现在,每个已登录的账户都可以打开 My Apps,包括没有已列出应用的账户。该页面提供提交应用的方式,并说明通过审核的应用会如何展示。Discord 中的 Model Monitor 链接 Oct 25
Model Monitor 链接现在会在 Discord 中显示嵌入内容,并提供直达模型健康状况和评测的按钮。Tripo P2 文本转 3D Oct 24
使用 alpha 阶段、仅限付费用户的tripo3d/p2模型,将最长 1,024 个字符的文本提示词转换为带有 PBR 纹理的 GLB 网格。该模型不接受图像输入。Qwen Image 2.1 Pro Oct 24
使用需付费余额的模型qwen/qwen-image-2.1-pro生成或编辑图像。Alibaba 路由最多接受 10 张参考图像,尺寸最高为 2560×2560;其备用路由最多接受 4 张参考图像,对于 2560×2560 的请求可能返回 2048×2048 的图像。FLUX 3 Max 视频 Oct 24
根据文本或最多两张用作起始帧和结束帧的图像生成 5–20 秒的视频。需付费余额的模型black-forest-labs/flux-3-max支持可选音频、720p 或 1080p 输出,以及七种纵横比。Muse Spark 1.3 Oct 24
使用仅限付费用户的meta/muse-spark-1.3处理文本和图像输入、推理及工具。其上下文窗口为 1,048,576 个 token;Muse Spark 1.2 仍是独立模型。实验性 Glyph Cluster Oct 24
试用stealth/glyph-cluster,用于编码、长上下文推理和自动调用工具。处于 stealth 阶段期间,Quest 和 Paid 用户可以免费使用,但每分钟最多 8 个请求。其提供商可能会使用提示词和回复进行训练,且不提供零数据保留。Nemotron 3.5 Super VL Oct 24
向仅限付费用户的nvidia/nemotron-3.5-super-vl发送文本或图像。它支持工具、推理、结构化输出,以及 262,144 个 token 的上下文窗口。Mercury 3 Oct 24
使用需付费余额的inception/mercury-3处理带有工具和推理功能的文本请求,其上下文窗口为 1,000,000 个 token。其配置的最大输出为 131,072 个 token;结构化输出不在其支持的参数范围内。
在 enter.pollinations.ai 查看更多新闻 →
🌱 简介
pollinations.ai 是一家总部位于柏林的开源生成式 AI 平台,已有 500 多个社区项目使用。它提供文本、图像、视频、音频、3D 和嵌入向量生成 API。我们的代码和开发讨论均公开。支持者帮助为项目提供资金。
🚀 主要功能
- 🔓 100% 开源:代码、决策和路线图全部公开
- 🤝 由社区构建:已有 500 多个项目使用我们的 API
- 🌱 Pollen 任务:完成任务即可赚取 Pollen
- 🖼️ 图像生成:文本生成图像和图像编辑
- 📝 文本生成:聊天、推理、视觉、函数调用和结构化输出
- 🎬 视频生成:文本生成视频和图像生成视频
- 🎵 音频:文本转语音和语音转文本
- 🧊 3D 生成:文本生成 3D 和图像生成 3D
- 🎙️ 实时 API:兼容 OpenAI 的 WebSocket,用于流式对话
- 🔢 嵌入向量生成:语义搜索、检索和相似度匹配
- 🤖 托管 Agent:将提示词、基础模型和可选的 Pollinations 工具组合成可复用的模型
- 📦 沙盒:为你或你的 Agent 提供云端 Linux 计算机,可通过 SSH 或 VS Code 连接
- 🌐 站点:在
<name>.pollinations.app免费托管静态网站 - 🎣 易于使用的软件包(软件包)
指南
| 指南 | 用途 |
|---|---|
| 连接用户钱包(BYOP) | 让用户使用自己的 Pollen 付款 |
| 发布 Agent | 发布托管 Agent |
| 发布模型 | 连接你的模型端点 |
| 沙盒 | 在虚拟机中运行代码 |
| 站点 | 在 .pollinations.app 托管静态网站 |
| 编码工具框架 | 连接编码助手 |
| MCP 服务 | 让 Agent 使用工具 |
| 命令行工具 | 在终端中使用 Pollinations |
🤖 托管 Agent
无需托管 Agent 服务,即可构建可复用的文本 Agent。选择系统提示词和基础模型,还可为其配置 Pollinations 工具,然后像调用其他模型一样,通过兼容 OpenAI 的 API 调用它。
- 私有或公开:将 Agent 设为仅所有者可用,或在获得社区发布者权限后将其公开。
- 标准模型 API:使用其
owner/agent-name模型 ID 调用已注册的 Agent。 - 控制面板、命令行工具或 API:通过 我的模型、
polli agents或/account/agents管理 Agent。
有关设置和计费行为,请参阅发布 Agent。
🛠️ 编码工具框架
在 Pollinations 模型上运行 Bloom CLI、DeepSeek Harness、Hermes Agent、OpenCode、Pi、Prime Agent 和 tgpt 等工具。polli harness 会修改工具自身的配置,使其使用专用密钥调用 Pollinations,并在执行 off 时恢复配置。
npx @pollinations/cli harness dsh on
有关支持的工具框架以及如何添加工具框架,请参阅编码工具框架。
🧩 社区模型
社区成员将自己的 OpenAI 兼容文本、图像、图像编辑和语音转文本端点接入 Pollinations。
- 托管自己的模型:按照 发布模型 中的说明测试并注册上游端点,然后将其设为私有或发布到目录中。
- 自动回退路由:最多指定三个兼容的备用模型,这样即使上游模型宕机,生成也能继续进行。
- 发现并监控:通过 gen.pollinations.ai/v1/models 浏览社区模型,并在 model-monitor.pollinations.ai 查看实时运行状况和社区排行榜。
如需了解基于此构建应用的计费详情,请参阅 连接用户钱包。
🚀 入门
快速入门(3 步)
1️⃣ 获取 API 密钥
在 enter.pollinations.ai 注册并生成密钥。
2️⃣ 选择要生成的内容
Pollinations 支持:
- 🖼 图像
- 📝 文本
- 🔊 音频
- 🎬 视频
- 🧊 3D
- 🔢 嵌入
3️⃣ 发送第一个请求
使用下方任一示例,几秒内即可生成第一个 AI 输出。
图像生成
curl -H "Authorization: Bearer YOUR_API_KEY" 'https://gen.pollinations.ai/image/a%20beautiful%20sunset' -o image.jpg
也可以访问 pollinations.ai/play 体验交互功能。
文本生成
curl 'https://gen.pollinations.ai/text/Hello%20world?key=YOUR_API_KEY'
音频生成
简单的 GET 端点:
curl 'https://gen.pollinations.ai/audio/Hello%20from%20Pollinations?voice=nova&key=YOUR_API_KEY' -o speech.mp3
兼容 OpenAI TTS:
curl 'https://gen.pollinations.ai/v1/audio/speech' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{"model": "openai/tts-1", "input": "Hello from Pollinations!", "voice": "nova"}' \
-o speech.mp3
可用语音:alloy、echo、fable、onyx、nova、shimmer,以及 30 多种 ElevenLabs 语音。
语音转文本:
curl 'https://gen.pollinations.ai/v1/audio/transcriptions' \
-H "Authorization: Bearer YOUR_API_KEY" \
-F [email protected] \
-F model=openai/whisper-large-v3
视频生成
curl 'https://gen.pollinations.ai/video/a%20sunset%20timelapse%20over%20the%20ocean?key=YOUR_API_KEY' -o video.mp4
使用 duration 设置视频时长,使用 aspectRatio 设置方向,并通过 image[0]/image[1] 传入起始/结束参考帧。请参阅 gen.pollinations.ai/video/models 上的视频模型及其功能。
3D 生成
curl 'https://gen.pollinations.ai/3d/a%20low-poly%20treasure%20chest?model=microsoft/trellis-2&resolution=low&key=YOUR_API_KEY&image=IMAGE_URL' -o model.glb
对于图像转 3D 模型,请通过 image 参数传入参考图像 URL(将 image= 放在 URL 末尾,或对其进行 URL 编码)。请参阅 gen.pollinations.ai/3d/models 上的可用 3D 模型。
嵌入
curl 'https://gen.pollinations.ai/v1/embeddings' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{"model": "openai/text-embedding-3-small", "input": "Hello world!"}'
传入一个字符串或最多包含 32 个字符串的数组(文本或多模态内容部分)。请参阅 gen.pollinations.ai/embeddings/models 上的可用嵌入模型。
Pollinations CLI
直接在终端中生成文本、图像、音频、视频等内容:
npx @pollinations/cli gen image "cyberpunk city at night" --model black-forest-labs/flux.1-schnell --output city.png
npx @pollinations/cli gen text "Explain quantum tunneling in one sentence"
npx @pollinations/cli gen audio "Hello world" --voice nova --output speech.mp3
npx @pollinations/cli gen video "a waterfall in slow motion" --duration 5 --output clip.mp4
npx @pollinations/cli gen transcribe speech.mp3
全局安装并使用较短的 polli 命令:npm install -g @pollinations/cli。运行 polli models 列出模型,运行 polli auth login 进行身份验证,运行 polli docs 在终端中查看完整 API 参考。
实时 API
通过兼容 OpenAI 的 WebSocket 流式传输 AI 响应:
wss://gen.pollinations.ai/v1/realtime?model=openai/gpt-realtime-2.1&key=pk_YOUR_API_KEY
浏览器客户端通过查询参数(?key=)传递密钥;服务端客户端则可以改用 Authorization: Bearer 标头。
MCP 服务
将 Streamable HTTP 客户端连接到托管的 Pollinations MCP 服务:
https://gen.pollinations.ai/mcp/pollinations
请在 Authorization: Bearer 标头中发送 Pollinations API 密钥。完整托管目录请参阅
MCP 服务文档。
🔐 身份验证
在 enter.pollinations.ai 获取 API 密钥
关键类型
| 密钥 | 前缀 | 用途 | 速率限制 | 状态 |
|---|---|---|---|---|
| 应用密钥 | pk_ | 浏览器、移动应用、公开客户端 | 创建时设置预算和权限 | 稳定 |
| 密钥 | sk_ | 仅限服务端使用 | 无速率限制 | 稳定 |
⚠️ 切勿在客户端代码、git 仓库或公开 URL 中暴露
sk_密钥
💡 正在构建应用? 使用 连接用户钱包:用户为自己的使用付费,你无需支付任何费用
模型限制
每个 API 密钥都可以限定为某些模型类别或特定模型。在 enter.pollinations.ai 创建密钥时,你可以:
- 允许所有模型:密钥可用于任何可用模型
- 限制为特定类别:例如,仅限
image,或同时限于image和text。密钥可用于所属类别中的所有模型,包括之后新增的模型 - 限制为特定模型:通过 API 或
polli keys update <id> --models black-forest-labs/flux.1-schnell tongyi-mai/z-image-turbo设置;模型 ID 仅允许使用对应模型
使用
curl 'https://gen.pollinations.ai/image/a%20cat?key=YOUR_KEY'
环境变量(最佳实践):
export POLLINATIONS_API_KEY=sk_...
有关身份验证的详细信息,请参阅完整 API 文档。
🖥️ 使用方法
Web 界面
访问在线体验区,即可在浏览器中生成内容。
以下是一些可生成内容的示例:
🛠️ 集成
SDK
查看我们的 Pollinations SDK,了解 Node.js、浏览器和 React 集成。
OpenAI SDK 兼容性
API 兼容 OpenAI。将官方 OpenAI SDK 中的基础 URL 设置为 https://gen.pollinations.ai/v1。
Node.js:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://gen.pollinations.ai/v1",
apiKey: "YOUR_API_KEY",
});
const response = await client.chat.completions.create({
model: "openai/gpt-5.4-nano",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.choices[0].message.content);
Python:
from openai import OpenAI
client = OpenAI(base_url="https://gen.pollinations.ai/v1", api_key="YOUR_API_KEY")
response = client.chat.completions.create(
model="openai/gpt-5.4-nano",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)
其他 OpenAI SDK 也可使用:Go、Java、.NET、Rust(async-openai,社区项目),以及 Vercel AI SDK 等兼容框架。
Vercel AI SDK:
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
import { generateText } from "ai";
const pollinations = createOpenAICompatible({
name: "pollinations",
baseURL: "https://gen.pollinations.ai/v1",
apiKey: "YOUR_API_KEY",
});
const { text } = await generateText({
model: pollinations.chatModel("openai/gpt-5.4-nano"),
prompt: "Hello!",
});
console.log(text);
流式传输、图像和嵌入示例:API 文档 → Vercel AI SDK。
架构
%%{init: {'theme': 'dark', 'themeVariables': { 'background': '#1a1a1a', 'primaryColor': '#2a2a2a', 'primaryBorderColor': '#555555', 'primaryTextColor': '#eeeeee', 'lineColor': '#00e5ff', 'clusterBkg': 'transparent', 'clusterBorder': '#888888', 'fontSize': '13px', 'fontFamily': 'Inter, system-ui, sans-serif'}}}%%
graph LR
subgraph CLIENTS["Clients / Apps"]
Q[Bots - Discord, Telegram, WhatsApp]
N[30+ Mobile and Web Apps]
A[pollinations.ai Web Frontend]
R[AI Agents - Qwen, Sillytavern, ...]
AI[AI Assistants - Claude]
MCP[MCP Server]
end
AI --> MCP
Q --> GEN
N --> GEN
A --> GEN
R --> GEN
MCP --> GEN
GEN["gen.pollinations.ai: Edge Router + Generation Worker"]:::cfWorker -->|auth and billing| ENTER["enter.pollinations.ai: Auth Gateway + Billing"]:::cfWorker
GEN --> IMG["Image: gen Worker dispatch to providers / GPU backends"]:::cfWorkerLight
IMG --> D["Flux, Z-Image, Seedream, ...: GPU VMs"]:::gpuNode
GEN --> TXT["Text: Portkey multi-provider"]:::provider
GEN --> VID["Video: Wan / Veo / Seedance"]:::provider
GEN --> AUD["Audio: ElevenLabs / OVH (Whisper)"]:::provider
style CLIENTS fill:none,stroke:#888,stroke-width:2px,stroke-dasharray: 5 5
linkStyle default stroke-width:3px,stroke:#00E5FF
classDef cfWorker fill:#E65100,color:#fff,stroke:#FFB300,stroke-width:2px,font-weight:bold
classDef cfWorkerLight fill:#BF360C,color:#fff,stroke:#FFB300,stroke-width:1px
classDef gpuNode fill:#064E3B,stroke:#34D399,color:#ECFDF5,stroke-width:2px
classDef provider fill:#1E3A8A,stroke:#60A5FA,color:#EFF6FF,stroke-width:1px
🔮 未来发展
我们正在探索:
- 数字分身:创建由 AI 驱动的交互式虚拟形象
- 音乐视频生成:将 AI 生成的视觉内容与音乐相结合
- 实时 AI 驱动的视觉体验:例如我们的 Dreamachine 项目
🌍 我们的愿景
我们希望 AI 工具能够:
-
开放且易用:通过贡献赚取 Pollen,无需信用卡
-
透明且合乎伦理:检查我们的代码,并讨论平台的运作方式
-
由社区驱动:与其他开发者、创作者和 AI 爱好者一起构建工具
-
互联互通:通过共享 API 组合模型和服务
-
不断演进:在保持平台开放且易用的同时,增加新功能
🤝 社区与开发
你可以通过多种方式为 pollinations.ai 做出贡献:
-
编码助手:创建 GitHub issue,描述一项可交由 Polli 助手处理的功能。你可以提出更改建议,无需编写代码。
-
项目投稿:你用 pollinations.ai 构建了什么项目吗?使用我们的应用投稿模板,与社区分享,并让项目展示在我们的 README 中。
-
功能请求与错误报告:有想法或发现了错误?提交 issue 告诉我们。我们的团队和 Polli 助手会进行审核。
-
参与社区:加入我们的 Discord 社区,以便:
- 分享你的创作
- 获取支持并帮助他人
- 与其他 AI 爱好者合作
- 在创建 issue 前讨论功能构想
如有任何问题或需要支持,请访问我们的 Discord 频道,或在我们的 GitHub 仓库中创建 issue。
🗂️ 项目结构
主要文件夹如下:
-
pollinations.ai/:Pollinations.ai 网站的主要 React 应用。 -
gen.pollinations.ai/:用于 API 路由、身份验证移交、文本生成和缓存的 Cloudflare Worker。 -
enter.pollinations.ai/:身份验证网关和计费功能:API 密钥、Pollen 积分和套餐结账。 -
shared/:各服务共用的身份验证、模型注册表、IP 队列和实用工具。 -
apps/:在此仓库中维护的应用。 -
operations/:内部仪表板、监控、经济分析和基础设施,包括 GPU 集群。 -
media.pollinations.ai/:媒体上传服务:上传文件并获取可用于 Pollinations 模型的 URL,另提供公开的标签图库。 -
operations/social/:自动化社交媒体工作流(X、LinkedIn、Instagram、Reddit、Discord)。 -
packages/polli-cli/:供个人和 AI Agent 使用的 Pollinations CLI。 -
packages/sdk/:适用于 Pollinations.ai 的 SDK NPM 库,内含可直接使用的 Pollinations 函数。 -
packages/mcp/:面向 Claude 等 AI 助手的 Model Context Protocol (MCP) 服务,可直接生成图像。 -
opencode-pollinations-plugin:由社区成员 @fkom13 开发的插件,可将 OpenCode 与 Pollinations 模型连接起来。
有关开发环境设置和环境管理,请参阅 DEVELOP.md。
🏢 支持方
pollinations.ai 由以下机构支持:
- Perplexity AI:AI 搜索和对话式答案引擎
- AWS Activate:GPU 云额度
- io.net:用于 AI 计算的去中心化 GPU 网络
- BytePlus:ByteDance 官方云服务和 AI 解决方案
- Google Cloud for Startups:GPU 云额度
- NVIDIA Inception:AI 初创企业支持
- Azure (MS for Startups):OpenAI 额度
- Cloudflare:让连接云为你所用。
- Scaleway:赋能欧洲的云服务提供商
- Modal:高性能 AI 基础设施
- Nebius:基于 NVIDIA GPU 集群的 AI 优化云基础设施
- OpenAI:前沿 AI 模型和 API
- OpenRouter:面向大模型的统一 API
- Fireworks AI:开源模型的快速推理平台
- Replicate:通过 API 运行 AI 模型
- RunPod:专为 AI 工作负载打造的 GPU 云
- OVHcloud:欧洲云和 GPU 基础设施
- Lambda Labs:用于 AI 训练和推理的 GPU 云
- ElevenLabs:AI 语音生成和文本转语音
- AssemblyAI:语音转文本和语音理解模型
- Alibaba Cloud:云计算和 AI 服务
💚 支持我们
支持 pollinations.ai 的最佳方式就是使用我们的产品!获取 API 密钥,并前往 enter.pollinations.ai 开始构建。
📣 保持联系
状态 · 新闻与常见问题 · 𝕏 Twitter · Instagram · LinkedIn · Facebook · Reddit · YouTube
📜 许可证
pollinations.ai 是根据 MIT license 授权的开源软件。
由 pollinations.ai 团队用 ❤️ 打造
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。