MCP クライアント

TsgcWSAPIClient_MCP は、Model Context Protocol のクライアント側を担います。HTTP、HTTP Streamable、ローカルの stdio サブプロセスのいずれかで任意の MCP サーバーに接続し、提供されているツール、プロンプト、リソースを一覧表示して、コードから呼び出せます。

TsgcWSAPIClient_MCP

3 種類のトランスポートに対応した JSON-RPC ベースの MCP クライアントです。initialize ハンドシェイクを実行してセッションを管理し、リクエストを送信するほか、アプリケーションが対応を選んだサーバー発のリクエストにも応答します。

コンポーネントクラス

TsgcWSAPIClient_MCP

用途

MCP サーバーの利用

カテゴリ

Model Context Protocol

プラットフォーム

Windows、macOS、Linux、iOS、Android

sgcAI は単体で完結しています。このコンポーネントは、土台となる sgcWebSockets Core ランタイムとともに sgcAI に同梱されています。

MCP サーバーのツールを呼び出す

トランスポートとそのオプションを設定して初期化し、ツール、プロンプト、リソースを一覧表示して呼び出します。

uses
  sgcAI, sgcAI_MCP_Classes, sgcAI_MCP_Types;

var
  oMCP: TsgcWSAPIClient_MCP;
begin
  oMCP := TsgcWSAPIClient_MCP.Create(nil);

  // Remote server over streamable HTTP.
  oMCP.MCPOptions.Transport      := aimcptrHttpStreamable;
  oMCP.MCPOptions.HttpOptions.URL := 'https://mcp.example.com/mcp';
  oMCP.MCPOptions.ClientInfo.Name    := 'sgc-mcp-client';
  oMCP.MCPOptions.ClientInfo.Version := '1.0.0';
  oMCP.MCPOptions.AuthenticationOptions.ApiKey.Enabled := True;
  oMCP.MCPOptions.AuthenticationOptions.ApiKey.Value   := 'mcp-...';

  oMCP.OnMCPListTools    := MCPListTools;
  oMCP.OnMCPResponseTool := MCPToolResponse;

  oMCP.Initialize;
  oMCP.ListTools;
  oMCP.RequestTool('GetTemperature', vArguments);   // vArguments: IsgcJSON
end;

// Or spawn a local MCP server as a subprocess instead:
oMCP.MCPOptions.Transport := aimcptrStdio;
oMCP.MCPOptions.StdioOptions.Command   := 'C:\tools\my-mcp-server.exe';
oMCP.MCPOptions.StdioOptions.Arguments := '--stdio';
// includes: sgcAI.hpp, sgcAI_MCP_Classes.hpp, sgcAI_MCP_Types.hpp

TsgcWSAPIClient_MCP *oMCP = new TsgcWSAPIClient_MCP(NULL);
oMCP->MCPOptions->Transport = aimcptrHttpStreamable;
oMCP->MCPOptions->HttpOptions->URL = "https://mcp.example.com/mcp";
oMCP->MCPOptions->ClientInfo->Name = "sgc-mcp-client";

oMCP->OnMCPListTools    = MCPListTools;
oMCP->OnMCPResponseTool = MCPToolResponse;

oMCP->Initialize();
oMCP->ListTools();

主なプロパティとメソッド

最もよく使うメンバーです。

トランスポート

MCPOptions.Transport で選択します。aimcptrHttp は POST 上の素の JSON-RPC、aimcptrHttpStreamable はキープアライブと SSE の通知ストリーム、aimcptrStdio はローカルサーバーをサブプロセスとして起動します。

HttpOptions と StdioOptions

HttpOptions は URL、TLS オプション、ログ出力を扱います。StdioOptions はサブプロセス用に Command、Arguments、WorkingDir、Environment、Timeout を扱います。

認証

AuthenticationOptions は、API キー、カスタムヘッダー、さらに ID アサーションを含む完全な OAuth 2.0 フローに対応します。公開 MCP サーバーで求められることが増えている方式です。

セッション

Initialize がハンドシェイクを行い、Ping が生存確認をします。HeartBeat は定期的に ping を送信してアイドルセッションの切断を防ぎ、Session はネゴシエート済みのセッション状態を公開します。

ツール、プロンプト、リソース

ListTools と RequestTool、ListPrompts と RequestPrompt、ListResources、ListResourceTemplates、RequestResource が利用できます。一覧系はページングのためのカーソル引数を受け付けます。

サブスクリプションとログ

SubscribeResource と UnsubscribeResource でリソースの変更を追跡し、SetLoggingLevel でサーバー側のログ詳細度を調整し、Complete で引数の補完候補を要求します。

サーバーへの応答

OnMCPListRoots、OnMCPSamplingCreateMessage、OnMCPElicitationCreate は、サーバーがクライアントにファイルシステムのルート、モデルの補完結果、ユーザー入力を求めたときに発生します。アプリケーション側で回答を返します。マルチラウンドトリップリクエスト (MRTR) の外でこれらのリクエストを直接送信するレガシー (2025-11-25 以前) のサーバーには、ハンドラーが処理を終えると自動的に応答が返されます。

イベント

OnMCPInitialize、OnMCPPing、OnMCPListTools、OnMCPResponseTool、OnMCPListPrompts、OnMCPResponsePrompt、OnMCPListResources、OnMCPResponseResource、OnMCPStreamMessage が用意されています。

MCP 2026-07-28

MCPOptions.ProtocolEra で Auto、Modern、Legacy を選択します。Auto では、クライアントが server/discover を呼び出し、サーバーが旧バージョンの場合は 2025-11-25 の initialize ハンドシェイクにフォールバックします。結果は Discover、NegotiatedEra、OnMCPDiscover で確認できます。

Multi Round-Trip Requests

サーバーが呼び出しを完了するために Elicitation、Sampling、Roots を必要とする場合、OnMCPInputRequired がリクエストと共に発生します。回答を設定すると、クライアントは署名済みの requestState を使って、MCPOptions.MRTR.MaxRounds の上限まで再試行します。

subscriptions/listen

SubscriptionsListen は、リスト変更とリソース更新を配信するストリームを開き、OnMCPListChanged と OnMCPResourcesUpdated を通じて届けます。SubscriptionsCancel でストリームを閉じます。

Tasks 拡張

MCPOptions.Tasks.Enabled で拡張を宣言します。AutoPoll は実行中のタスクを自動的にポーリングします。TasksGet、TasksUpdate、TasksCancel は手動メソッドで、OnMCPTaskCreated、OnMCPTaskStatus、OnMCPTaskCompleted が進捗を報告します。

MCP サーバー向け OAuth

MCPOptions.Authorization は保護リソースのメタデータを検出し、Client ID Metadata Documents または application_type を伴う動的登録を通じて登録し、PKCE とリソースインジケーターを使用し、iss (RFC 9207) を検証し、発行者ごとに認証情報を保持します。

仕様と参考資料

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

さらに詳しく

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

はじめてみませんか

無料体験版をダウンロードして、Delphi や C++ Builder から MCP サーバーを呼び出してみましょう。