mcpField
M
Mcp Firebird

Mcp Firebird

ローカル
github.com/PuroDelphiデータベース692 週間前に更新

Mcp Firebird について

MCP Firebirdは、LLMクライアント経由でデータベースを扱いたいユーザー向けに、Firebird SQLデータベースへのMCPインターフェースを提供します。SQLとメタデータの確認、複数の通信方式、イベント通知、APIキー認証に対応します。

主な機能

  1. 01FirebirdへのSQLクエリ実行
  2. 02テーブル、列、関係、DBオブジェクトの確認
  3. 03クエリ性能の分析と最適化提案
  4. 04データベースイベントのクライアント通知
  5. 05STDIO、SSE、Streamable HTTP対応

活用シーン

  1. 01MCPクライアントからFirebirdデータベースを検索
  2. 02スキーマやストアドプロシージャなどの確認
  3. 03リモート接続してデータベースイベントを受信

MCP 対応

MCPサーバーはFirebirdへのSQLクエリ、スキーマ・メタデータ確認、性能分析をクライアントに公開します。STDIO、SSE、Streamable HTTPに対応し、リモートアクセスではAPIキーによる保護も利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"mcpFirebird": {
"command": "npx",
"args": [
"-y",
"mcp-firebird"
]
}
}
}
起動コマンドnpx -y mcp-firebird

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-firebird

ツール

30

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
sqlstringはい実行する SQL クエリ(Firebird では LIMIT の代わりに FIRST/ROWS を使用してページネーションします)
paramsarrayいいえSQL インジェクションを防ぐためのパラメーター化クエリのパラメーター

詳細

MseeP で検証済み

安定版 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 のようなグローバルにインストールされたモジュールにはアクセスできません。両方のパッケージを同じ場所にグローバルインストールする必要があります。

📚 詳細なインストール手順については、以下を参照してください。

手動インストール
安定版
# 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 を使用する場合
  1. Claude Desktop の設定を編集します。

    code $env:AppData\Claude\claude_desktop_config.json  # Windows
    code ~/Library/Application\ Support/Claude/claude_desktop_config.json  # macOS
    
  2. 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"
        }
      }
    }
    
  3. 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 接続の問題
  1. ワイヤー暗号化の非互換性(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_Auth
    

    Firebird 4.0+ の場合は、firebird.conf に追加します:

    WireCrypt = Disabled
    AuthServer = Srp256, Srp, Legacy_Auth
    

    Firebird 5.0 Docker の場合:

    environment:
      FIREBIRD_CONF_WireCrypt: Disabled
      FIREBIRD_CONF_AuthServer: Srp256, Srp
    

    サーバーの設定を変更できない場合は、代替策についてワイヤー暗号化の制限を参照してください。

  2. 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
  3. Windows で大文字と小文字が混在するパスを使用した場合の I/O エラー

    エラー:I/O error during CreateFile (open) operation

    問題:大文字と小文字が混在するデータベースパス(例:C:\MyData\database.fdb)がエラーの原因になります

    回避策:

SSE 接続の問題
  1. 接続拒否

    # Check if server is running
    curl http://localhost:3003/health
    
    # Check port availability
    netstat -an | grep 3003
    
  2. セッションタイムアウト

    # Increase session timeout
    export SSE_SESSION_TIMEOUT_MS=3600000  # 1 hour
    
  3. CORS エラー

    # Allow all origins (development only)
    export CORS_ORIGIN="*"
    
  4. メモリの問題

    # Reduce max sessions
    export MAX_SESSIONS=100
    
    # Enable more frequent cleanup
    export SESSION_CLEANUP_INTERVAL_MS=30000
    
  5. 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 が仕事やプロジェクトに役立つ場合は、寄付を通じて開発をご支援ください。皆様からのご支援は、このツールの保守と改善に役立ちます。

image

AI エージェントを雇う

このプロジェクトを支援するもう一つの方法は、Asistentes Autónomosを通じて当社の AI エージェントを雇うことです。さまざまなビジネスニーズに対応する専門の AI アシスタントを提供し、タスクの自動化と生産性の向上を支援します。

優先サポート

⭐ 寄付者、スポンサー、およびクライアントには、問題、機能リクエスト、実装ガイダンスに関する優先サポートと支援を提供します。すべてのユーザーへのサポートに努めていますが、プロジェクトを金銭的に支援してくださる方には、より迅速に対応し、個別の支援を提供します。

ご支援に心より感謝いたします。皆さまのご支援により、MCP Firebird の継続的な開発が可能になります!

ライセンス

このプロジェクトは MIT ライセンスのもとでライセンスされています。詳細については、LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。