MCP Server
TsgcWSAPIServer_MCP는 sgc HTTP 서버 또는 WebSocket 서버를 Model Context Protocol 서버로 바꿔 줍니다. 직접 만든 도구, 프롬프트, 리소스를 게시하면 MCP를 지원하는 모든 클라이언트, IDE 에이전트, 데스크톱 어시스턴트, 직접 작성한 코드가 애플리케이션을 호출할 수 있습니다.
TsgcWSAPIServer_MCP는 sgc HTTP 서버 또는 WebSocket 서버를 Model Context Protocol 서버로 바꿔 줍니다. 직접 만든 도구, 프롬프트, 리소스를 게시하면 MCP를 지원하는 모든 클라이언트, IDE 에이전트, 데스크톱 어시스턴트, 직접 작성한 코드가 애플리케이션을 호출할 수 있습니다.
MCP의 서버 쪽을 담당합니다. 지정한 엔드포인트에서 JSON-RPC를 해석하고 세션을 관리하며, 도구와 프롬프트, 리소스 요청마다 이벤트를 발생시키고, 알림과 서버가 시작하는 요청을 클라이언트로 보낼 수 있습니다.
TsgcWSAPIServer_MCP
AI 클라이언트용 도구 호스팅
Windows, macOS, Linux, iOS, Android
sgcAI는 자체 완결형 제품입니다. 이 컴포넌트는 기반이 되는 sgcWebSockets Core 런타임과 함께 sgcAI에 포함되어 제공되므로, 별도로 구매해야 할 기본 라이선스가 없습니다.
API를 서버에 연결하고 ServerInfo를 채운 다음, 요청 이벤트를 처리하고 Active를 설정하세요.
uses
sgcAI, sgcAI_MCP_Classes, sgcHTTP_Server;
var
oMCP: TsgcWSAPIServer_MCP;
begin
oMCP := TsgcWSAPIServer_MCP.Create(nil);
oMCP.Server := sgcHTTPServer1;
oMCP.EndpointOptions.Endpoint := '/mcp';
oMCP.MCPOptions.ServerInfo.Name := 'sgc-mcp-server';
oMCP.MCPOptions.ServerInfo.Version := '1.0.0';
oMCP.MCPOptions.SessionTimeout := 300;
// Streamable HTTP enables notifications and server to client requests.
oMCP.TransportOptions.Http.Enabled := True;
oMCP.TransportOptions.HttpStreamable.Enabled := True;
oMCP.OnMCPInitialize := SrvInitialize;
oMCP.OnMCPSessionNew := SrvSessionNew;
oMCP.OnMCPRequestTool := SrvCallTool;
oMCP.OnMCPRequestPrompt := SrvGetPrompt;
oMCP.OnMCPRequestResource := SrvReadResource;
sgcHTTPServer1.Active := True;
// Tell every connected session the tool list changed.
oMCP.SendNotificationToolsListChanged;
end;
// includes: sgcAI.hpp, sgcAI_MCP_Classes.hpp, sgcHTTP_Server.hpp
TsgcWSAPIServer_MCP *oMCP = new TsgcWSAPIServer_MCP(NULL);
oMCP->Server = sgcHTTPServer1;
oMCP->EndpointOptions->Endpoint = "/mcp";
oMCP->MCPOptions->ServerInfo->Name = "sgc-mcp-server";
oMCP->MCPOptions->ServerInfo->Version = "1.0.0";
oMCP->TransportOptions->HttpStreamable->Enabled = true;
oMCP->OnMCPRequestTool = SrvCallTool;
sgcHTTPServer1->Active = true;
가장 자주 사용하게 되는 멤버들입니다.
Server는 요청을 수신하는 HTTP 서버 또는 WebSocket 서버를 가리키고, EndpointOptions.Endpoint는 JSON-RPC 요청이 도착하는 경로입니다.
ServerInfo는 핸드셰이크 과정에서 클라이언트에게 보이는 정보입니다. SessionTimeout은 유휴 세션을 만료시키고, TasksSupported는 tasks 기능을 알리며, AuthenticationOptions는 API 키, 사용자 지정 헤더, OAuth 2.0을 다룹니다.
Http.Enabled는 POST 기반의 일반 JSON-RPC를 제공합니다. HttpStreamable.Enabled는 keep-alive와 SSE 알림 스트림을 더해 주며, 이것이 알림과 서버가 시작하는 요청을 가능하게 합니다. HttpStreamable.ValidateOrigin은 세션을 생성 당시의 Origin 헤더에 고정합니다.
Tools, Prompts, Resources, ResourceTemplates가 서버에서 알리는 항목을 담습니다. 시작할 때 채우거나 런타임에 변경한 다음 그에 맞는 list-changed 알림을 보내세요.
OnMCPRequestTool, OnMCPRequestPrompt, OnMCPRequestResource에서 사용자 코드가 실제 작업을 처리합니다. OnMCPInitialize, OnMCPSessionNew, OnMCPSessionEnd가 세션 수명 주기를 추적하고, OnMCPException이 오류를 알려 줍니다.
SendNotificationToolsListChanged, SendNotificationPromptsListChanged, SendNotificationResourcesListChanged, SendNotificationResourcesUpdated, SendLogMessage가 연결된 세션에 변경 사항을 전달합니다.
RequestRootsList, RequestSamplingCreateMessage, RequestElicitationCreate로 서버가 클라이언트에 파일 시스템 루트, 모델 completion, 사용자 입력을 요청하고, 그 답은 대응하는 OnMCPResponse* 이벤트로 전달됩니다.
이 컴포넌트는 MCP 인증 흐름의 인가 서버 쪽을 구현하며, 동적 클라이언트 등록과 동의 페이지, PKCE, 리프레시 토큰을 포함합니다. 따라서 별도의 신원 서비스 없이도 에이전트가 서버에 인가를 받을 수 있습니다.
이 컴포넌트가 사용하는 서비스와 프로토콜의 공식 자료입니다.