Skip to main content
Glama

マルチデータベース MCP サーバー (Legion AI 製)

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

ここから世代を始める

このツールはLegion AIによって提供されています。本格的なAIデータ分析ツールをご利用いただくには、サイトをご覧ください。サポートをご希望のデータベースがございましたら、メールでお問い合わせください。

ここで世代を終わらせる

データベースMCPを選ぶ理由

データベース MCP は、いくつかの説得力のある理由により、他のデータベース アクセス ソリューションよりも優れています。

  • 統合マルチデータベース インターフェース: 単一の一貫した API を介して PostgreSQL、MySQL、SQL Server などのデータベースに接続します。データベースの種類ごとに異なるクライアント ライブラリを学習する必要はありません。

  • AI 対応統合: モデル コンテキスト プロトコル (MCP) を介した AI アシスタントのインタラクション用に特別に構築されており、自然言語データベース操作を可能にします。

  • ゼロ構成スキーマ検出: 手動での構成やマッピングなしで、データベース スキーマを自動的に検出して公開します。

  • データベースに依存しないツール: 基盤となるデータベース テクノロジに関係なく、同じツール セットを使用してテーブルを検索し、スキーマを探索し、クエリを実行します。

  • 安全な資格情報管理: 資格情報をアプリケーション コードから分離し、データベース認証の詳細を安全に処理します。

  • シンプルな導入: 最小限のセットアップで、LangChain、FastAPI などの最新の AI 開発環境で動作します。

  • 拡張可能な設計: カスタム ツールとプロンプトを簡単に追加して、特定のユース ケースの機能を強化できます。

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

Related MCP server: MySQL MCP Server

特徴

  • マルチデータベースのサポート - 複数のデータベースに同時に接続

  • Legion Query Runner 経由のデータベースアクセス

  • AIアシスタント向けモデルコンテキストプロトコル(MCP)のサポート

  • データベース操作を MCP リソース、ツール、プロンプトとして公開する

  • 複数の展開オプション(スタンドアロン MCP サーバー、FastAPI 統合)

  • クエリの実行と結果の処理

  • 環境変数、コマンドライン引数、またはMCP設定JSONによる柔軟な構成

  • 複数データベース設定のためのユーザー主導のデータベース選択

サポートされているデータベース

データベース

DB_TYPEコード

PostgreSQL

ページ

赤方偏移

赤方偏移

コックローチDB

ゴキブリ

MySQL

MySQL

RDS MySQL

rds_mysql

マイクロソフトSQLサーバー

mssql

ビッグクエリ

ビッグクエリ

オラクルDB

オラクル

SQLite

sqlite

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

MCPとは何ですか?

モデルコンテキストプロトコル(MCP)は、AIアプリケーションにおけるコンテキストを維持するための仕様です。このサーバーは、 MCP Python SDKを使用して以下の機能を実現します。

  • データベース操作をAIアシスタントのツールとして公開する

  • データベーススキーマとメタデータをリソースとして提供する

  • データベース操作に役立つプロンプトを生成する

  • データベースとのステートフルなインタラクションを可能にする

インストールと設定

必須パラメータ

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

  • DB_TYPE : データベースタイプコード(上記の表を参照)

  • DB_CONFIG : データベース接続用のJSON構成文字列

マルチデータベース構成の場合:

  • DB_CONFIGS : データベース構成の JSON 配列。それぞれに次の内容が含まれます。

    • db_type : データベースタイプコード

    • 構成: データベース接続構成

    • 説明: 人間が読めるデータベースの説明

設定形式はデータベースの種類によって異なります。データベース固有の設定の詳細については、 APIドキュメントを参照してください。

インストール方法

オプション1: UVを使用する(推奨)

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

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 を指定しない場合は、データベースの種類と説明に基づいてシステムが自動的に 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 を指定することも、データベースの種類と説明に基づいてシステムに ID を生成させることもできます。

マルチデータベースサポート

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

  1. list_databasesツールを使用して、利用可能なデータベースとそのIDを確認します。

  2. get_database_infoを使用してデータベースのスキーマの詳細を表示します。

  3. find_tableを使用して、すべてのデータベースからテーブルを検索します。

  4. execute_queryget_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}

構成された1つまたはすべてのデータベースのスキーマを取得します

ツール

道具

説明

execute_query

SQLクエリを実行し、結果をマークダウンテーブルとして返す

execute_query_json

SQLクエリを実行し、結果をJSONとして返す

get_table_columns

特定のテーブルの列名を取得する

get_table_types

特定のテーブルの列タイプを取得する

get_query_history

最近のクエリ履歴を取得する

list_databases

利用可能なすべてのデータベース接続を一覧表示する

get_database_info

スキーマを含むデータベースの詳細情報を取得します

find_table

特定のテーブルが含まれているデータベースを見つける

describe_table

列名や型を含むテーブルの詳細な説明を取得します

get_table_sample

テーブルからデータのサンプルを取得する

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

プロンプト

プロンプト

説明

sql_query

データベースに対してSQLクエリを作成する

explain_query

SQLクエリが何をするのかを説明する

optimize_query

パフォーマンス向上のためにSQLクエリを最適化する

select_database

ユーザーが使用するデータベースを選択できるように支援する

発達

MCPインスペクターの使用

これを実行してインスペクタを起動します

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ライセンスです

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheRaLabs/legion-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server