Mcp Firebird について
MCP Firebirdは、LLMクライアント経由でデータベースを扱いたいユーザー向けに、Firebird SQLデータベースへのMCPインターフェースを提供します。SQLとメタデータの確認、複数の通信方式、イベント通知、APIキー認証に対応します。
主な機能
- 01FirebirdへのSQLクエリ実行
- 02テーブル、列、関係、DBオブジェクトの確認
- 03クエリ性能の分析と最適化提案
- 04データベースイベントのクライアント通知
- 05STDIO、SSE、Streamable HTTP対応
活用シーン
- 01MCPクライアントからFirebirdデータベースを検索
- 02スキーマやストアドプロシージャなどの確認
- 03リモート接続してデータベースイベントを受信
MCP 対応
MCPサーバーはFirebirdへのSQLクエリ、スキーマ・メタデータ確認、性能分析をクライアントに公開します。STDIO、SSE、Streamable HTTPに対応し、リモートアクセスではAPIキーによる保護も利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
30掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| sql | string | はい | 実行する SQL クエリ(Firebird では LIMIT の代わりに FIRST/ROWS を使用してページネーションします) |
| params | array | いいえ | SQL インジェクションを防ぐためのパラメーター化クエリのパラメーター |
詳細
安定版 2.12.3 には、準備のみを行うオプティマイザー計画と、カタログを考慮したインデックスのアドバイスが含まれています。 2.13.0-alpha.1 のすべての改善が安定版になりました。従来の ISO/UTC 日付が引き続きデフォルトです。タイムゾーンのない出力を有効にするには、
FIREBIRD_DATE_FORMAT=wall-clockのみを設定します。ドライバーのアップグレード、自動インデックス DDL、新しいセキュリティデフォルトはありません。Node.js 20.19+ が必要です。 診断ガイド、リリースノート、日付の設定をご覧ください。
MCP Firebird
Firebird データベース向けの Anthropic の MCP(Model Context Protocol)の実装です。
使用例
https://github.com/user-attachments/assets/e68e873f-f87b-4afd-874f-157086e223af
MCP Firebird とは?
MCP Firebird は、Firebird SQL データベース向けの Anthropic の Model Context Protocol(MCP)を実装するサーバーです。Claude などの大規模言語モデル(LLM)が、Firebird データベース内のデータに安全かつ制御された方法でアクセスし、分析、操作できるようにします。
🚀 MCP 2.7 以降の新機能(パフォーマンスとセキュリティ)
このサーバーは、MCP エコシステムにおける最新のエンタープライズ標準に対応するようアップグレードされました。
- ⚡ コネクションプーリング(レイテンシーゼロ): データベースへの反復クエリでは、メモリー内の永続接続を使用するようになりました。これにより、ハンドシェイクのオーバーヘッドが完全になくなり、ほぼ瞬時に実行されます。
- 🎯 プロアクティブイベント(トリガー): Firebird の
POST_EVENTとネイティブに連携します。サーバーはデータベースイベントをリアルタイムで監視し、継続的なポーリングなしで AI クライアント(例:Claude/n8n)にプロアクティブに通知します。- 簡単な例: エージェントに
NEW_ORDERを指定してsubscribe_to_eventを実行するよう依頼します。Firebird がPOST_EVENT 'NEW_ORDER'を実行すると、エージェントに即座に通知されます。詳しいガイドと例を読む。
- 簡単な例: エージェントに
- 🛡️ エンタープライズ管理認可(EMA): 実際のデータベースパスワード(
SYSDBA)を LLM クライアントに公開したくない場合は、EMA を有効にして、受信接続に--api-keyを必須にできます。サーバーはこのトークンを受け取り、内部で実際のパスワードを安全に注入します。- 簡単な例:
--password "real_password" --api-key "my-secure-token"を指定してサーバーを起動します。リモートクライアントはAuthorization: Bearer my-secure-tokenを使用して接続します。データベースのパスワードがサーバーの外に出ることはありません!セキュリティの詳しいガイドを読む。
- 簡単な例:
- 🌊 双方向ストリーミング(Streamable HTTP/SSE): n8n やリモートデプロイに最適です。HTTP 経由でリアルタイムのイベントストリーミングとステートフルセッションを提供します。
- 簡単な例:
TRANSPORT_TYPE=sse SSE_PORT=3003を設定してサーバーを起動します。クライアント(n8n など)からhttp://YOUR_SERVER:3003/mcpに接続するよう設定します。詳しいガイドを読む。
- 簡単な例:
🏗️ トランスポートモードとアーキテクチャ
MCP Firebird は複数のデプロイアーキテクチャに対応しています。最新のエンタープライズ環境やリモート環境へのデプロイには、**Streamable HTTP(SSE)**の使用を強くおすすめします。
1. [推奨] モダントランスポート(Streamable HTTP/SSE)
n8n、クラウドプラットフォーム、リモートエージェント、またはデータベースと同じマシン上にないツールの接続に最適です。
インストール:
npm install -g mcp-firebird
サーバーの起動:
環境変数(または .env ファイル)を設定します。
export TRANSPORT_TYPE=sse
export SSE_PORT=3003
# Real database credentials protected on the server side:
export FIREBIRD_PASSWORD=masterkey
# Enable EMA to protect external access:
export FIREBIRD_API_KEY=my_secret_token_123
mcp-firebird --database /path/to/database.fdb --user SYSDBA
クライアント接続:
AI クライアント(例:MCP Inspector、n8n)は http://localhost:3003 に接続します。EMA により、実際のデータベースパスワードの代わりに API キーのみを指定すれば接続できます。
2. [ローカル/レガシー] 標準トランスポート(STDIO)
これは、同じマシン上での個人利用(例:Claude Desktop)のみに推奨される従来の方法です。Claude はバックグラウンドで独自の MCP Firebird サブプロセスを起動します。
主な機能
-
SQL クエリ:Firebird データベースに対して SQL クエリを実行します
-
スキーマ分析:テーブル、列、リレーションシップに関する詳細情報を取得します
-
データベースメタデータ:トリガー、ストアドプロシージャ、関数、パッケージをソースコードとともに調査します
-
パフォーマンス分析:クエリのパフォーマンスを分析し、最適化を提案します
-
セキュリティ:SQL クエリの検証、EMA、コネクションプーリングを備えています。
-
2 種類のドライバーに対応:簡単なインストール(デフォルト)と、ワイヤー暗号化に対応したネイティブドライバーから選択できます。
🔒 ワイヤー暗号化への対応
MCP Firebird では、2 種類のドライバーを利用できます。
| ドライバー | インストール | ワイヤー暗号化 | 用途 |
|---|---|---|---|
| Pure JavaScript(デフォルト) | ✅ 簡単(npx) | ❌ いいえ | ほとんどのユーザー、簡単なセットアップ |
| Native Driver(オプション) | ⚠️ 複雑(ビルドツールが必要) | ✅ はい | エンタープライズ、セキュリティが必要な場合 |
クイックスタート(デフォルト — ワイヤー暗号化なし)
npx -y mcp-firebird --database=/path/to/database.fdb
上級者向け(ワイヤー暗号化に対応)
⚠️ 重要:npx はネイティブドライバーでは動作しません。必ずグローバルにインストールしてください。
⚠️ 重要:ワイヤー暗号化はクライアントではなく、Firebird サーバー(firebird.conf)で設定する必要があります。
サーバーの設定(最初に必ず実施):
# In firebird.conf on the server
WireCrypt = Required # or Enabled
クライアントのインストール(必ずグローバルにインストール):
# Step 1: Install build tools
# Windows: Visual Studio Build Tools (https://visualstudio.microsoft.com/downloads/)
# Linux: sudo apt-get install build-essential python3 firebird-dev
# macOS: xcode-select --install && brew install firebird
# Step 2: Install MCP Firebird globally
npm install -g mcp-firebird
# Step 3: Install native driver globally
npm install -g node-firebird-driver-native
# Step 4: Run directly (WITHOUT npx)
mcp-firebird --use-native-driver \
--database=/path/to/database.fdb \
--host=localhost \
--user=SYSDBA \
--password=masterkey
npx を使えない理由:npx が一時キャッシュからパッケージを実行する場合、node-firebird-driver-native のようなグローバルにインストールされたモジュールにはアクセスできません。両方のパッケージを同じ場所にグローバルインストールする必要があります。
📚 詳細なインストール手順については、以下を参照してください。
- ネイティブドライバーのインストールガイド - Windows/Linux/macOS 向けのステップごとの手順
- ワイヤー暗号化ガイド
- 上級者向けインストールガイド
手動インストール
安定版
# Global installation
npm install -g mcp-firebird
# Run the server
npx -y mcp-firebird --database /path/to/database.fdb
安定版の機能(2.12.3):
- MCP 2026-07-28 に対応し、2025 クライアントおよび従来の SSE とも共存できます。サーバーのエントリーポイントは共有されています。
- 構造化されたツールコントラクトと、オプトイン形式の SQL/HTTP セキュリティ制御。
- クエリ/BLOB/トランザクションの安全なクリーンアップと、設定可能なクエリの期限。
- すべてのメタデータの説明、修正された統計情報、登録済みツール数。
- 明示的なポリシーを回避せずに、SQL のグループ化/ウィンドウ構文を認識します。
- Prepare のみのオプティマイザープランと、カタログを確認した単一テーブル向けのインデックスアドバイス。既存の主キー/複合インデックスも考慮し、DDL を自動実行しません。
- デフォルトでは後方互換性のある ISO/UTC 日付形式を出力します。クライアントが必要とする場合は、
FIREBIRD_DATE_FORMAT=wall-clockを指定して MCP プロセスを再起動すると有効になります。日付の設定を参照してください。 - 2.12.3 のリリースノート、2.12.2 の日付互換性に関する修正、2.12.1 の累積的な修正を参照してください。
アルファ版(最新機能)
# Install alpha version with latest features
npm install -g mcp-firebird@alpha
# Or use specific alpha version
npm install -g [email protected]
alpha 2.13.0-alpha.1 の改善点はすべて、安定版 2.12.3 に含まれています。 mcp-firebird@latest を使用するか、[email protected] を指定してください。issue #45 の診断にアルファ版をインストールする必要はありません。既存のテスター向けに、alpha タグは 2.13.0-alpha.1 のままです。新しいフラグ、ドライバーのアップグレード、セキュリティポリシーの緩和は不要で、アドバイザーがインデックスを作成することもありません。接続/セキュリティ設定を維持し、更新後に MCP を再起動してください。診断ガイド、安定版のリリースノート、セキュリティガイド、日付/BLOB 互換性に関する注意事項をお読みください。
VS Code と GitHub Copilot の統合については、VS Code との統合を参照してください。
基本的な使い方
Claude Desktop を使用する場合
-
Claude Desktop の設定を編集します。
code $env:AppData\Claude\claude_desktop_config.json # Windows code ~/Library/Application\ Support/Claude/claude_desktop_config.json # macOS -
MCP Firebird の設定を追加します。
{ "mcpServers": { "mcp-firebird": { "command": "npx", "args": [ "mcp-firebird", "--host", "localhost", "--port", "3050", "--database", "C:\\path\\to\\database.fdb", "--user", "SYSDBA", "--password", "masterkey" ], "type": "stdio" } } } -
Claude Desktop を再起動します。
トランスポートの設定
MCP Firebird は、さまざまなクライアントのニーズやデプロイシナリオに対応するため、複数のトランスポートプロトコルをサポートしています。
STDIO トランスポート(デフォルト)
STDIO トランスポートは、Claude Desktop との統合における標準的な方法です。
{
"mcpServers": {
"mcp-firebird": {
"command": "npx",
"args": [
"mcp-firebird",
"--database", "C:\\path\\to\\database.fdb",
"--user", "SYSDBA",
"--password", "masterkey"
],
"type": "stdio"
}
}
}
SSE トランスポート(Server-Sent Events)
SSE トランスポートを使用すると、サーバーを Web サービスとして実行できます。Web アプリケーションやリモートアクセスに便利です。
基本的な SSE 設定
# Start SSE server on default port 3003
npx mcp-firebird --transport-type sse --database /path/to/database.fdb
# Custom port and full configuration
npx mcp-firebird \
--transport-type sse \
--sse-port 3003 \
--database /path/to/database.fdb \
--host localhost \
--port 3050 \
--user SYSDBA \
--password masterkey
SSE の環境変数
# Set environment variables
export TRANSPORT_TYPE=sse
export SSE_PORT=3003
export DB_HOST=localhost
export DB_PORT=3050
export DB_DATABASE=/path/to/database.fdb
export DB_USER=SYSDBA
export DB_PASSWORD=masterkey
# Start server
npx mcp-firebird
SSE クライアント接続
SSE サーバーの実行後、クライアントは次のエンドポイントに接続できます。
- SSE エンドポイント:
http://localhost:3003/sse - メッセージエンドポイント:
http://localhost:3003/messages - ヘルスチェック:
http://localhost:3003/health
Streamable HTTP トランスポート(最新)
双方向通信に対応する最新の MCP プロトコルです。
# Start with Streamable HTTP
npx mcp-firebird --transport-type http --http-port 3003 --database /path/to/database.fdb
統合トランスポート(推奨)
SSE と Streamable HTTP の両方のプロトコルを同時にサポートし、自動検出します。
# Start unified server (supports both SSE and Streamable HTTP)
npx mcp-firebird --transport-type unified --http-port 3003 --database /path/to/database.fdb
統合サーバーのエンドポイント
- SSE(レガシー):
http://localhost:3003/sse - Streamable HTTP(最新):
http://localhost:3003/mcp - プロトコルの自動検出:
http://localhost:3003/mcp - ヘルスチェック:
http://localhost:3003/health
設定例
開発環境の設定(SSE)
npx mcp-firebird \
--transport-type sse \
--sse-port 3003 \
--database ./dev-database.fdb \
--user SYSDBA \
--password masterkey
本番環境の設定(統合)
npx mcp-firebird \
--transport-type unified \
--http-port 3003 \
--database /var/lib/firebird/production.fdb \
--host db-server \
--port 3050 \
--user APP_USER \
--password $DB_PASSWORD
SSE を使用した Docker
docker run -d \
--name mcp-firebird \
-p 3003:3003 \
-e TRANSPORT_TYPE=sse \
-e SSE_PORT=3003 \
-e DB_DATABASE=/data/database.fdb \
-v /path/to/database:/data \
purodelhi/mcp-firebird:latest
SSE の詳細設定
セッション管理
セッションのタイムアウトと上限を設定します。
# Environment variables for session management
export SSE_SESSION_TIMEOUT_MS=1800000 # 30 minutes
export MAX_SESSIONS=1000 # Maximum concurrent sessions
export SESSION_CLEANUP_INTERVAL_MS=60000 # Cleanup every minute
npx mcp-firebird --transport-type sse
CORS の設定
ブラウザーアプリケーションでは、カンマ区切りで指定した 1 つ以上のオリジンにアクセスを制限してください。デフォルトは * で、ブラウザーの認証情報は無効になっています。そのため、既存の STDIO および Bearer トークンを使用する MCP クライアントとの互換性が保たれます。
# Allow specific browser origins
export MCP_ALLOWED_ORIGIN="https://myapp.com,https://localhost:3000"
npx mcp-firebird --transport-type sse
安定版 2.12.3 では、2.11/2.12 のセキュリティ改善と従来の日付出力をデフォルトで維持し、安全なクエリ診断を追加しています。 npm install -g mcp-firebird@latest でインストールするか、[email protected] を指定してください。明示的に設定したポリシーは引き続き適用されます。移行ガイドとリリースノートをご確認ください。日付形式の選択は、セキュリティポリシーのフィールドではなく、個別のプロセス環境設定です。
生 SQL による書き込みはデフォルトで無効になっています。2.11.0 では、新しいフラグを必要とせず、DDL を含む書き込みに対して従来の ALLOW_RAW_SQL=true スイッチが維持されています。明示的に設定した操作/テーブル/行/マスキング/ロールの制限と sql.allowDDL=false は、このスイッチによって無効になることはありません。オプトイン制御と、構造化された get-table-data のフィルター形式については、セキュリティガイドをご覧ください。
カスタムセキュリティファイルは、--security-config /absolute/path/security-config.json または FIREBIRD_SECURITY_CONFIG 環境変数で読み込めます。SECURITY_CONFIG と SECURITY_CONFIG_PATH はこの順でフォールバック用の別名として使用されます。CLI オプションは環境変数より優先されます。{"security":{"allowedTables":["EMPLOYEES"],"allowedOperations":["SELECT"],"maxRows":100}} のような JSON オブジェクトを使用してください。信頼できる CommonJS ファイルもサポートされています。ポリシーを変更した後は再起動し、Loaded security configuration from ... が表示されることを確認してください。2.11.0-alpha.2 以降では、選択したファイルが無効または見つからない場合、デフォルトを暗黙に適用せず、初期化を停止します。詳しくはセキュリティガイドをご覧ください。
2.11.0-alpha.1 以降では、ファイルを使わずにセキュリティを設定する場合、同じ JSON 文字列を FIREBIRD_SECURITY_JSON に設定してください。SQL オプションもサポートされています。**2.11.0-alpha.3 では、高度な制限はオプトインです。**リソース割り当て量、期限、カタログへのアクセス拒否、新しいルーチン制限が暗黙に適用されることはありません。必要な制御だけを設定してください。たとえば、{"security":{"maxRows":100}} を設定すると、その行数制限だけが有効になります。以前のリリースでは適用されなかったオプションを含め、明示的に設定したポリシーは適用されます。ファイルパスが優先されます。この変数を設定できるのは、信頼できる管理者または起動プロセスに限られます。HTTP/SSE クライアントから変更することはできません。インライン JSON は 64 KiB(UTF-8)までで、コードを実行せずに検証され、ローダーによってログに記録されることはありません。ポリシーが無効な場合、初期化は拒否されます。このソースを無効にするには変数の設定を解除し、変更後は再起動してください。移行に関する注意事項、設定例、実装レビューをご確認ください。
SSL/TLS のサポート
本番環境へのデプロイでは、nginx などのリバースプロキシを使用してください。
server {
listen 443 ssl;
server_name mcp-firebird.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:3003;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
トラブルシューティング
Firebird 接続の問題
-
ワイヤー暗号化の非互換性(Firebird 3.0+) ⚠️ 重大
エラー:
Incompatible wire encryption levels requested on client and server重要:
node-firebirdライブラリは Firebird 3.0+ のワイヤー暗号化をサポートしていません。--wire-cryptパラメーターは機能しません。唯一の解決策:Firebird サーバーでワイヤー暗号化を無効にする必要があります。
Firebird 3.0 の場合は、
firebird.confに追加します:WireCrypt = Disabled AuthServer = Srp, Legacy_AuthFirebird 4.0+ の場合は、
firebird.confに追加します:WireCrypt = Disabled AuthServer = Srp256, Srp, Legacy_AuthFirebird 5.0 Docker の場合:
environment: FIREBIRD_CONF_WireCrypt: Disabled FIREBIRD_CONF_AuthServer: Srp256, Srpサーバーの設定を変更できない場合は、代替策についてワイヤー暗号化の制限を参照してください。
-
Linux/Unix でのデータベースパスの問題
問題:リモート接続文字列または Unix パスが機能しない
解決策:これは v2.4.0-alpha.1+ で修正されています。次のパスが正しく機能するようになりました。
- リモート:
server:/path/to/database.fdb - Unix の絶対パス:
/var/lib/firebird/database.fdb - IP ベース:
192.168.1.100:/data/db.fdb
- リモート:
-
Windows で大文字と小文字が混在するパスを使用した場合の I/O エラー
エラー:
I/O error during CreateFile (open) operation問題:大文字と小文字が混在するデータベースパス(例:
C:\MyData\database.fdb)がエラーの原因になります回避策:
- すべて大文字のパスを使用します:
C:\MYDATA\DATABASE.FDB - スラッシュを使用します:
C:/MyData/database.fdb - 詳細については、ワイヤー暗号化の修正に関するドキュメントを参照してください
- すべて大文字のパスを使用します:
SSE 接続の問題
-
接続拒否
# Check if server is running curl http://localhost:3003/health # Check port availability netstat -an | grep 3003 -
セッションタイムアウト
# Increase session timeout export SSE_SESSION_TIMEOUT_MS=3600000 # 1 hour -
CORS エラー
# Allow all origins (development only) export CORS_ORIGIN="*" -
メモリの問題
# Reduce max sessions export MAX_SESSIONS=100 # Enable more frequent cleanup export SESSION_CLEANUP_INTERVAL_MS=30000 -
JSON 解析の問題(v2.3.0-alpha.1+ で修正済み)
# If experiencing "Invalid message: [object Object]" errors, # upgrade to the latest alpha version: npm install mcp-firebird@alpha # Or use the latest alpha directly: npx mcp-firebird@alpha --transport-type sse注:2.3.0-alpha.1 より前のバージョンには、
/messagesエンドポイントへの POST リクエストで JSON 本文を正しく解析できない不具合がありました。この問題は、application/jsonとtext/plainの両方のコンテンツタイプに対応したミドルウェア処理の改善により修正されました。
監視とログ記録
# Enable debug logging
export LOG_LEVEL=debug
# Monitor server health
curl http://localhost:3003/health | jq
# Check active sessions
curl http://localhost:3003/health | jq '.sessions'
ドキュメント
詳細については、次のドキュメントを確認してください。
はじめに
- インストール手順
- 設定オプション
- 利用可能なツール
- データベースメタデータツール - トリガー、プロシージャ、関数、パッケージを調査します
- リソース、ツール、プロンプトのリファレンス - MCP のすべての機能に関する完全ガイド
トランスポートプロトコル
統合ガイド
発展的なトピック
- セキュリティ
- トラブルシューティング
- ワイヤー暗号化の修正 - Firebird 3.0+ との互換性および Linux のパス修正
例とユースケース
プロジェクトを支援する
寄付
MCP Firebird が仕事やプロジェクトに役立つ場合は、寄付を通じて開発をご支援ください。皆様からのご支援は、このツールの保守と改善に役立ちます。
- GitHub Sponsors: @PuroDelphi を支援
- PayPal:PayPal で寄付
AI エージェントを雇う
このプロジェクトを支援するもう一つの方法は、Asistentes Autónomosを通じて当社の AI エージェントを雇うことです。さまざまなビジネスニーズに対応する専門の AI アシスタントを提供し、タスクの自動化と生産性の向上を支援します。
優先サポート
⭐ 寄付者、スポンサー、およびクライアントには、問題、機能リクエスト、実装ガイダンスに関する優先サポートと支援を提供します。すべてのユーザーへのサポートに努めていますが、プロジェクトを金銭的に支援してくださる方には、より迅速に対応し、個別の支援を提供します。
ご支援に心より感謝いたします。皆さまのご支援により、MCP Firebird の継続的な開発が可能になります!
ライセンス
このプロジェクトは MIT ライセンスのもとでライセンスされています。詳細については、LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。