关于 Doodleworks MCP
Doodleworks MCP 将文章或主题拆解为一组手绘概念插图,供接入 MCP 的 AI 主机使用。它提供聊天内交互式查看器,可浏览、重绘单张图片并下载 PNG。
主要功能
- 01将主题拆分为逐张插图
- 02生成 Tinku 操作装置的概念画
- 03聊天内浏览和缩放画廊
- 04重绘单张插图并下载 PNG
- 05支持 OpenAI 或 Gemini 图像 API
适用场景
- 01为博客文章制作概念插图
- 02把社交媒体帖子转成插图组
- 03为特定受众规划讲解图集
MCP 相关
它是本地 stdio MCP 服务,提供插图规划提示词、生成与重绘工具,以及供支持 MCP Apps 的客户端显示的交互界面。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y doodleworks-mcpOPENAI_API_KEY密钥OpenAI API key (default provider). Provide this or a Gemini key.GEMINI_API_KEY密钥Gemini API key (GOOGLE_API_KEY also works). Provide this or an OpenAI key.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
3收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| title | string | 否 | 这组内容的标题。 |
| quality | enum | 否 | 图像质量(OpenAI)。较低的质量更快且成本更低。默认值取自 DOODLEWORKS_QUALITY 环境变量,或为 'low'。low | medium | high | auto |
| resolution | enum | 否 | 尺寸档位(默认 1k;2k 用于内嵌显示时占用更多资源)。1k | 2k |
| illustrations | array | 是 | 按顺序排列的插图(1-10);每张默认采用 16:9。可选的 21:9 主视觉图可放在首位。 |
| styleReference | string | 否 | 整组内容的可选绘画风格参考(仅用于风格校准——干净均匀的线条粗细、纯白背景、留白和克制;绝不采用参考图中的角色、布局或文字)。接受库 ID、data-URI 或本地路径。单张插图的 styleReference 优先;若未设置(且没有 DOODLEWORKS_STYLE_REF 环境变量),则输出引擎的纯文本风格指导。 |
详细介绍
Doodleworks MCP
在 AI 宿主中,直接将任何想法(博客文章、文章或 X 帖子)转化为手绘的「Tinku」插画,阐释其中的关键概念。
使用你自己的图像 API 密钥(OpenAI 或 Gemini) · 本地 stdio 服务 · 在宿主的聊天中翻看、重新生成和下载。
Doodleworks 可将一个想法(或整篇博客文章、文章或 X 帖子)转化为阐释其关键概念的简洁线稿插画,每张图呈现一个想法。它绝不会照字面描绘主题,而是提炼每个概念,并将其重新构想为一种低技术感的装置,由 Tinku(应用自己的角色)亲自操作:在纯白背景上勾勒自信的黑色线条,并配上少量工整的红色、橙色和蓝色手写标签。 请让你的 AI 宿主生成一组插画,Doodleworks 会渲染它们,并直接在聊天中打开一个交互式查看器:浏览插画、重新生成不满意的图片,并下载 PNG。
Claude Desktop 中的交互式查看器:浏览插画、重新生成任意图片,并下载 PNG(可选在图片上添加标题)。
✨ 亮点
- 🖐️ 手绘风格,每张图表达一个创意: 白底上的简洁黑色线稿,配以少量红色/橙色/蓝色标签;绝不绘制直白的图表或示意图。
- 🧩 表现概念,而非剪贴画: 每个关键创意都会变成一个低科技装置,由应用中的常驻角色 Tinku 亲自操作。
- 🖼️ 在聊天中交互式查看: 在支持的宿主中直接浏览、缩放、重新生成任意单张图片并下载 PNG。
- 🔑 使用你自己的密钥: OpenAI 或 Gemini。密钥保留在服务端,绝不会发送给查看器或 iframe。
- ⚡ 零基础设施: 只需一行
npx命令即可启动本地 stdio 服务。无需克隆、构建或数据库。
🚀 快速开始
无需克隆或构建:npx 会从 npm 获取已发布的 doodleworks-mcp 包并运行它。你需要一个图像 API 密钥才能渲染(仅安装不需要密钥)。
1. 获取图像密钥。 从以下选项中选择一个:
OPENAI_API_KEY:OpenAI GPT Image (默认提供方)GEMINI_API_KEY(或GOOGLE_API_KEY):Gemini 3 Pro Image(“Nano Banana Pro”)
如果你是新用户,建议从 OPENAI_API_KEY 开始:它是默认选项,下面的所有示例也都由它生成。只需设置一个;无需同时设置两个。
2. 添加到你的 AI 宿主。 将以下内容添加到宿主的 MCP 配置中(此处展示的是 Claude Desktop 的 claude_desktop_config.json;其他宿主请参阅添加到你的 AI 宿主):
{
"mcpServers": {
"doodleworks-mcp": {
"command": "npx",
"args": ["-y", "doodleworks-mcp"],
"env": { "OPENAI_API_KEY": "sk-..." }
}
}
}
3. 用自然语言提出请求。 重启宿主,然后输入:
使用 doodleworks 创建一组 6 张插画,向房主说明热泵如何为家中供暖,每张图片表达一个创意。
提示
模型会为你编写每张插画的提示词。你只需描述主题。在图形界面宿主中,图库会随查看器一起打开;在终端宿主中,你只会看到工具输出(文本摘要,而非渲染后的图片)。
🔌 添加到你的 AI 宿主
Doodleworks 是一个 MCP App:它既提供工具,也提供交互式界面。下表中的所有宿主都能运行这些工具,但只有支持 MCP Apps UI 的宿主才能渲染内嵌查看器(这正是本工具的核心)。
提示
想使用内嵌查看器? 请使用 Cursor、VS Code、Claude Desktop 或 Goose。Claude Code 和 Windsurf 可以运行这些工具,但无法显示查看器(你只能看到工具输出)。
| 宿主 | 可运行工具 | 可显示查看器 | 备注 |
|---|---|---|---|
| Cursor(2.6+) | ✅ | ✅ | 体验最流畅 |
| VS Code(1.109+) | ✅ | ✅ | Copilot Agent 模式 |
| Goose Desktop(1.19.1+) | ✅ | ✅ | 查看器为实验性功能 |
| Claude Desktop | ✅ | ✅ | 编辑配置后,先彻底退出再重新启动 |
| Claude Code | ✅ | ❌ | 终端没有 Webview |
| Windsurf | ✅ | ❌ | 仅支持工具 |
| MCPJam / basic-host(开发) | ✅ | ✅ | 查看器最可靠的运行方式 |
说明
以下所有配置都使用已发布的包(
npx -y doodleworks-mcp),因此无需克隆或构建。要改用你自己的代码副本进行开发?请将命令替换为npx -y tsx /ABSOLUTE/PATH/doodleworks-mcp/main.ts --stdio(参阅从源代码构建)。使用你已导出的任意图像密钥。
Cursor:完整查看器(Cursor 2.6+)
在项目中创建 .cursor/mcp.json(或者创建 ~/.cursor/mcp.json 以用于所有项目):
{
"mcpServers": {
"doodleworks-mcp": {
"command": "npx",
"args": ["-y", "doodleworks-mcp"],
"env": { "OPENAI_API_KEY": "${env:OPENAI_API_KEY}" }
}
}
}
然后打开 Cursor Settings → Tools & Integrations,确认 doodleworks 已启用,并在 Agent 聊天中调用它。使用 ${env:OPENAI_API_KEY} 可将密钥保留在文件之外(在 shell 中设置);也可以直接粘贴 sk-...。内嵌查看器要求 Cursor 2.6+;旧版本可以运行工具,但不会渲染查看器。
VS Code:完整查看器(VS Code 1.109+、GitHub Copilot Agent 模式)
VS Code 使用 servers 键(而不是 mcpServers),并可安全地提示输入密钥。创建 .vscode/mcp.json:
{
"inputs": [
{ "type": "promptString", "id": "openai-api-key", "description": "OpenAI API key", "password": true }
],
"servers": {
"doodleworks-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "doodleworks-mcp"],
"env": { "OPENAI_API_KEY": "${input:openai-api-key}" }
}
}
}
点击服务器条目上方的 Start(或运行 MCP: List Servers),并在提示时输入密钥,然后打开 Copilot Chat → Agent mode 并调用工具。查看器会内嵌渲染。要求 VS Code 1.109+(MCP Apps 处于预览阶段)。
Goose Desktop:完整查看器(Goose Desktop 1.19.1+,实验性)
Goose 使用 YAML。编辑 ~/.config/goose/config.yaml(Windows:%APPDATA%\Block\goose\config\config.yaml):
extensions:
doodleworks-mcp:
type: stdio
name: doodleworks-mcp
enabled: true
cmd: npx
args: ["-y", "doodleworks-mcp"]
envs:
OPENAI_API_KEY: "sk-..."
timeout: 300
也可以使用界面:Sidebar → Extensions → Add custom extension(Type:Standard IO;粘贴 npx -y doodleworks-mcp;添加密钥)。添加后重启 Goose。查看器仅支持 桌面版,MCP Apps 支持仍处于实验阶段。
Claude Desktop:完整查看器
打开 Settings → Developer → Edit Config(或在 macOS 上编辑 ~/Library/Application Support/Claude/claude_desktop_config.json,在 Windows 上编辑 %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"doodleworks-mcp": {
"command": "npx",
"args": ["-y", "doodleworks-mcp"],
"env": { "OPENAI_API_KEY": "sk-..." }
}
}
}
保存后,完全退出并重新启动 Claude Desktop(按 Cmd+Q,而不只是关闭窗口),查看器便会在聊天中内嵌渲染。(如果较旧版本只显示文本备用内容,而不显示画廊,请更新 Claude Desktop。)
Claude Code(终端):仅支持工具,不支持查看器 ❌
claude mcp add --scope project --transport stdio --env OPENAI_API_KEY=sk-... \
doodleworks -- npx -y doodleworks-mcp
(或者提交一个包含顶层 mcpServers 块的项目 .mcp.json。)终端没有 webview,因此交互式查看器无法在此渲染:你会看到工具输出,而不是画廊。请使用图形界面宿主查看器。
Windsurf:仅支持工具,不支持查看器 ❌
编辑 ~/.codeium/windsurf/mcp_config.json(Windows:%USERPROFILE%\.codeium\windsurf\mcp_config.json;如果文件不存在,请创建):
{
"mcpServers": {
"doodleworks-mcp": {
"command": "npx",
"args": ["-y", "doodleworks-mcp"],
"env": { "OPENAI_API_KEY": "sk-..." }
}
}
}
在 Cascade MCP 面板中点击 Refresh(或重启 Windsurf)。Windsurf 可以运行工具,但不会渲染 MCP Apps UI,因此查看器不会内嵌显示。
可靠地查看查看器(开发检查器) ✅,需要本地检出
最可靠的查看方式是通过 Streamable HTTP 搭配开发宿主(从克隆的仓库中运行):
pnpm start # watch-build the viewer + serve on http://localhost:3001/mcp
将 MCP Apps basic-host 或 MCPJam inspector 指向 http://localhost:3001/mcp。两者都能正确渲染查看器,也是开发和验证画廊的推荐方式。
连接服务后,只需用日常语言向你的宿主提出要求:模型会为你调用工具,并为每幅插画撰写 prompt;你无需操心。
示例提示词(粘贴到任意已连接的宿主中):
使用 doodleworks 创建一组 6 幅插画,向房主讲解热泵如何为住宅供暖,每幅图表达一个想法。
想先规划? 调用内置提示词(会显示在将 MCP 提示词显示为 /mcp__doodleworks-mcp__plan_illustrations 的宿主中):
针对主题“热泵如何为住宅供暖”运行 doodleworks 的 plan_illustrations 提示词(受众:房主,数量:6),然后根据计划调用 create_illustrations。
在图形化宿主(Cursor、VS Code、Claude Desktop、Goose)中,查看器会打开并显示图库;在 Claude Code(终端)中没有查看器,因此你只会得到工具输出(文本摘要,而不是渲染后的图像)。
工具和提示词(参考)
plan_illustrations(提示词) 将主题转化为一组可直接渲染的内容。参数:topic(必填)、audience?、count?、spine?(teaching | persuasion | report | product | knowledge-card)。create_illustrations渲染整组插画(1–10 幅,每幅都需要付费渲染),并打开查看器。每个prompt都包含一个装置 + Tinku 的动作 +Required text only:区块;服务会自动添加角色、概念引擎和整体风格。regenerate_illustration重新渲染一幅图(对应查看器中的 Regenerate 按钮)。get_illustration将每幅渲染后的图像流式传输到查看器中(仅限应用;模型无法看到图像)。
请参阅 examples/ 中可直接运行的载荷(net-ai-stack.json、keep-cool-in-hot-weather.json、tinku-contraptions.json)。规划文档以 doc://doodleworks/* 资源的形式提供,因此任何宿主都能访问,无需单独安装技能。
正常使用时,模型会根据你的请求填写这些参数。你无需手动编写 JSON。不过,你可以用自然语言调整任何参数(“做成 21:9 的主视觉图”“使用高质量”“使用 glp-00 风格”“以 2k 渲染”)。每次调用的值会覆盖环境默认值。
create_illustrations(整组参数)
| 参数 | 默认值 | 作用 |
|---|---|---|
illustrations | (必填) | 按顺序排列的插图组:1–10 个条目(每个条目都是下方所述的单张插图对象)。 |
title | 无 | 插图组的标题;显示在查看器中,也可嵌入下载的 PNG 文件。 |
resolution | 1k | 尺寸档位:1k 或 2k(2k 用于内嵌显示时更占资源)。 |
quality | DOODLEWORKS_QUALITY 环境变量,否则为 low | OpenAI 图像质量:low / medium / high / auto。较低的质量生成更快、成本更低。Gemini 不使用此参数。 |
styleReference | DOODLEWORKS_STYLE_REF 环境变量,否则无 | 整组插图的绘画风格参考:可使用库 ID、数据 URI,或 assets/style-references/ 内的文件(工具提供的路径会限制在该目录中;请参阅下方说明)。仅校准风格,绝不校准角色或文本。 |
单张插图(illustrations[] 中的每个条目)
| 参数 | 默认值 | 作用 |
|---|---|---|
prompt | (必填) | 装置 + Tinku 的动作 + Required text only: 区块。服务端会添加角色、概念引擎和品牌风格。 |
title | (必填) | 这张插图的简短标题。 |
aspect | 16:9 | 16:9 表示标准面板,21:9 表示更宽的主视觉插图。 |
archetype | 无 | 可选的布局辅助类型:process / cycle / stack / taxonomy / matrix / timeline / decision / data-shape / summary。 |
styleReference | 整组参数中的值 | 仅覆盖这张插图的整组风格参考(接受的值和沙盒限制相同)。 |
plan_illustrations(规划提示词)
| 参数 | 默认值 | 作用 |
|---|---|---|
topic | (必填) | 要绘制的主题或来源。 |
audience | 根据主题推断 | 面向的受众及其已有的知识。 |
count | 模型建议 4–8 | 插图数量,整数(在架构中以字符串形式传递)。 |
spine | 根据主题推断 | 叙事主线:teaching / persuasion / report / product / knowledge-card。 |
说明
styleReference的解析顺序为:单张插图 → 整组 →DOODLEWORKS_STYLE_REF环境变量 → 无。quality的解析顺序为:整组 →DOODLEWORKS_QUALITY环境变量 →low。如果任何位置都未设置风格参考,Doodleworks 会采用内置的纯文本风格指南进行绘制。工具提供的styleReference受沙盒限制:必须是库 ID、数据 URI,或assets/style-references/内的文件;只有由操作者设置的DOODLEWORKS_STYLE_REF环境变量可以指向磁盘上的其他位置。查看器中的 Regenerate 按钮会重新渲染一张插图,并沿用整组的分辨率、质量和风格,除非你更改提示词。
🖼️ 查看器
一组插图生成后,查看器会在聊天中打开。它支持完整交互:
- **浏览:**使用上一张/下一张按钮或缩略图条逐张浏览;可选的 21:9 主图排在最前,16:9 提示图随后。
- **边生成边显示:**每幅插图一完成就会显示,因此无需等待整组生成完毕。
- **缩放:**点击任意插图即可放大。
- **重新生成:**图像模型具有非确定性,因此点击一次即可原位重新生成单幅插图(无需重做整组)。
- **下载:**保存单张 PNG 或整组插图;勾选 PNG 上显示标题,即可将标题嵌入作品下方干净的说明栏中。
- **匹配宿主环境:**自动采用宿主环境的浅色/深色主题和字体。
缩放视图:点击任意插图即可放大。
🎨 示例
以下每组插图均由 Doodleworks 根据单一主题生成:每个面板呈现一个想法,并将其重新构想为 Tinku 操作的一种装置。(完整插图组位于 assets/style-references/。)
Mounjaro / GLP‑1:患者指南
介绍替尔泊肽(一种 GLP‑1/GIP 药物)的作用原理,从首次注射到用药剂量和副作用,将一份内容繁杂的药品说明书转化为 9 幅通俗易懂的图片。这些是绘画风格示例,并非医疗建议。
![]() 一目了然:每周注射一次,用于治疗 2 型糖尿病和减重。 | ![]() 减重:降低食欲,让你更有饱腹感、吃得更少。 | ![]() 错过一次用药:像切换轨道一样:≤4 天,立即注射;超过 4 天,则跳过。 | ![]() 严重症状:出现这些警示信号时,意味着需要寻求帮助。 |
尼古丁替代疗法
介绍尼古丁为何并非有害成分、尼古丁替代疗法有哪些形式,以及它如何稳定地缓解烟瘾。
![]() 误区与危害:尼古丁并非毒物;焦油和毒素才是。 | ![]() 疗法形式:贴片、口香糖、含片、喷雾剂、吸入器。 | ![]() 抑制烟瘾:让刻度保持稳定。 |
自动维护的知识维基
将杂乱的来源整理成互相关联、由模型维护的维基:无需复杂的 RAG,即可实现问答。
![]() 更少代码,更多知识:将原始资料加工成整洁的 Wiki。 | ![]() 自我维护:模型负责整理,无需人工介入。 | ![]() 持续积累:输出会随着时间不断累积。 |
.NET AI 技术栈
.NET AI 库详解:艰难的起步阶段、支撑众多接口的统一基础,以及能够调用工具的 Agent。
![]() 艰难的起步:手工编写,脆弱易错,约 200 行。 | ![]() 统一基础:一个插座面板提供多种接口。 | ![]() 配备工具的 Agent:机器人从挂板上挑选工具。 |
⚙️ 配置
所有配置都通过环境变量完成(在主机的 env 块中设置)。只需提供一个图像密钥。
| 变量 | 必需 | 默认值 | 说明 |
|---|---|---|---|
OPENAI_API_KEY | 一个密钥 | 无 | OpenAI GPT Image(默认提供商) |
GEMINI_API_KEY / GOOGLE_API_KEY | 一个密钥 | 无 | Gemini 3 Pro Image(“Nano Banana Pro”) |
DOODLEWORKS_STYLE_REF | 否 | 无 | 默认风格参考 ID/路径(库) |
DOODLEWORKS_QUALITY | 否 | low | low | medium | high | auto(提高此值可获得更丰富的纹理) |
DOODLEWORKS_CONCURRENCY | 否 | 3 | 并行渲染的插图数量(适用于 OpenAI tier‑1) |
DOODLEWORKS_REQUEST_TIMEOUT_MS | 否 | 120000 | 每张图像的请求超时时间(毫秒);渲染卡住时会快速失败,而不是占用一个并发槽位 |
PORT | 否 | 3001 | 开发用 Streamable HTTP 服务的端口 |
重要
图像密钥只会从服务端的环境中读取,并且只在服务端使用:绝不会放入工具结果、发送给查看器或暴露给 iframe。请将它保存在主机的
env块或 Shell 中,不要放入已提交的文件。(.env已加入 gitignore,且不会自动加载;服务会直接读取process.env。)
🛠️ 从源代码构建
适用于贡献代码、开发 Tinku 或运行开发用查看器检查工具。需要 Node.js 22+ 和 pnpm。构建或测试不需要 API 密钥,只有渲染时才需要。
git clone https://github.com/SalZaki/doodleworks-mcp.git
cd doodleworks-mcp
pnpm install
pnpm build # type-checks + bundles the viewer into dist/mcp-app.html
pnpm test # offline test suite (~1s, no API calls)
若要让主机使用你的本地代码库,而不是已发布的软件包,请将主机配置中的命令替换为:
"command": "npx",
"args": ["-y", "tsx", "/ABSOLUTE/PATH/doodleworks-mcp/main.ts", "--stdio"]
将 /ABSOLUTE/PATH/doodleworks-mcp 替换为你克隆仓库的实际路径(在仓库中运行 pwd 获取;在 Windows 上使用 C:\\path\\to\\doodleworks-mcp,并将反斜杠加倍)。
警告
将主机指向本地代码库前,务必先运行
pnpm build。主机提供的是预构建的查看器(dist/mcp-app.html);缺少或过期的构建包是查看器无法显示的首要原因。如需实时迭代,请使用pnpm start(监视构建,并在编辑后重启)。
有关测试优先工作流、Tinku 同步门禁以及分支/提交规范,请参阅 CONTRIBUTING.md。
🧩 工作原理
架构:结果中不包含字节的设计
MCP App 由一个工具和一个 UI 资源组成。create_illustrations 会生成插画,并通过 _meta.ui.resourceUri 注册,因此宿主会获取 ui://doodleworks-mcp/viewer.html 资源,并在沙盒 iframe 中渲染。
为保持上下文整洁,并符合 MCP 单个结果的大小上限,工具结果中不包含任何图像字节:结果只携带一个 setId 和插画元数据。服务端会在小型进程内 LRU 缓存中保留刚生成的图像(最近 8 组),查看器则通过单独的 get_illustration 调用获取每张图像(每个结果一张图像)。渲染在后台进行,因此调用会立即返回,图像完成后便会流入查看器。
host LLM ── create_illustrations(illustrations[]) ─▶ server: render × N (OpenAI / Gemini, your key)
model sees: 1-line summary ◀── content (no bytes) cache.set(setId, …)
viewer sees: { setId, metadata } ◀── _meta["doodleworks/set"]
viewer ── get_illustration({ setId, index }) ─▶ one image per result ─▶ iframe gallery
由于图像只存在于进程内缓存中,因此仅在服务进程运行期间有效(且只保留最近 8 组)。这是此个人版有意做出的取舍:无需任何基础设施,也没有密钥处理方面的责任。若要持久保存图像或与其他用户共享,就该转向托管版了。
风格参考与 Tinku 自定义
assets/style-references/ 是一个可扩展的库:放入 .png/.jpg/.webp/.gif 文件后,即可立即将其用作风格参考(它只校准绘画风格,不会影响角色或文本)。可为每张插画单独设置、对整组插画统一设置,或通过 DOODLEWORKS_STYLE_REF 设置。完整图库及工作原理请参阅图库 README。
Tinku 是应用自带的角色,在 engine.ts 中通过 TINKU_CHARACTER 定义一次:一个小巧、纯黑的蛋形工人,长着一双大眼睛和连指手套般的手,总是在操作那台装置。编辑该常量即可为其更换风格(并通过 pnpm run check:tinku 同步更新 references/visual-dna.md,该检查由构建流程强制执行)。
✅ 状态与验证
本项目属于个人版,仍处于实验阶段,但可以正常运行:执行 pnpm install && pnpm build && pnpm test 后,所有检查都会通过(离线测试套件,不会调用 API);CI 也会使用 Node 22 和 24 以及 pnpm 10.34.3 重新运行构建和测试。实时 openai / @google/genai 图像调用不在测试覆盖范围内;每次升级 SDK 后,请进行一次实时渲染。
🤝 贡献与安全
- CONTRIBUTING.md:开发环境设置、测试优先的工作流,以及 Tinku 同步检查。
- SECURITY.md:私下报告漏洞。
- CHANGELOG.md:重要变更。
☕ 支持本项目
Doodleworks 免费提供,并由我利用业余时间维护。如果它对你有帮助,欢迎请我喝杯咖啡,帮助支付图像 API 和托管费用,让更新得以持续。谢谢。
📄 许可证
MIT © Salahuddin Zaki。随附的风格参考图像是本项目原创作品;MIT 代码许可证不涵盖艺术作品。详情请参阅图库 README。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。











