Delphi MCP 컴포넌트 — Model Context Protocol 클라이언트와 서버
Model Context Protocol을 통해 Delphi 애플리케이션을 AI 생태계에 연결하세요: TsgcWSAPIServer_MCP는 애플리케이션의 도구, 프롬프트, 리소스를 AI 모델에 노출하고, TsgcWSAPIClient_MCP는 MCP 호환 서버라면 무엇이든 소비해요. 같은 라이브러리에 OpenAI, Anthropic Claude, Google Gemini용 AI API 클라이언트가 함께 제공돼요.
MCP는 대규모 언어 모델을 외부 도구와 데이터에 연결하기 위한 떠오르는 표준이에요. AI 공급자마다 하나씩 사용자 정의 통합을 만드는 대신, 하나의 프로토콜만 구현하면 돼요.
Delphi의 Model Context Protocol은 기존 VCL 또는 FMX 애플리케이션이 AI가 접근할 수 있는 서비스가 될 수 있다는 뜻이에요. 프로토콜은 JSON-RPC 기반이며 세 가지 기본 요소를 정의해요: 도구(타입이 지정된 매개변수를 가진 호출 가능한 함수), 프롬프트(인수를 가진 재사용 가능한 템플릿), 리소스(URI 주소 지정을 통해 노출되는 데이터). MCP 서버가 이를 게시하고, MCP 클라이언트(Claude Desktop, Cursor 또는 자신의 Delphi 애플리케이션)가 이를 발견하고 호출해요.
서버 컴포넌트는 sgcWebSockets HTTP 서버에 연결되고 stdio와 HTTP 전송을 모두 지원하므로, 같은 코드가 서브프로세스로 실행하는 데스크톱 AI 어시스턴트와 네트워크를 통해 호출하는 원격 에이전트 모두를 처리해요. 클라이언트 컴포넌트는 HTTP 또는 HTTP Streamable 위에서 JSON-RPC로 통신하며 전체 카탈로그 표면을 다뤄요: 초기화, 도구 목록 조회와 호출, 프롬프트 검색, 리소스 읽기, 그리고 대화형 AI 워크플로를 위한 샘플링과 엘리시테이션까지.
두 컴포넌트 모두 MCP 2026-07-28 스펙을 구현해요: 요청별 _meta를 사용하는 상태 비저장 요청, server/discover, subscriptions/listen, Multi Round-Trip Requests, Tasks 확장. 2025-11-25와도 하위 호환성을 유지해요. 같은 서버가 두 버전 모두에 응답하고, 클라이언트는 서버가 이전 프로토콜만 지원할 때 자동으로 폴백해요.
MCP 서버
TsgcWSAPIServer_MCP: 도구, 프롬프트, 리소스, stdio 및 HTTP 전송
도구가 aResponse.InputRequired를 통해 elicitation(폼 또는 URL), sampling, roots를 요청해요. 클라이언트는 OnMCPInputRequired에서 응답하고 HMAC 서명된 requestState로 재시도해요.
Subscriptions & Tasks
subscriptions/listen으로 목록 변경과 리소스 업데이트를 스트리밍해요. io.modelcontextprotocol/tasks 확장(CreateTask)은 오래 걸리는 도구를 백그라운드에서 실행하며, 클라이언트 컴포넌트는 MCPOptions.Tasks.Enabled로 폴링하거나 TasksGet으로 직접 가져와요.
MCP client OAuth
MCPOptions.Authorization: protected resource 메타데이터 검색, Client ID Metadata Documents, 동적 등록 폴백, 리소스 지시자를 포함한 PKCE, RFC 9207 iss 검증, 발급자별 자격 증명.
두 가지 전송
서브프로세스로 실행되는 서버용 stdio(Claude Desktop 모델)와 네트워크 배포용 HTTP. 하나의 컴포넌트, 두 채널.
AI 클라이언트 제품군
모델과 직접 대화할 수도 있어요: OpenAI, Anthropic Claude, Google Gemini에 대한 채팅, 스트리밍, 함수 호출, 그리고 같은 AI 제품군의 DeepSeek, Grok, Mistral, Ollama까지.
크로스 플랫폼
Windows 32/64, Linux 64, macOS (Intel 및 ARM), iOS 및 Android. VCL과 FireMonkey, 디자인 타임 컴포넌트 포함.
에디션
MCP 서버, MCP 클라이언트 및 AI API 클라이언트는 sgcWebSockets의 Enterprise 에디션 기능이에요.
빠른 시작
Delphi로 만드는 MCP 서버와 MCP 클라이언트
서버에 타입이 지정된 인수를 가진 도구를 등록하고, 클라이언트에서 발견하고 호출하세요.
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;