采样工具服务

MCP Server提供的采样工具服务,支持通过C# SDK和MCP规范进行原生工具调用和采样交互。

  • by adner
  • C#
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 adner/McpServer_SamplingWithTools

使用说明

MCP服务器-使用工具采样

演示如何使用 使用工具进行本地采样 在MCP服务器中,使用C#MCP SDK v1.2.0和 MCP 2025-11-25规范.

这是一个更新版本的 早期演示 由于采样中的本机工具支持尚不可用,因此使用了一种解决方法(通过提示指令进行基于JSON的工具调用)。可以在LinkedIn上找到一篇帖子,其中有一段短视频,在(自定义分支)VS Code中演示了这一点 这里.

发生了什么变化

原始演示指示LLM返回JSON {"call":"...", "args":"..."} 服务器在循环中手动解析的对象。随着 SEP-1577(使用工具取样) 现在是MCP规范的一部分 在C#SDK中实现,工具在采样请求中通过以下方式本地声明 ChatOptions.ToolsLLM返回正确 FunctionCallContent 对象通过协议,服务器以 FunctionResultContent 消息——不需要JSON字符串解析。

运作原理

MCP服务器公开了一个工具(SampleLlm)它使用采样与客户端的LLM进行交互。在采样过程中,声明了两个内部工具:

  • GetDataFromCrm -从BLOB中检索数据。内部使用额外的采样调用将自然语言转换为FetchXml并格式化结果。
  • 创建Excel -创建Excel文件。内部使用采样将数据转换为CSV格式。

LLM可以在采样会话期间本机调用这些工具。服务器执行每个工具并反馈结果,循环直到LLM生成最终的文本响应。

先决条件

  • .NET 9.0
  • 一个WEBGB/Dynamics 365环境(在中更新凭据 GetOrganizationService())
  • 支持使用工具采样的MCP客户端。

跑步

cd SamplingMcpServer
dotnet run

服务器启动于 http://localhost:3001.

MCP客户端支持

请注意,使用工具进行采样需要MCP客户端宣传 sampling.tools 能力。截至2026年3月,客户对这一特定功能的支持尚未真正到位——该项目充当了验证客户兼容性的试验台。