Site icon Embarcadero RAD Studio, Delphi, & C++Builder Blogs

InterBaseとAgentic AIの連携:InterBase MCPサーバーの発表

この記事は、 Rizzato Fernando氏によるblog記事「Bridging InterBase with Agentic AI: Announcing the InterBase MCP Server」の抄訳です。

生成型AIが単純な会話型のテキスト生成から、LLMによる推論、クエリ、検査、エンタープライズインフラストラクチャの保守を行うエージェント型ワークフローへと進化するにつれ、モデルをリレーショナルデータベースに安全に接続することがこれまで以上に重要になっています。GitHubでInterBase MCP Server v1.0デモプロジェクトをリリースしたことをお知らせいたします!

モデルコンテキストプロトコル(MCP)サーバーとは?

モデルコンテキストプロトコル(MCP)は、大規模言語モデル(LLM)が外部ツール、データソース、サービスに安全にアクセスする方法を標準化するために設計されたオープンスタンダードです。

LLMやクライアントアプリケーションごとに個別のカスタムAPIラッパーを作成する代わりに、MCPは3つの主要な機能を中心とした統一プロトコルを確立します。

MCPサーバーはインテリジェントな仲介役として機能します。AIクライアントがデータベースの制約を分析したり、運用記録を取得したりする場合、安全なトランスポートチャネルを介して標準のJSON-RPCを使用してMCPサーバーと通信し、インフラストラクチャの制御とセキュリティを維持します。

Delphi 用 Dext Framework で構築

InterBase MCP Server プロジェクトは、ソースからビルドする場合、Delphi 13.0 以降 を必要とし、Dext Framework に厳密に依存しています。

Dext とは ?

Dextは、Delphi (Object Pascal) 開発向けに設計された最新のフルスタックフレームワークです。エンタープライズグレードのアーキテクチャパターン (ASP.NET Core と同様) をネイティブ Pascal にもたらす Dext は、以下の機能を提供します。

主な機能とツールカテゴリ

InterBase MCP Server は、5 つの明確な運用カテゴリに分類された 30 種類の MCP ツール を提供します。

カテゴリ主なツールと機能
🔍 スキーマ検査get_database_info、get_tables、get_views、get_columns、get_indexes、get_foreign_keys、get_check_constraints、get_stored_procedures、get_triggers、get_functions、get_generators、get_exceptions、get_domains

データベース構造、テーブル、ビュー、フィールド、制約、ストアドロジック、UDF、シーケンス、例外、ドメイン定義を詳細に分析します。

⚡ クエリ実行open_cursor、execute_sql、execute_procedure、explain_plan

カーソルを介して読み取り専用のSELECTクエリを実行し、クエリ以外のステートメント(DML/DDL)を処理し、ストアドプロシージャを安全に実行し、インデックス最適化のためにInterBase実行プランを取得します。

📈 パフォーマンス &監視stat_attachments、stat_database、stat_transactions、stat_statements、stat_procedures、stat_triggers、stat_pools、stat_pool_blocks、stat_heaps、stat_indices、stat_relations

リアルタイムのデータベースアクティビティ、接続、トランザクション、アクティブなステートメント、キャッシュされたロジック、メモリプールの割り当て、およびリレーションキャッシュの使用状況を監視します。

🛡️ セキュリティ &監査get_user_privileges、list_roles、get_role_members、get_audit_log

付与されたユーザー権限を検査し、データベースのロール/メンバーを一覧表示し、フィルタリング機能を使用して日々のツール実行監査ログを読み取ります。

🧰 データベース管理backup_database、restore_database、validate_database、sweep_database

DBAレベルのメンテナンス作業、データベースの整合性検証/修復、ストレージのスキャン、およびバックアップ/リストアルーチンを実行します。

設定とセキュリティポリシー

AIエージェントにデータベースシステムへのアクセスを許可する際は、セキュリティが最優先事項となります。サーバーはINIファイル(mcp_interbase.iniなど)で設定され、きめ細かなアクセス制御が可能です。

インストールオプション

すぐに起動して実行したい場合でも、Delphiでサーバーコードをカスタマイズしたい場合でも、2つの柔軟なパスオプションがあります。

オプションA:ビルド済みリリース(最速)

コンパイルせずにデプロイする場合は、v1.0リリースのアセットをGitHubリリースページから直接ダウンロードしてください。

  1. お使いのプラットフォーム用のzipアーカイブをダウンロードして解凍してください。
  2. バイナリディレクトリ内の mcp_interbase.template.ini を mcp_interbase.ini に名前変更してください。
  3. INI ファイルを編集して、データベースのパス、認証情報、ポートを設定してください。

オプションB:Delphiでローカルビルドする(開発者向け推奨)

ローカルビルドでは、ツールの拡張、サーバーロジックのカスタマイズ、プロジェクトへの貢献が可能です。

  1. インストールの前提条件: Delphi 13.0(またはそれ以降)をインストールしてください。 DextフレームワークTMS Smart Setup経由を推奨)。
  2. リポジトリのクローン:
    git clone https://github.com/Embarcadero/InterbaseMCP.git
  3. ビルド: RAD Studio / Delphi でプロジェクトを開き、実行可能ファイルをコンパイルします。

重要: InterBase MCP は InterBase Server を使用することもできますが、ローカル テスト用の無料版 InterBase Developer Edition ともシームレスに連携します。 InterBaseをまだご利用でない場合は、以下のリンクからServer版のトライアルライセンスをお申し込みいただけます。 https://embarcadero.com/jp/products/interbase

設定例

データベース接続、サーバーエンドポイント、セキュリティシークレットをmcp_interbase.ini設定ファイルで設定してください。

[MCPServer]
MCPHost=localhost
MCPPort=5000
UseHttps=0
SslProvider=OpenSSL
SslCert=server.crt
SslKey=server.key
SslRootCert=

[Database]
Host=localhost
Port=3050
Database=c:\data\employee.gdb
UserName=SYSDBA
Password=masterkey
CharacterSet=UTF8

[Security]
ForbiddenDML=INSERT,UPDATE,DELETE,TRUNCATE
ForbiddenDDL=DROP,GRANT,REVOKE,SET
VIEWSecret=C123F132-6FA5-4816-A660-BB053DA00A50
CRUDSecret=BA643CD1-A0D5-4274-AD61-E48AA717F78E
DBASecret=47473810-558E-447B-8A6F-AF67A0B7DBF8

[Logging]
AuditPath=logs/audit.jsonl

注: HTTPS/SSL設定は現在無効になっており、今後のリリースでサポートされる予定です。

AIエージェントを介して対話する

サーバーが起動したら(事前にビルドされた実行ファイルまたはローカルビルドのいずれかを使用)、お好みのMCPクライアントまたはAIエージェントを接続して、自然言語によるデータベースへの質問を開始してください。

プロンプト: InterBaseに対して、総売上高で上位10社の顧客を返すSQLクエリを作成してください。顧客ID、名前、注文数、および合計売上金額を含めてください。

InterbaseのEmployee データベースを使用すると、これとほぼ同じ結果が得られます。

SELECT
    c.cust_no AS customer_id,
    c.customer AS customer_name,
    COUNT(s.po_number) AS order_count,
    SUM(s.total_value) AS total_sales_amount
FROM customer c
JOIN sales s
    ON s.cust_no = c.cust_no
GROUP BY
    c.cust_no,
    c.customer
ORDER BY
    total_sales_amount DESC
ROWS 1 TO 10

訳者注: Kai と接続して実行する場合は、Kai の MCP設定にて NAME: mcp-interbase、タイプ:リモート、URL: http://localhost:5000/mcp とし、Kai のチャットプロンプトから「mcp-interbaseを利用し、Employeeデータベースから総売り上げ高で上位10社の顧客を返すSQLクエリを作成してください。」と指示することで結果を得ることができます。

コミュニティに参加する

InterBase MCP ServerはEmbarcadero Technologiesのオープンソースソフトウェアです。

開発者の皆様には、ビルド済みのバイナリをテストしたり、ローカルでビルドしたり、問題を報告したり、今後のマイルストーンリリースに貢献したりすることを推奨します。

Exit mobile version