mcpField
M
Multi-Database MCP Server (by Legion AI)

Multi-Database MCP Server (by Legion AI)

ローカル
thelegionai.comデータベース9576 週間前に更新

Multi-Database MCP Server (by Legion AI) について

Legion AI が提供する Multi-Database MCP Server は、MCP Python SDK で構築されたサーバーで、AI アシスタントが複数種類のデータベースを単一のインターフェースで照会できるようにします。接続には Legion Query Runner ライブラリを使用し、複数のデータベースを同時に扱えます。

主な機能

  1. 01複数種類のデータベースに共通のインターフェース
  2. 02複数データベースへの同時接続
  3. 03スキーマの自動検出
  4. 04Markdown または JSON で結果を返す SQL 実行
  5. 05クエリの作成、説明、最適化用プロンプト
  6. 06環境変数またはコマンドライン引数による設定

活用シーン

  1. 01AI アシスタントから PostgreSQL や MySQL のデータを照会する
  2. 02特定のテーブルがどのデータベースにあるかを探す
  3. 03SQL クエリの説明と最適化の提案を得る

MCP 対応

このサーバーは MCP サーバーとして動作し、データベーススキーマをリソースとして、execute_query、list_databases、find_table などのツールと、いくつかのクエリ用プロンプトを MCP クライアントに公開します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Multi-Database MCP Server(Legion AI 提供)

Model Context Protocol(MCP)Python SDK との連携により、Legion Query Runner を使用してデータベース内のデータにアクセスし、クエリを実行できるサーバーです。

Start Generation Here

このツールは Legion AI が提供しています。本格的な高性能 AI データ分析ツールをご利用になるには、サイトをご覧ください。サポートをご希望のデータベースがあれば、メールでお知らせください。

End Generation Here

Database MCP を選ぶ理由

Database MCP がほかのデータベースアクセスソリューションと異なるのは、次のような優れた特長があるためです。

  • 統一されたマルチデータベースインターフェース:PostgreSQL、MySQL、SQL Server などのデータベースに、統一された単一の API から接続できます。データベースの種類ごとに異なるクライアントライブラリを習得する必要はありません。
  • AI に対応した連携:Model Context Protocol(MCP)を通じた AI アシスタントとのやり取りに特化して構築されており、自然言語によるデータベース操作を可能にします。
  • 設定不要のスキーマ検出:手動での設定やマッピングなしで、データベーススキーマを自動的に検出して公開します。
  • データベースに依存しないツール:基盤となるデータベース技術にかかわらず、同じツールを使ってテーブルを検索し、スキーマを調べ、クエリを実行できます。
  • 安全な認証情報管理:データベースの認証情報を安全に管理し、アプリケーションコードから分離します。
  • シンプルなデプロイ:LangChain、FastAPI などの最新の AI 開発環境で、最小限の設定で動作します。
  • 拡張可能な設計:ユースケースに合わせてカスタムツールやプロンプトを簡単に追加し、機能を強化できます。

データベースアクセスが必要な AI エージェントを構築する場合でも、複数のデータベースへの統一されたインターフェースを求めている場合でも、Database MCP は開発時間と複雑さを大幅に削減する、効率的なソリューションを提供します。

機能

  • マルチデータベースをサポート。複数のデータベースに同時に接続できます
  • Legion Query Runner によるデータベースアクセス
  • AI アシスタント向けの Model Context Protocol(MCP)サポート
  • データベース操作を MCP リソース、ツール、プロンプトとして公開
  • 複数のデプロイ方法(スタンドアロン MCP サーバー、FastAPI との連携)
  • クエリの実行と結果の処理
  • 環境変数、コマンドライン引数、または MCP 設定 JSON による柔軟な設定
  • 複数データベース構成で、ユーザーがデータベースを選択可能

サポート対象データベース

データベースDB_TYPE コード
PostgreSQLpg
Redshiftredshift
CockroachDBcockroach
MySQLmysql
RDS MySQLrds_mysql
Microsoft SQL Servermssql
Big Querybigquery
Oracle DBoracle
SQLitesqlite

コネクターとして Legion Query Runner ライブラリを使用しています。詳しくはAPI ドキュメントをご覧ください。

MCP とは?

Model Context Protocol(MCP)は、AI アプリケーションのコンテキストを維持するための仕様です。このサーバーは MCP Python SDK を使用して、次のことを実現します。

  • AI アシスタント向けのツールとしてデータベース操作を公開する
  • リソースとしてデータベーススキーマとメタデータを提供する
  • データベース操作に役立つプロンプトを生成する
  • データベースとのステートフルなやり取りを可能にする

インストールと設定

必須パラメーター

単一データベース構成の場合:

  • DB_TYPE:データベースの種類を示すコード(上の表を参照)
  • DB_CONFIG:データベース接続用の JSON 設定文字列

複数データベース構成の場合:

  • DB_CONFIGS:データベース設定の JSON 配列。各設定には次の項目が含まれます。
    • db_type:データベースの種類を示すコード
    • configuration:データベース接続の設定
    • description:データベースの内容を人が読んで理解できるように説明したもの

設定形式はデータベースの種類によって異なります。データベースごとの設定方法については、API ドキュメントをご覧ください。

インストール方法
オプション 1:UV を使用する(推奨)

uv を使用する場合、特別なインストールは必要ありません。database-mcp を直接実行するために uvx を使用します。

UV 設定例(単一データベース):

REPLACE DB_TYPE and DB_CONFIG with your connection info.
{
    "mcpServers": {
      "database-mcp": {
        "command": "uvx",
        "args": [
          "database-mcp"
        ],
        "env": {
          "DB_TYPE": "pg",
          "DB_CONFIG": "{\"host\":\"localhost\",\"port\":5432,\"user\":\"user\",\"password\":\"pw\",\"dbname\":\"dbname\"}"
        },
        "disabled": true,
        "autoApprove": []
      }
    }
}

UV 設定例(複数のデータベース):

{
    "mcpServers": {
      "database-mcp": {
        "command": "uvx",
        "args": [
          "database-mcp"
        ],
        "env": {
          "DB_CONFIGS": "[{\"id\":\"pg_main\",\"db_type\":\"pg\",\"configuration\":{\"host\":\"localhost\",\"port\":5432,\"user\":\"user\",\"password\":\"pw\",\"dbname\":\"postgres\"},\"description\":\"PostgreSQL Database\"},{\"id\":\"mysql_data\",\"db_type\":\"mysql\",\"configuration\":{\"host\":\"localhost\",\"port\":3306,\"user\":\"root\",\"password\":\"pass\",\"database\":\"mysql\"},\"description\":\"MySQL Database\"}]"
        },
        "disabled": true,
        "autoApprove": []
      }
    }
}
オプション 2:PIP を使用する

pip でインストールします:

pip install database-mcp

PIP 設定例(単一データベース):

{
  "mcpServers": {
    "database": {
      "command": "python",
      "args": [
        "-m", "database_mcp", 
        "--repository", "path/to/git/repo"
      ],
      "env": {
        "DB_TYPE": "pg",
        "DB_CONFIG": "{\"host\":\"localhost\",\"port\":5432,\"user\":\"user\",\"password\":\"pw\",\"dbname\":\"dbname\"}"
      }
    }
  }
}

サーバーの実行

本番モード
python mcp_server.py
設定方法
環境変数(単一データベース)
export DB_TYPE="pg"  # or mysql, postgresql, etc.
export DB_CONFIG='{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'
uv run src/database_mcp/mcp_server.py
環境変数(複数のデータベース)
export DB_CONFIGS='[{"id":"pg_main","db_type":"pg","configuration":{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"},"description":"PostgreSQL Database"},{"id":"mysql_users","db_type":"mysql","configuration":{"host":"localhost","port":3306,"user":"root","password":"pass","database":"mysql"},"description":"MySQL Database"}]'
uv run src/database_mcp/mcp_server.py

ID を指定しない場合、システムはデータベースの種類と説明に基づいて自動的に生成します:

export DB_CONFIGS='[{"db_type":"pg","configuration":{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"},"description":"PostgreSQL Database"},{"db_type":"mysql","configuration":{"host":"localhost","port":3306,"user":"root","password":"pass","database":"mysql"},"description":"MySQL Database"}]'
# IDs will be generated as something like "pg_postgres_0" and "my_mysqldb_1"
uv run src/database_mcp/mcp_server.py
コマンドライン引数(単一データベース)
python mcp_server.py --db-type pg --db-config '{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'
コマンドライン引数(複数のデータベース)
python mcp_server.py --db-configs '[{"id":"pg_main","db_type":"pg","configuration":{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"},"description":"PostgreSQL Database"},{"id":"mysql_users","db_type":"mysql","configuration":{"host":"localhost","port":3306,"user":"root","password":"pass","database":"mysql"},"description":"MySQL Database"}]'

id フィールドを使用して各データベースにカスタム ID を指定することも、システムにデータベースの種類と説明に基づいて生成させることもできます。

複数データベースのサポート

複数のデータベースに接続する場合は、各クエリで使用するデータベースを指定する必要があります:

  1. list_databases ツールを使用して、ID とともに利用可能なデータベースを確認します
  2. get_database_info を使用して、データベースのスキーマの詳細を表示します
  3. find_table を使用して、すべてのデータベースからテーブルを検索します
  4. execute_query、get_table_columns などのツールに db_id パラメーターを指定します

データベース接続は、DbConfig オブジェクトの辞書として内部的に管理され、各データベースには一意の ID が割り当てられます。スキーマ情報はテーブルオブジェクトのリストとして表され、各テーブルには名前と列情報が含まれます。

select_database プロンプトは、データベースの選択手順をユーザーに案内します。

スキーマ表現

データベースのスキーマはテーブルオブジェクトのリストとして表され、各テーブルには列の情報が含まれます:

[
  {
    "name": "users",
    "columns": [
      {"name": "id", "type": "integer"},
      {"name": "username", "type": "varchar"},
      {"name": "email", "type": "varchar"}
    ]
  },
  {
    "name": "orders",
    "columns": [
      {"name": "id", "type": "integer"},
      {"name": "user_id", "type": "integer"},
      {"name": "product_id", "type": "integer"},
      {"name": "quantity", "type": "integer"}
    ]
  }
]

この表現により、すっきりとした階層構造を保ちながら、テーブルや列の情報をプログラムから簡単に利用できます。

公開されている MCP の機能

リソース
リソース説明
resource://schema/{database_id}設定済みのすべてのデータベース、または指定したデータベースのスキーマを取得します
ツール
ツール説明
execute_querySQL クエリを実行し、結果を Markdown テーブルとして返します
execute_query_jsonSQL クエリを実行し、結果を JSON として返します
get_table_columns指定したテーブルの列名を取得します
get_table_types指定したテーブルの列の型を取得します
get_query_history最近のクエリ履歴を取得します
list_databases利用可能なすべてのデータベース接続を一覧表示します
get_database_infoスキーマを含む、データベースの詳細情報を取得します
find_table指定したテーブルがどのデータベースにあるかを検索します
describe_table列名や型を含む、テーブルの詳細な説明を取得します
get_table_sampleテーブルのデータサンプルを取得します

すべてのデータベース固有のツール(execute_query、get_table_columns など)では、使用するデータベースを指定するために db_id パラメーターが必要です。

プロンプト
プロンプト説明
sql_queryデータベースに対する SQL クエリを作成します
explain_querySQL クエリの内容を説明します
optimize_queryパフォーマンスを向上させるために SQL クエリを最適化します
select_database使用するデータベースの選択をユーザーに案内します

開発

MCP Inspector の使用

Inspector を起動するには、次のコマンドを実行します

npx @modelcontextprotocol/inspector uv run src/database_mcp/mcp_server.py

次に、コマンド入力欄に次のように設定します

run src/database_mcp/mcp_server.py --db-type pg --db-config '{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'
テスト
uv pip install -e ".[dev]"
pytest
公開
# Clean up build artifacts
rm -rf dist/ build/ 
# Remove any .egg-info directories if they exist
find . -name "*.egg-info" -type d -exec rm -rf {} + 2>/dev/null || true
# Build the package
uv run python -m build
# Upload to PyPI
uv run python -m twine upload dist/*

ライセンス

このリポジトリは GPL のライセンスの下で公開されています

コメント

MCP は初めてですか?

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

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