Delphi MCP 服务器
在 Delphi 中构建 Model Context Protocol (MCP) 服务器。向 AI 应用程序暴露工具、资源和提示词。
在 Delphi 中构建 Model Context Protocol (MCP) 服务器。向 AI 应用程序暴露工具、资源和提示词。
将自定义工具、提示词和资源暴露给任意支持 MCP 的 LLM 客户端。基于 sgcWebSockets HTTP 服务器托管带有 HTTP 和 HTTP Streamable 传输的 JSON-RPC 端点。
TsgcWSAPIServer_MCP
Model Context Protocol 服务器,规范 2026-07-28,向下兼容 2025-11-25
Windows, macOS, Linux, iOS, Android
Enterprise(AI 附加模块)
附加到 HTTP 服务器,填写 ServerInfo,挂接 OnMCPRequest* 处理程序,设置 Active := True。
uses
sgcAI_MCP_Server, sgcAI_MCP_Classes;
var
MCP: TsgcWSAPIServer_MCP;
begin
MCP := TsgcWSAPIServer_MCP.Create(nil);
MCP.MCPOptions.HttpOptions.Port := 8080;
MCP.MCPOptions.ServerInfo.Name := 'sgc-mcp-server';
MCP.MCPOptions.ServerInfo.Title := 'Weather MCP';
MCP.MCPOptions.ServerInfo.Version := '1.0.0';
// Lifecycle + incoming request handlers
MCP.OnMCPInitialize := SrvInitialize;
MCP.OnMCPSessionNew := SrvSessionNew;
MCP.OnMCPRequestTool := SrvCallTool;
MCP.OnMCPRequestPrompt := SrvGetPrompt;
MCP.OnMCPRequestResource := SrvReadResource;
MCP.Active := True;
// Push a notification to every connected session
MCP.SendNotificationToolsListChanged;
end;
5 个发布属性、9 个方法、12 个事件 — 来自组件参考。
Methods: KeepAlive.
Events: OnMCPHTTPRequest, OnMCPHTTPResponse.
Published properties: MCPOptions, EndpointOptions, TransportOptions.
Published properties: Version.
Properties: Server.
Methods: RequestRootsList, RequestSamplingCreateMessage, RequestElicitationCreate.
无状态请求,每次请求带 _meta、server/discover、Mcp-Method / Mcp-Name / Mcp-Param 请求头校验,以及缓存提示(MCPOptions.Cache)。2025-11-25 的客户端仍可在同一服务器上使用 initialize 和会话。
subscriptions/listen 用于推送列表变更和资源更新。选项:MCPOptions.Subscriptions。方法:CloseSubscriptions。
通过 aResponse.InputRequired 从工具中向客户端请求引导(表单或 URL)、采样或 roots。requestState 采用 HMAC 签名(MCPOptions.MRTR)。
面向长时间运行工具的 io.modelcontextprotocol/tasks。方法:CreateTask。选项:MCPOptions.Tasks。
本组件所实现协议的权威参考来源。
TsgcWSAPIServer_MCP 组件,设置 MCPOptions.HttpOptions.Port 和 MCPOptions.ServerInfo,挂接 OnMCPRequest* 处理程序,然后设置 Active := True。它在 sgcWebSockets HTTP 服务器之上托管一个 JSON-RPC 端点。
TransportOptions 和 EndpointOptions 发布属性进行配置。
OnMCPRequestTool 处理工具调用,OnMCPRequestPrompt 处理提示,OnMCPRequestResource 处理资源。你还可以向每个已连接的会话推送更新,例如使用 SendNotificationToolsListChanged。
RequestRootsList、RequestSamplingCreateMessage 和 RequestElicitationCreate 发起服务器端请求,因此服务器可以向已连接的 MCP 客户端请求 roots、采样补全或用户输入。在 MCP 2026-07-28 中,同样的问题以 Multi Round-Trip Requests (MRTR) 的形式传递:工具处理程序通过 aResponse.InputRequired(例如使用 AddElicitation)填充请求,并在重试调用时通过 InputResponse 读取答案。
server/discover、subscriptions/listen、Multi Round-Trip Requests 以及 Tasks 扩展),同时完全向下兼容使用 initialize 和会话的 2025-11-25 客户端。两个版本由同一个组件提供服务,每次请求都会自动检测所用版本。该功能已在 sgcWebSockets 2026.10.0 中提供,支持 Delphi 7 到 Delphi 13 以及 .NET 包。