MCP サーバーコンポーネント — sgcAI | eSeGeCe

MCP サーバー

TsgcWSAPIServer_MCP は、sgc の HTTP サーバーまたは WebSocket サーバーを Model Context Protocol サーバーに変えます。独自のツール、プロンプト、リソースを公開すれば、MCP に対応したクライアント、IDE のエージェント、デスクトップアシスタント、あるいは自作のコードからアプリケーションを呼び出せます。

TsgcWSAPIServer_MCP

MCP のサーバー側を担います。指定したエンドポイントで JSON-RPC を解析し、セッションを管理し、ツール、プロンプト、リソースの各リクエストごとにイベントを発生させます。通知やサーバー発のリクエストをクライアントへ送り返すこともできます。

コンポーネントクラス

TsgcWSAPIServer_MCP

用途

AI クライアント向けのツール公開

カテゴリ

Model Context Protocol

プラットフォーム

Windows、macOS、Linux、iOS、Android

sgcAI は単体で完結しています。このコンポーネントは、土台となる sgcWebSockets Core ランタイムとともに sgcAI に同梱されているため、基本ライセンスを購入する必要はありません。

ツールを AI クライアントに公開する

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 リクエストが届くパスです。

MCPOptions

ServerInfo はハンドシェイク時にクライアントへ見せる情報です。SessionTimeout はアイドルセッションを期限切れにし、TasksSupported はタスク機能を告知し、AuthenticationOptions は API キー、カスタムヘッダー、OAuth 2.0 を扱います。

TransportOptions

Http.Enabled は POST 上の素の JSON-RPC を提供します。HttpStreamable.Enabled はキープアライブと SSE の通知ストリームを追加し、これにより通知とサーバー発のリクエストが可能になります。HttpStreamable.ValidateOrigin はセッションを最初の Origin ヘッダーに固定します。

カタログ

ToolsPromptsResourcesResourceTemplates がサーバーの公開内容を保持します。起動時に設定するか、実行時に変更して対応する list-changed 通知を送信してください。

リクエストイベント

実際の処理は OnMCPRequestToolOnMCPRequestPromptOnMCPRequestResource に記述します。OnMCPInitializeOnMCPSessionNewOnMCPSessionEnd がセッションのライフサイクルを追跡し、OnMCPException が失敗を通知します。

通知

SendNotificationToolsListChangedSendNotificationPromptsListChangedSendNotificationResourcesListChangedSendNotificationResourcesUpdatedSendLogMessage で、接続中のセッションへ更新を送信します。

サーバー発のリクエスト

RequestRootsListRequestSamplingCreateMessageRequestElicitationCreate を使うと、サーバーからクライアントにファイルシステムのルート、モデルの補完結果、ユーザー入力を要求できます。応答は対応する OnMCPResponse* イベントで受け取ります。

OAuth 2.0 を内蔵

MCP の認証フローにおける認可サーバー側を実装しています。動的クライアント登録、同意画面、PKCE、リフレッシュトークンまで含まれるため、別途 ID サービスを用意しなくてもエージェントがサーバーに対して認可を得られます。

仕様と参考資料

このコンポーネントが利用するサービスとプロトコルの一次情報です。

さらに詳しく

オンラインヘルプsgcAI コンポーネントの完全な API リファレンスと利用ガイドです。
sgcAI の全コンポーネント15 コンポーネントすべての機能一覧を確認できます。
無料体験版をダウンロード独自のアプリケーションロジックを AI クライアントに公開できます。
価格Single、Team、Site の各ライセンス。完全なソースコード付き、基本製品は不要です。
最もお得な選択: All-AccesseSeGeCe の全製品にプレミアムサポートが付いて、年間 €1,059 からご利用いただけます。
All-Access の価格を見る

はじめてみませんか

無料体験版をダウンロードして、MCP 経由で AI エージェントからアプリケーションを呼び出せるようにしましょう。