Skip to main content
Glama

database-mcp

マルチデータベース 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 は開発時間と複雑さを大幅に削減する合理化されたソリューションを提供します。

特徴

  • マルチデータベースのサポート - 複数のデータベースに同時に接続
  • Legion Query Runner 経由のデータベースアクセス
  • AIアシスタント向けモデルコンテキストプロトコル(MCP)のサポート
  • データベース操作を MCP リソース、ツール、プロンプトとして公開する
  • 複数の展開オプション(スタンドアロン MCP サーバー、FastAPI 統合)
  • クエリの実行と結果の処理
  • 環境変数、コマンドライン引数、またはMCP設定JSONによる柔軟な構成
  • 複数データベース設定のためのユーザー主導のデータベース選択

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

データベースDB_TYPEコード
PostgreSQLページ
赤方偏移赤方偏移
コックローチDBゴキブリ
MySQLMySQL
RDS MySQLrds_mysql
マイクロソフトSQLサーバーmssql
ビッグクエリビッグクエリ
オラクルDBオラクル
SQLitesqlite

コネクタとして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_querySQLクエリを実行し、結果をマークダウンテーブルとして返す
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_queryget_table_columnsなど) では、使用するデータベースを指定するためにdb_idパラメータが必要です。

プロンプト

プロンプト説明
sql_queryデータベースに対してSQLクエリを作成する
explain_querySQLクエリが何をするのかを説明する
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

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

モデルコンテキストプロトコル(MCP)Python SDKを統合したクエリランナーを使用して、データベース内のデータにアクセスし、クエリを実行できるサーバーです。Legion AIチーム(thelegionai.com)がサポートしています。

PostgreSQL、Redshift、MySQL、Microsoft SQL Server、Google API、Amazon Web Services(boto3経由)、CockroachDB、SQLiteなどのデータベースをサポートします。

  1. ここから世代を始める
    1. ここで世代を終わらせる
      1. データベースMCPを選ぶ理由
      2. 特徴
      3. サポートされているデータベース
      4. MCPとは何ですか?
      5. インストールと設定
      6. サーバーの実行
      7. マルチデータベースサポート
      8. スキーマ表現
      9. 公開されたMCP機能
      10. 発達
      11. ライセンス

    Related MCP Servers

    • -
      security
      A
      license
      -
      quality
      MCP-Server from your Database optimized for LLMs and AI-Agents. Supports PostgreSQL, MySQL, ClickHouse, Snowflake, MSSQL, BigQuery, Oracle Database, SQLite, ElasticSearch, DuckDB
      Last updated -
      440
      Go
      Apache 2.0
      • Linux
    • A
      security
      F
      license
      A
      quality
      A Model Context Protocol server that allows AI agents to execute SQL queries against a MySQL database, supporting operations like reading data, creating tables, inserting, updating, and deleting records.
      Last updated -
      6
      957
      5
      JavaScript
      • Apple
    • A
      security
      A
      license
      A
      quality
      An open-source MCP server that connects to various data sources (SQL databases, CSV, Parquet files), allowing AI models to execute SQL queries and generate data visualizations for analytics and business intelligence.
      Last updated -
      10
      53
      Python
      MIT License
      • Linux
      • Apple
    • -
      security
      A
      license
      -
      quality
      A Model Context Protocol (MCP) server that provides read-only TDengine database queries for AI assistants, allowing users to execute queries, explore database structures, and investigate data directly from AI-powered tools.
      Last updated -
      8
      Python
      MIT License

    View all related MCP servers

    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