MCP Sampling Server 与 Client 实现
两种开发视角Server 与 Client 实现1. MCP Server发起 sampling主动调用 LLMtypescript运行// server 主动向client请求LLM生成 const result await client.request({ method: sampling/createMessage, params: { messages: [{ role: user, content: { type: text, text: 分析日志报错 } }], systemPrompt: 你是运维专家, maxTokens: 800, modelPreferences: { hints: [{ name: gemini-2.0-flash }] } } }); // result 就是标准 SamplingResult console.log(result.content.text, result.stopReason);2. MCP Client注册采样处理器你之前写的代码typescript运行// Client 注册接收 sampling/createMessage 的处理器 mcp.setRequestHandler(CreateMessageRequestSchema, async (request) { // 1. 预处理request.params.messages 所有对话 // 2. 调用本地LLMVercel AI SDK streamText/generateText // 3. 返回标准 SamplingResult 结构 return { role: assistant, model: gemini-2.0-flash, stopReason: endTurn, content: { type: text, text: 模型生成内容 } }; });你写的代码属于Client 侧采样拦截处理器负责接管所有sampling/createMessage请求对接 Gemini 完成生成。为什么负责接管所有 sampling/createMessage 请求因为sampling/createMessage本身就是 MCP 规范中 Server 向 Client 发起请你调用一个 LLM的唯一请求。当你注册mcp.setRequestHandler(CreateMessageRequestSchema, async (request) { ... });实际上是在告诉 MCP Client以后只要任何 MCP Server 发来sampling/createMessage请求都交给这个 handler 处理。所以它看起来像接管所有 sampling/createMessage 请求。MCP 的通信方向很多人第一次看都会觉得奇怪因为平时都是Client | | request v Server但是 Sampling 是反过来的。createMessage Server ---------------------- Client | | 调 LLM | ------------------------------- SamplingResult也就是说Server 不知道怎么调用 GPT、Gemini、Claude。它只知道Client请帮我生成一段文本。为什么不是 Server 自己调用这是 MCP 的设计。Server 负责工具。Client 负责模型。例如VS Code Copilot里面已经登录了 GitHub Copilot。已经有GPT-5ClaudeGemini的权限。MCP Server 根本不知道这些 API Key。于是 Server 发送{ method: sampling/createMessage, params: { messages: [ ... ] } }Client 收到以后哦 让我调用一下 Gemini。然后Gemini API ↓ 得到回复 ↓ 返回给 ServerServer 根本不知道 Gemini 的存在。setRequestHandler为什么能处理所有SDK 内部维护了一张method ↓ handler的映射。类似于handlers { sampling/createMessage: createMessageHandler, roots/listChanged: rootsHandler, logging/setLevel: loggingHandler, }当收到一条请求{ method: sampling/createMessage, ... }SDK 就会const handler handlers[sampling/createMessage]; await handler(request);所以mcp.setRequestHandler( CreateMessageRequestSchema, handler );实际上就是注册sampling/createMessage ↓ handler以后所有这个 Method 的请求都会进入这里。为什么说接管所有因为一个 Client 对于某个 Request Method 通常只能注册一个处理器。例如mcp.setRequestHandler( CreateMessageRequestSchema, handler1 ); mcp.setRequestHandler( CreateMessageRequestSchema, handler2 );通常第二个会覆盖第一个具体行为取决于 SDK 实现但一般不支持多个并行处理器。因此对于sampling/createMessage这一种请求Client 的这一处 handler 就是统一入口。在这里你可以async (request) { // ① 读取所有 messages const messages request.params.messages; // ② 做 Prompt 修改 ... // ③ 选择模型 ... // ④ 调用本地 LLM const result await generateText(...); // ⑤ 返回 SamplingResult return { role: assistant, model: ..., stopReason: endTurn, content: { type: text, text: result.text } }; }无论是哪一个 MCP Server 发起了sampling/createMessage请求只要它们连接到这个 Client都会经过这一入口。因此它不是“接管所有 MCP 请求”而是统一处理所有sampling/createMessage类型的请求。其他请求如tools/call、resources/read、prompts/get等仍然由各自对应的 handler 处理不会经过这个函数。

相关新闻

DeepSeek帮你做PPT:不是替代你思考,是帮你把思考表达出来

DeepSeek帮你做PPT:不是替代你思考,是帮你把思考表达出来

用DeepSeek做PPT,就像用计算器算账。计算器不会替你决定这笔钱该不该花,但它能让你把精力花在决策上,而不是加减乘除的运算上。二狗PPT基于DeepSeek做的也是这件事——它不替你想,它帮你说。 AI做PPT的常见误解 AI做PPT的常见误解…

2026/7/25 4:58:28 阅读更多 →
深入解析MCSPI控制器:从SPI协议基础到寄存器配置与驱动实战

深入解析MCSPI控制器:从SPI协议基础到寄存器配置与驱动实战

1. SPI通信协议基础与核心原理如果你在嵌入式领域摸爬滚打了一段时间,那么SPI(Serial Peripheral Interface)对你来说绝对不陌生。它就像电子设备之间说的一种“方言”,简单直接,效率极高。我最早接触SPI是在驱动一块F…

2026/7/25 10:43:55 阅读更多 →
“每天晚饭后7点散步30分钟。”

“每天晚饭后7点散步30分钟。”

一句简单的行动指令,背后其实包含了一个完整的人生系统设计。它看起来只是: “散步30分钟。”但它已经完成了从: 愿望 → 系统 → 行为 的转换。第一层:为什么这句话可以执行? 因为它包含了行动的五个要素:…

2026/7/22 19:37:11 阅读更多 →

最新新闻

Windows 7终极版:内核改造与现代化升级技术解析

Windows 7终极版:内核改造与现代化升级技术解析

1. 项目背景与核心价值Windows 7作为微软历史上最成功的操作系统之一,自2009年发布以来就以其稳定性、兼容性和经典UI设计赢得了全球用户的青睐。尽管微软早已停止官方支持,但全球仍有数亿设备在运行这个"老将"系统。这个"2026终极版&quo…

2026/7/26 3:42:32 阅读更多 →
论文降重实战:从AI痕迹到自然流畅的完整方案

论文降重实战:从AI痕迹到自然流畅的完整方案

1. 论文降重实战:从AI痕迹明显到自然流畅的完整方案去年帮学弟修改毕业论文时,发现他的初稿被检测系统标记了90%的AI生成内容风险。经过两周的系统性调整,我们最终把AI率控制在了10%以内。这个过程中测试了17款工具,筛选出真正有效…

2026/7/26 3:42:32 阅读更多 →
8款AI降AI工具实测:从90%降至20%的实战方案

8款AI降AI工具实测:从90%降至20%的实战方案

1. 项目背景与核心价值最近半年,AI生成内容泛滥的问题越来越严重。从社交媒体到专业论坛,大量低质、重复的AI内容正在稀释互联网的信息价值。作为一名长期关注内容质量的内容创作者,我花了三周时间系统测试了市面上主流的8款AI检测与降AI工具…

2026/7/26 3:42:32 阅读更多 →
企业AI生产力转型:AgenticOps架构与效能提升实践

企业AI生产力转型:AgenticOps架构与效能提升实践

1. 企业AI生产力转型的现状与挑战当前企业AI应用普遍面临三大核心痛点:首先是技术碎片化问题,从数据准备到模型部署涉及20工具链,团队往往需要耗费40%以上的时间在工具适配和系统对接上。其次是资源孤岛现象,某制造业客户反馈其AI…

2026/7/26 3:42:32 阅读更多 →
Azure Container App调试控制台与工具链实战指南

Azure Container App调试控制台与工具链实战指南

1. Azure Container App调试控制台核心功能解析 Azure Container App的调试控制台是开发者在容器化应用部署过程中进行实时诊断的利器。不同于传统的虚拟机SSH连接或Kubernetes的exec命令,这个基于浏览器的交互式终端提供了开箱即用的环境访问能力。我在多个生产级容…

2026/7/26 3:42:32 阅读更多 →
it only takes us a few minutes to drive to the mosque.

it only takes us a few minutes to drive to the mosque.

how long did it take you to read the whole book. we’re Jewish so we don’t celebrate Christmas John had been to that church year ago. before studying abroad in New York.Takuya had never made any Jewish or Muslim friends. he learned a lot of new.things fro…

2026/7/26 3:41:32 阅读更多 →

日新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

月新闻