Componentes MCP para Delphi — Cliente y servidor Model Context Protocol
Conecta aplicaciones Delphi al ecosistema de IA mediante el Model Context Protocol: TsgcWSAPIServer_MCP expone las herramientas, prompts y recursos de tu aplicación a los modelos de IA, y TsgcWSAPIClient_MCP consume cualquier servidor compatible con MCP. La misma biblioteca incluye clientes de APIs de IA para OpenAI, Anthropic Claude y Google Gemini.
MCP es el estándar emergente para conectar grandes modelos de lenguaje con herramientas y datos externos. En lugar de una integración a medida por cada proveedor de IA, implementas un solo protocolo.
Model Context Protocol en Delphi significa que tu aplicación VCL o FMX existente puede convertirse en un servicio accesible para la IA. El protocolo se basa en JSON-RPC y define tres primitivas: tools (funciones invocables con parámetros tipados), prompts (plantillas reutilizables con argumentos) y resources (datos expuestos mediante direccionamiento por URI). Un servidor MCP los publica; un cliente MCP (Claude Desktop, Cursor o tu propia aplicación Delphi) los descubre y los invoca.
El componente servidor se acopla a un servidor HTTP de sgcWebSockets y soporta los transportes stdio y HTTP, así que el mismo código sirve tanto a un asistente de IA de escritorio que lo lanza como subproceso como a un agente remoto que lo llama por la red. El componente cliente habla JSON-RPC sobre HTTP o HTTP Streamable y cubre toda la superficie del catálogo: initialize, listar y llamar tools, recuperar prompts, leer resources, además de sampling y elicitation para flujos de IA interactivos.
Ambos componentes implementan la especificación MCP 2026-07-28: solicitudes sin estado con _meta por solicitud, server/discover, subscriptions/listen, Multi Round-Trip Requests y la extensión Tasks. Mantienen retrocompatibilidad con 2025-11-25. El mismo servidor responde a ambas eras, y el cliente recurre automáticamente al fallback cuando un servidor solo habla el protocolo antiguo.
Servidor MCP
TsgcWSAPIServer_MCP: tools, prompts, resources, transportes stdio y HTTP
Cliente MCP
TsgcWSAPIClient_MCP: descubre y llama a cualquier servidor compatible con MCP
De Delphi 7 a RAD Studio 13, C++Builder 10.1 Berlin a 13, Lazarus 4.4.0
Funciones
Los dos lados del protocolo
Servidor, cliente y los clientes de proveedores de IA que consumen lo que MCP expone.
Tools con esquemas tipados
Tools.AddTool registra una función invocable y sus propiedades InputSchema; las llamadas llegan al evento OnMCPRequestTool con los argumentos parseados y un objeto de respuesta estructurado.
Prompts y resources
Plantillas de prompt reutilizables con argumentos y recursos direccionados por URI, servidos a través de OnMCPRequestPrompt y OnMCPRequestResource.
Superficie de catálogo del cliente
Initialize, ListTools, ListPrompts, ListResources, ListResourceTemplates, y después RequestTool / RequestPrompt / RequestResource con respuestas dirigidas por eventos.
Sampling y elicitation
El cliente soporta el sampling de MCP (interacción con el modelo de IA solicitada por el servidor) y la elicitation (recogida de entrada del usuario a mitad de flujo), las dos extensiones interactivas del protocolo.
Autenticación
Las opciones de autenticación del lado cliente incluyen claves API vía AuthenticationOptions.ApiKey; consulta el blog para servidores MCP protegidos con OAuth2.
MCP 2026-07-28
Solicitudes sin estado, server/discover, cabeceras Mcp-Method / Mcp-Name / Mcp-Param con validación, sugerencias de caché (ttlMs, cacheScope) y los nuevos códigos de error. MCPOptions.ProtocolEra en el cliente selecciona Auto, Modern o Legacy.
Multi Round-Trip Requests
Una herramienta pide elicitation (formulario o URL), sampling o roots mediante aResponse.InputRequired; el cliente responde en OnMCPInputRequired y reintenta con el requestState firmado por HMAC.
Subscriptions y tasks
subscriptions/listen transmite cambios de listas y actualizaciones de recursos. La extensión io.modelcontextprotocol/tasks (CreateTask) ejecuta herramientas de larga duración en segundo plano, y el componente cliente la sondea con MCPOptions.Tasks.Enabled o la obtiene directamente con TasksGet.
OAuth del cliente MCP
MCPOptions.Authorization: descubrimiento de metadatos de recursos protegidos, Client ID Metadata Documents, fallback a registro dinámico, PKCE con indicadores de recursos, validación de iss según RFC 9207 y credenciales por emisor.
Dos transportes
Stdio para servidores lanzados como subproceso (el modelo de Claude Desktop) y HTTP para despliegues en red. Un componente, ambos canales.
Familia de clientes de IA
Habla también directamente con los modelos: chat, streaming y function calling contra OpenAI, Anthropic Claude y Google Gemini, más DeepSeek, Grok, Mistral y Ollama en la misma familia de IA.
Multiplataforma
Windows 32/64, Linux 64, macOS (Intel y ARM), iOS y Android. VCL y FireMonkey, con componentes en tiempo de diseño.
Edición
El servidor MCP, el cliente MCP y los clientes de APIs de IA son características de la edición Enterprise de sgcWebSockets.
Guía Rápida
Un servidor MCP y un cliente MCP en Delphi
Registra una tool con un argumento tipado en el servidor; descúbrela y llámala desde el cliente.
uses
sgcWebSocket_Server, sgcAI, sgcAI_MCP_Classes, sgcAI_MCP_Server;
procedure TForm1.SetupMCPServer;
begin// Attach the MCP API component to a sgcWebSockets HTTP server
MCPServer.Server := Server;
MCPServer.EndpointOptions.Endpoint := '/mcp';
MCPServer.MCPOptions.ServerInfo.Name := 'sgc-mcp-server';
MCPServer.MCPOptions.ServerInfo.Version := '1.0.0';
// Register a callable tool with a typed argumentwith MCPServer.Tools.AddTool('GetTemperature',
'Get the actual temperature in a city.') do
InputSchema.Properties.AddProperty('city', True);
MCPServer.OnMCPRequestTool := MCPRequestTool;
Server.Port := 8080;
Server.Active := True;
end;
procedure TForm1.MCPRequestTool(Sender: TObject;
const aSession: TsgcAI_MCP_Session;
const aRequest: TsgcAI_MCP_Request_ToolsCall;
const aResponse: TsgcAI_MCP_Response_ToolsCall);
beginif aRequest.Params.Name = 'GetTemperature'then
aResponse.Result.Content.AddText('The current temperature in ' +
aRequest.Params.Arguments.Item[0].Value + ' is 22 Celsius');
end;
Deja que un modelo de IA consulte los datos de tu aplicación mediante tools controladas y tipadas. Sólo lectura o lectura-escritura, tu handler decide en cada llamada.
Automatización de negocio
Expón operaciones de CRM, ERP o ticketing como tools MCP para que instrucciones en lenguaje natural dirijan la lógica de negocio Delphi existente.
Herramientas de escritorio con IA
Da a asistentes como Claude Desktop acceso a la funcionalidad de una aplicación heredada envolviéndola en un servidor MCP stdio.
Flujos de IA multi-paso
Encadena tools y resources para recuperación, procesado y acción en un único pipeline dirigido por IA, orquestado desde el lado Delphi.