この記事は、 Rizzato Fernando氏によるblog記事「Bridging InterBase with Agentic AI: Announcing the InterBase MCP Server」の抄訳です。
生成型AIが単純な会話型のテキスト生成から、LLMによる推論、クエリ、検査、エンタープライズインフラストラクチャの保守を行うエージェント型ワークフローへと進化するにつれ、モデルをリレーショナルデータベースに安全に接続することがこれまで以上に重要になっています。GitHubでInterBase MCP Server v1.0デモプロジェクトをリリースしたことをお知らせいたします!
Table of Contents
モデルコンテキストプロトコル(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
- お使いのプラットフォーム用のzipアーカイブをダウンロードして解凍してください。
- バイナリディレクトリ内の mcp_interbase.template.ini を mcp_interbase.ini に名前変更してください。
- INI ファイルを編集して、データベースのパス、認証情報、ポートを設定してください。
- インストールの前提条件: Delphi 13.0(またはそれ以降)をインストールしてください。 Dextフレームワーク(TMS Smart Setup経由を推奨)。
- リポジトリのクローン:
git clone https://github.com/Embarcadero/InterbaseMCP.git - ビルド: RAD Studio / Delphi でプロジェクトを開き、実行可能ファイルをコンパイルします。
オプションB: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のオープンソースソフトウェアです。
開発者の皆様には、ビルド済みのバイナリをテストしたり、ローカルでビルドしたり、問題を報告したり、今後のマイルストーンリリースに貢献したりすることを推奨します。- 🌐 GitHubリポジトリ: https://github.com/Embarcadero/InterbaseMCP
- 📦 v1.0 最新リリースアセット: https://github.com/Embarcadero/InterbaseMCP/releases/tag/v1.0
Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Free Delphi Community Edition Free C++Builder Community Edition





