随着 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 工具请求的工作原理
通信流程通常如下:
- 客户端发送工具请求(JSON 格式的 MCP 消息)到 MCP 服务器。
- sgcWebSockets 解析请求并触发
OnToolRequest等事件。 - 服务器执行请求的操作——例如从 CRM 读取数据、查询数据库或执行计算。
- 服务器以 MCP 格式构建响应(包含任何结果数据或错误)。
- 响应发送回请求客户端。
每个 MCP 工具请求由以下部分标识:
- 工具名称(要执行的操作)
- 参数(上下文或数据输入)
- ID(用于关联请求和响应)
在 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 组件及其内置的工具请求处理,您可以:
- 创建结构化、可发现的工具端点
- 实时响应实时 AI 请求
- 无缝集成业务系统(CRM、API、数据库)
- 对 AI 与系统的交互保持完全控制和透明度
了解更多
如需深入了解 MCP API 和可用服务器组件,请访问官方文档:
以下提供 Delphi MCP 服务器 Windows 演示。
