db2-mcp-server について
IBM DB2 データベース向けの Python 製 MCP サーバーです。テーブルの読み取り専用検索とメタデータ取得に対応し、組み込みおよび設定可能なプロンプトを備えています。
主な機能
- 01DB2 テーブルの一覧表示
- 02列とデータ型のメタデータ取得
- 03JSON 設定からプロンプトを読み込み
- 04クエリとスキーマ分析用の組み込みプロンプト
- 05読み取り専用のデータベースアクセス
活用シーン
- 01DB2 データベース内のテーブル確認
- 02テーブルの列とデータ型の確認
- 03DB2 クエリ支援プロンプトの設定
MCP 対応
MCP クライアントに DB2 のテーブル一覧、テーブルメタデータ、プロンプト機能を提供します。データベースへのアクセスは読み取り専用です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
db2-mcp-server
概要
db2-mcp-server は、MCP フレームワークを利用して IBM DB2 データベースと連携する Python ベースのサーバーです。テーブルの一覧表示とテーブルメタデータの取得に使えるツールを提供します。
機能
- テーブルの一覧表示:接続先の DB2 データベースからテーブルの一覧を取得します。
- テーブルメタデータの取得:特定のテーブルのメタデータ(カラムの詳細やデータ型など)を取得します。
- 動的プロンプトの読み込み:JSON 設定ファイルからカスタムプロンプトを読み込み、柔軟なクエリ支援を実現します。
- 組み込みプロンプト:DB2 クエリの支援やスキーマ分析向けに、事前設定済みのプロンプトを用意しています。
要件
- Python 3.12
- FastMCP(最新の安定版)
- IBM DB2 Python ドライバー(
ibm_db) - Pydantic
セットアップ手順
-
リポジトリをクローンする
git clone <repository-url> cd db2-mcp-server -
仮想環境をセットアップする
uv v0.6.x source uv/bin/activate -
依存関係をインストールする
pip install -r requirements.txt -
サーバーを実行する
python src/db2_mcp_server/core.py
動的プロンプト
サーバーは JSON 設定ファイルからの動的なプロンプトの読み込みに対応しています。カスタムプロンプト設定ファイルを指定するには、PROMPTS_FILE 環境変数を設定してください。
使用例
export PROMPTS_FILE=/path/to/your/prompts_config.json
python src/db2_mcp_server/core.py
設定形式
完全な例は examples/prompts_config.json を、詳細な説明は docs/DYNAMIC_PROMPTS.md を参照してください。
テスト
- テストの実行には
pytest(バージョン ≥ 7.0.0)を使用します。 - 現在のテストカバレッジ:92.98%(要件の 80% を上回っています)。
- 包括的なテストスイートには、次のテストが含まれています。
- コア機能のテスト(
test_core.py) - データベースツールのテスト(
test_list_tables.py、test_metadata_retrieval.py) - キャッシュ機構のテスト(
test_cache.py) - ロギング設定のテスト(
test_logger.py) - 動的プロンプト読み込みのテスト(
test_dynamic_loader.py、test_integration_dynamic_prompts.py)
- コア機能のテスト(
- テストを実行するには、次のコマンドを使用します。
pytest --cov=src/db2_mcp_server --cov-report=html tests/ - 詳細な出力を表示するには、次のコマンドを使用します。
pytest --cov=src/db2_mcp_server --cov-report=term-missing -v
セキュリティと API の制限
- サーバーは読み取り専用で、SQL の INSERT、UPDATE、DELETE 操作は禁止されています。
- SELECT 権限のみを持つデータベースユーザーを使用します。
ロギング
- エラーは、機密データを除外した JSON 形式の構造化ログとして記録されます。
コントリビューション
- コントリビューションを歓迎します。プロジェクトのコーディング規約とテストガイドラインに従ってください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。