连接 AI 模型和配置 MCP 使用 SemanticKernel 框架对接 LLM将 MCP Tool 转换为 Function 添加到对话上下文中。var aiModel configuration.GetSection(AIModel); var builder Kernel.CreateBuilder() .AddAzureOpenAIChatCompletion( deploymentName: aiModel[ModelId], endpoint: aiModel[Endpoint], apiKey: aiModel[Key]); builder.Services.AddLogging(s { s.AddConsole(); }); Kernel kernel builder.Build(); // 这里将 mcp 转换为 functaion call kernel.Plugins.AddFromFunctions(amap, tools.Select(aiFunction aiFunction.AsKernelFunction())); var chatCompletionService kernel.GetRequiredServiceIChatCompletionService(); OpenAIPromptExecutionSettings openAIPromptExecutionSettings new() { Temperature 0, FunctionChoiceBehavior FunctionChoiceBehavior.Auto(options: new() { RetainArgumentTypes true }) };第三步对话交互编写控制台与用户对话交互。var history new ChatHistory(); string? userInput; do { Console.Write(用户提问 ); userInput Console.ReadLine(); history.AddUserMessage(userInput!); var result await chatCompletionService.GetChatMessageContentAsync( history, executionSettings: openAIPromptExecutionSettings, kernel: kernel); Console.WriteLine(AI 回答 result); history.AddMessage(result.Role, result.Content ?? string.Empty); } while (userInput is not null);演示地图规划注意由于高德地图免费额度限流而 AI 对话时可能有多次对 MCP Server 请求因此有时候效果并不是那么好。1. 智能旅游路线规划最多支持16个途经点的旅游路线规划自动计算最优顺序并提供可视化地图链接。使用示例请帮我规划一条上海三日游路线包括外滩、东方明珠、迪士尼、豫园、南京路并提供可视化地图2. 景点搜索与详情查询查询景点的详细信息包括评分、开放时间、门票价格等。使用示例请查询黄山风景区的开放时间、门票价格和旅游季节推荐AI 是怎么识别调用 MCP在编写高德地图规划时有一段代码是将 MCP 服务器的接口转换为 Function 的代码如下kernel.Plugins .AddFromFunctions(amap, tools.Select(aiFunction aiFunction.AsKernelFunction()))其实在这里就可以下结论并不是 AI 模型直接调用 MCP Server 的依然 Client 进行是 Function call 。通过拦截 http 请求可以发现当用户输入请帮我规划一条上海三日游路线包括外滩、东方明珠、迪士尼、豫园、南京路并提供可视化地图时客户端首先将用户提问和 mcp 服务所提供的 function call 一起发送到 AI 模型服务器。对话时Client 提供给 LLM 的 Function MCP Tool列表。然后 AI 回答要调用的 Function call 步骤和参数接着由客户端实现将 Function 定位 MCP Server并顺序调用每个 Tool。LLM 返回要顺序调用的 Function 列表以及参数客户端将每个 Function 的执行结果和用户的提问等信息一起再次提交给 AI 模型服务器。由于高德接口并发限制有部分接口调用失败那么客户端可能会来回请求多次最后输出 AI 的回答。到这里读者应该明白 MCP Tool、Plugin、Function Call 的关系了吧实现 Mcp Server前面笔者介绍了 MCP Tool但是 MCP Server 还可以提供很多很有用的功能MCP 协议定义了以下核心模块Core architectureResourcesPromptsToolsSamplingRootsTransports作为当前社区中最关注的 Tools本文已经单独介绍接下来将会以继续讲解其它功能模块。实现 Resources示例项目参考ResourceServer、ResourceClient。Resources 定义Resources 是 Model Context Protocol (MCP) 中的一个核心原语它允许服务器暴露可以被 clients 读取并用作 LLM 交互上下文的数据和内容。Resources 代表 MCP server 想要提供给 clients 的任何类型的数据在使用上MCP Server 可以给每种资源定义一个 Uri这个 Uri 的协议格式可以是虚拟的这不重要只要是能够定位资源的一段 Uri 字符串即可。只看定义读者可能不理解什么意思没关系等后面动手做的时候就知道了。

相关新闻

最新新闻

前端工程化:Git与npm面试高频问题解析

前端工程化:Git与npm面试高频问题解析

1. 面试题背景与核心考察点前端工程化开发中,Git和npm是每天都要打交道的两大工具链。根据近三年一线大厂前端岗位的面试统计,约78%的技术面会涉及版本控制和包管理的实操问题。这类题目往往不是考察死记硬背的命令,而是通过场景化的设问检验…

2026/8/26 3:15:28
AutoHotkey实现一键发送文件到微信:自动化脚本编写与优化指南

AutoHotkey实现一键发送文件到微信:自动化脚本编写与优化指南

1. 项目概述:当文件传输遇上自动化作为一名常年与各种文件打交道的效率工具爱好者,我经常遇到这样的场景:在资源管理器里选中了几个文件,需要立刻通过微信发送给同事或朋友。常规操作是右键、找到“发送到”、再选择“微信”&…

2026/8/26 3:15:28
安信可ESP32-S/SL/SU模组深度对比:芯片、天线、功耗与选型指南

安信可ESP32-S/SL/SU模组深度对比:芯片、天线、功耗与选型指南

1. 项目概述:为何要深究这三款模组?如果你正在为物联网项目选型,尤其是涉及Wi-Fi和蓝牙连接的小型设备,安信可(Ai-Thinker)的ESP32系列模组大概率在你的候选清单里。但当你打开产品列表,看到ESP…

2026/8/26 3:15:28
ESP32-S、SU、SL模组天线选型指南:硬件设计与项目实战

ESP32-S、SU、SL模组天线选型指南:硬件设计与项目实战

1. 项目概述:为什么我们需要区分ESP32-SU、ESP32-SL和ESP32-S?当你准备启动一个物联网项目,打开安信可的官网或电商页面,准备挑选一颗ESP32模组时,大概率会被一堆型号搞得眼花缭乱。ESP32-S、ESP32-SU、ESP32-SL……它…

2026/8/26 3:15:28
整数对问题:算法优化与面试实战指南

整数对问题:算法优化与面试实战指南

1. 整数对问题概述 给定一个整数N,寻找所有满足特定条件的整数对(a,b)是编程面试和算法竞赛中的经典题型。这类问题考察解题者的数学思维、编程实现能力和算法优化意识。在实际应用中,整数对问题常出现在密码学、数据分析和游戏开发等领域。 2024年秋季…

2026/8/26 3:15:28
Apple Silicon上首个4-bit端到端训练框架解析

Apple Silicon上首个4-bit端到端训练框架解析

1. 这不是“又一个量化模型”,而是Apple Silicon上首次真正跑通的4-bit端到端训练链路你可能已经见过太多标题带“未来已来”“革命性突破”的AI项目——它们大多止步于推理加速、模型加载、或者在A100上跑个demo。但当我第一次在M1 Ultra上用mlx-community/BTL-4-O…

2026/8/26 3:10:27