Delphi MCP Server Prompts (3/4)

· 기능
sgcWebSockets 2025.9.0부터 Model Context Protocol(MCP) 서버가 이제 프롬프트 요청을 지원해요. AI 클라이언트가 동적 프롬프트 템플릿을 조회하고 렌더링할 수 있어요. 이 기능을 통해 MCP 표준을 사용하여 WebSocket을 통해 재사용 가능한 AI 프롬프트("텍스트 요약" 또는 "코드 검토" 등)를 직접 노출할 수 있어요.

MCP 프롬프트 요청이란?

MCP에서 프롬프트는 클라이언트가 발견하고 일관되게 모델 입력을 생성하는 데 사용할 수 있는 구조화된 템플릿이에요.
각 MCP 서버는 다음을 노출해요:

  1. prompts/list — 이용 가능한 프롬프트를 열거해요.
  2. prompts/get — 주어진 인수로 특정 프롬프트를 렌더링해요.
  3. notifications/prompts/list_changed — 프롬프트 카탈로그가 변경될 때 클라이언트에 알려요.

이를 통해 대규모 언어 모델이나 에이전트가 이용 가능한 템플릿을 검색하고 컨텍스트와 함께 동적으로 렌더링할 수 있어요.

프롬프트 목록 조회

클라이언트가 prompts/list를 호출하면 서버는 각 프롬프트의 이름, 설명, 인수 스키마를 포함한 프롬프트 정의 배열을 반환해야 해요.

코드 리뷰 프롬프트를 게시하는 예제 코드예요:

procedure TMainForm.FormCreate(Sender: TObject);
var
  oPrompt: TsgcAI_MCP_Prompt;
begin
  MCPServer.Prompts.Clear;
  oPrompt := MCPServer.Prompts.AddPrompt('CodeReview',
    'Asks the LLM to analyze code quality and suggest improvements');
  oPrompt.Arguments.AddArgument('code', 'The code to review', True);
end; 

프롬프트 요청

클라이언트가 prompts.call JSON-RPC 요청을 보내면 TsgcWSAPIServer_MCPOnMCPRequestPrompt 이벤트를 발생시키기 전에 강력하게 형식화된 요청 객체(도구 이름과 제공된 인수 포함)를 채워요. 핸들러가 응답 페이로드를 채우면 성공 HTTP 상태 코드와 함께 클라이언트로 직렬화되어 전송돼요.

일반적인 핸들러는 다음과 같아요:

procedure TFRMMCPServer.MCPServerMCPRequestPrompt(Sender: TObject;
  const aSession: TsgcAI_MCP_Session; const aRequest: TsgcAI_MCP_Request_PromptsGet;
  const aResponse: TsgcAI_MCP_Response_PromptsGet);
begin
  if aRequest.Params.Name = 'CodeReview' then
  begin
    aResponse.Result.Description := 'Code review prompt';
    aResponse.Result.Messages.AddText('user',
      'Please review this Delphi code: ShowMessage(''Hello World'' ');
  end;
end; 

MCP 프롬프트가 sgcWebSockets 2025.9.0에 통합됨으로써 개발자는 구조화되고, 발견 가능하며, 동적인 프롬프트를 노출하는 AI 인식 WebSocket 서버를 만들 수 있어요. LLM과 실시간 애플리케이션 데이터 간의 격차를 해소해요.

더 알아보기

심층 문서와 컴포넌트 참조는 다음을 방문하세요:

sgcWebSockets MCP Prompts Server Guide 


Windows용 Delphi MCP 서버 데모를 아래에서 찾아볼 수 있어요.