Delphi MCP 服务器工具(2/4)

· 功能

随着 sgcWebSockets 2025.9.0 的发布,开发者现在可以将 Model Context Protocol(MCP)功能直接集成到服务器中。这包括处理 MCP 工具请求的能力——这是实现 AI 模型与后端服务之间动态智能通信的关键组件。

本指南将介绍 MCP 工具请求的工作原理、如何在 TsgcWSAPIServer_MCP 服务器中处理这些请求,以及如何向客户端或 AI 代理发送结构化响应。

理解 MCP 工具请求

在 MCP(Model Context Protocol)生态系统中,工具代表 AI 模型可以调用的能力——例如查询数据库、发送电子邮件或从 API 获取数据。

MCP 服务器通过 WebSocket 公开这些工具,客户端(如 AI 代理)可以发出工具请求来触发特定操作。sgcWebSockets 中的 TsgcWSAPIServer_MCP 组件简化了整个流程,自动解码 MCP 消息并将其路由到服务器中适当的事件处理程序。

MCP 工具请求的工作原理

通信流程通常如下:

  1. 客户端发送工具请求(JSON 格式的 MCP 消息)到 MCP 服务器。
  2. sgcWebSockets 解析请求并触发 OnToolRequest 等事件。
  3. 服务器执行请求的操作——例如从 CRM 读取数据、查询数据库或执行计算。
  4. 服务器以 MCP 格式构建响应(包含任何结果数据或错误)。
  5. 响应发送回请求客户端。

每个 MCP 工具请求由以下部分标识:

在 Delphi 中处理工具请求

使用 TsgcWSAPIServer_MCP 配置好 MCP 服务器后,可以通过事件处理程序处理传入的工具请求。
以下是如何实现传入 MCP 工具请求处理程序的示例。

procedure TMainForm.MCPServerMCPRequestTool(Sender: TObject;
  const ASession: TsgcAI_MCP_Session;
  const ARequest: TsgcAI_MCP_Request_ToolsCall;
  const AResponse: TsgcAI_MCP_Response_ToolsCall);
var
  LA, LB: Double;
begin
  if ARequest.Params.Name = 'math.add' then
  begin
    LA := ARequest.Params.Arguments.Node['a'].AsNumber;
    LB := ARequest.Params.Arguments.Node['b'].AsNumber;
    AResponse.Result.Content.AddText(Format('Sum = %.2f', [LA + LB]));
  end
  else
    AResponse.Result.IsError := True;
end;

使用 MCP 工具元数据

您还可以使用 MCP API 注册和公开有关可用工具的元数据。
这使 AI 模型能够动态发现您的可用工具并了解其预期参数。

例如,您可以声明:

procedure TMainForm.FormCreate(Sender: TObject);
var
  oTool: TsgcAI_MCP_Tool;
begin
  oTool := MCPServer.Tools.AddTool('math.add', 'Adds two numbers');
  oTool.InputSchema.Properties.AddProperty('a', True, aimcpjtNumber, 'Left operand');
  oTool.InputSchema.Properties.AddProperty('b', True, aimcpjtNumber, 'Right operand');
end;

此信息帮助 AI 客户端自动理解如何调用您的工具,使创建自文档化的 AI 集成变得更加容易。

总结

sgcWebSockets 2025.9.0 中的 MCP 工具请求提供了一种简单但强大的方式来连接您的 AI 模型与现实世界的系统
通过使用 TsgcWSAPIServer_MCP 组件及其内置的工具请求处理,您可以:

了解更多

如需深入了解 MCP API 和可用服务器组件,请访问官方文档:


sgcWebSockets MCP 工具服务器参考


以下提供 Delphi MCP 服务器 Windows 演示。