Delphi MCP コンポーネント | Model Context Protocol クライアント & サーバー | eSeGeCe

Delphi MCP コンポーネント — Model Context Protocol クライアントとサーバー

Model Context Protocol を通じて Delphi アプリケーションを AI エコシステムに接続します。TsgcWSAPIServer_MCP はアプリケーションのツール、プロンプト、リソースを AI モデルに公開し、TsgcWSAPIClient_MCP はあらゆる MCP 互換サーバーを利用します。同じライブラリには OpenAI、Anthropic Claude、Google Gemini 向けの AI API クライアントも同梱されます。

AI モデルとアプリケーションの間の橋

MCP は、大規模言語モデルを外部のツールとデータに接続するための新興標準です。AI プロバイダーごとのカスタム統合の代わりに、実装するのは 1 つのプロトコルだけです。

Delphi での Model Context Protocol とは、既存の VCL または FMX アプリケーションが AI からアクセス可能なサービスになれるということです。プロトコルは JSON-RPC ベースで、3 つのプリミティブを定義します: ツール(型付きパラメーターを持つ呼び出し可能な関数)、プロンプト(引数を持つ再利用可能なテンプレート)、リソース(URI アドレッシングで公開されるデータ)。MCP サーバーがそれらを公開し、MCP クライアント(Claude Desktop、Cursor、または自作の Delphi アプリケーション)がそれらを発見して呼び出します。

サーバーコンポーネントは sgcWebSockets の HTTP サーバーにアタッチし、stdio と HTTP の両トランスポートをサポートするため、同じコードが、サブプロセスとして起動するデスクトップ AI アシスタントにも、ネットワーク越しに呼び出すリモートエージェントにも対応します。クライアントコンポーネントは HTTP または HTTP Streamable 上で JSON-RPC を話し、カタログ面全体をカバーします: 初期化、ツールの列挙と呼び出し、プロンプトの取得、リソースの読み取り、さらに対話的 AI ワークフローのためのサンプリングとエリシテーション。

MCP サーバー

TsgcWSAPIServer_MCP: ツール、プロンプト、リソース、stdio / HTTP トランスポート

MCP クライアント

TsgcWSAPIClient_MCP: あらゆる MCP 互換サーバーを発見して呼び出し

AI API クライアント

TsgcHTTP_API_OpenAITsgcHTTP_API_AnthropicTsgcHTTP_API_Gemini

コンパイラー

Delphi 7 から RAD Studio 13、C++Builder 10.1 Berlin から 13、Lazarus 4.4.0

プロトコルの両側

サーバー、クライアント、そして MCP が公開するものを消費する AI プロバイダークライアント。

型付きスキーマのツール

Tools.AddTool が呼び出し可能な関数とその InputSchema プロパティを登録します。呼び出しは、パース済みの引数と構造化レスポンスオブジェクトと共に OnMCPRequestTool イベントに到着します。

プロンプト & リソース

引数付きの再利用可能なプロンプトテンプレートと URI アドレスのリソースを、OnMCPRequestPromptOnMCPRequestResource 経由で提供します。

クライアントカタログ面

InitializeListToolsListPromptsListResourcesListResourceTemplates、続いてイベント駆動のレスポンスを伴う RequestTool / RequestPrompt / RequestResource

サンプリング & エリシテーション

クライアントは MCP サンプリング(サーバーが要求する AI モデルとの対話)とエリシテーション(ワークフロー途中でのユーザー入力の収集)という、プロトコルの 2 つの対話的拡張をサポートします。

認証

クライアント側の認証オプションには AuthenticationOptions.ApiKey による API キーが含まれます。OAuth2 保護された MCP サーバーについてはブログを参照してください。

2 つのトランスポート

サブプロセス起動サーバー向けの stdio(Claude Desktop モデル)と、ネットワークデプロイ向けの HTTP。1 つのコンポーネントで両チャネル。

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 argument
  with 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);
begin
  if aRequest.Params.Name = 'GetTemperature' then
    aResponse.Result.Content.AddText('The current temperature in ' +
      aRequest.Params.Arguments.Item[0].Value + ' is 22 Celsius');
end;
uses
  sgcAI_MCP_Client, sgcAI_MCP_Classes;

var
  MCP: TsgcWSAPIClient_MCP;
begin
  MCP := TsgcWSAPIClient_MCP.Create(nil);
  MCP.MCPOptions.HttpOptions.URL        := 'https://mcp.example.com/';
  MCP.MCPOptions.ClientInfo.Name        := 'sgc-mcp-client';
  MCP.MCPOptions.ClientInfo.Title       := 'sgc MCP demo';
  MCP.MCPOptions.ClientInfo.Version     := '1.0.0';
  MCP.MCPOptions.AuthenticationOptions.ApiKey.Enabled := True;
  MCP.MCPOptions.AuthenticationOptions.ApiKey.Value   := 'sk-mcp-...';

  MCP.OnMCPInitialize    := MCPInit;
  MCP.OnMCPListPrompts   := MCPListPrompts;
  MCP.OnMCPListTools     := MCPListTools;
  MCP.OnMCPResponseTool  := MCPToolResponse;

  MCP.Initialize;
  MCP.ListPrompts;
  MCP.ListResources;
  MCP.ListTools;
  MCP.RequestTool('GetTemperature', '{"city":"Madrid"}');
end;

Delphi チームが MCP で構築するもの

データベースエージェント

制御された型付きツールを通じて、AI モデルにアプリケーションのデータを照会させます。読み取り専用か読み書き可能かは、呼び出しごとにハンドラーが決めます。

業務自動化

CRM、ERP、チケッティングの操作を MCP ツールとして公開し、自然言語の指示で既存の Delphi ビジネスロジックを駆動します。

AI 搭載デスクトップツール

レガシーアプリケーションの機能を stdio MCP サーバーでラップし、Claude Desktop のようなアシスタントにアクセスさせます。

マルチステップ AI ワークフロー

取得、処理、アクションのためのツールとリソースを単一の AI 駆動パイプラインに連結し、Delphi 側からオーケストレーションします。

sgcWebSockets での MCP と AI の詳細

MCP 概要

Model Context Protocol とは何か、サーバーとクライアントのコンポーネントがどう作業を分担するか。

MCP サーバーコンポーネント

TsgcWSAPIServer_MCP の完全リファレンス: プロパティ、メソッド、イベント。

MCP クライアントコンポーネント

TsgcWSAPIClient_MCP の完全リファレンス: カタログメソッドとレスポンスイベント。

ブログ: MCP サーバーの構築

動作する Delphi MCP サーバーのステップ・バイ・ステップのウォークスルー。

ブログ: MCP クライアント

Delphi クライアントを MCP サーバーに接続し、そのツールを呼び出す。

ブログ: MCP 認証

MCP エンドポイントの保護: Delphi からの API キーと認証済みフロー。

Best value: All-AccessEvery eSeGeCe product, Premium Support included, from €1,059/year.
See All-Access pricing

今日、MCP で構築を始める

トライアルをダウンロードし、お気に入りの AI アシスタントに対して MCP サーバーとクライアントのデモを実行してください。