Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
InterBaseRAD Studioデータベースニュース

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つの主要な機能を中心とした統一プロトコルを確立します。

  • ツール: LLMがアクションを実行できるようにする実行可能な関数(クエリの実行や管理タスクのトリガーなど)
  • リソース: モデルに提供されるコンテキストデータソース(スキーマやリファレンスドキュメントなど)
  • プロンプト: AIが特定のタスクにどのようにアプローチするかをガイドする再利用可能なテンプレート

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 は、以下の機能を提供します。

  • クリーンアーキテクチャと依存性注入: データベースとのやり取りをクリーンに分離し、テストしやすく、保守しやすくします
  • ネイティブプロトコル処理: JSON-RPC通信、ルーティング、ツールレジストリを管理するための堅牢な基本機能を提供します
  • コールドスタート不要のパフォーマンス: 仮想マシンのオーバーヘッドなしに、ネイティブマシンコードへのコンパイルと実行を驚異的な速さで実現します

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

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など)で設定され、きめ細かなアクセス制御が可能です。

  • DMLと DDL ガード: 組み込みのブロッキングリスト (ForbiddenDML および ForbiddenDDL) により、意図しないステートメント (DROP、TRUNCATE、ALTER など) の実行が防止されます
  • 階層型ロールシークレット: 設定可能な共有シークレットにより、VIEW (読み取り専用)、CRUD (書き込み操作)、DBA (管理操作) の各レベルにわたってアクセス階層が適用されます
  • 監査ログ: ツール実行ログを構造化されたJSON形式(logs/audit.jsonl)に記録し、コンプライアンス遵守とレビューに役立てます

インストールオプション

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

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

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

  • 要件:システムにInterBaseがインストールされている必要があります(最低限、データベースを接続を確立するためのInterBaseクライアントDLL/ライブラリが必要です)
  • 利用可能なパッケージ:
    • 🪟 Windows (x64): mcp_interbase-win64-v1.0.zip
    • 🐧 Linux (x86_64): mcp_interbase-linux-x86-64-v1.0.zip
    • ⚙️ 設定テンプレート: mcp_interbase.template.ini
    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クエリを作成してください。」と指示することで結果を得ることができます。

    vcl13_02

    コミュニティに参加する

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

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

    Kai for RAD Studio is Now Available! Special Live Webinar: Introducing Kai - A New Chapter for RAD Studio RAD Studio 13.1 Florence Now Available

    Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
    Design. Code. Compile. Deploy.

    Start Free Trial   Upgrade Today

       Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES