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

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    This is a Model Context Protocol (MCP) server for executing SQL queries against Databricks using the Statement Execution API. It enables AI assistants to directly query Databricks data warehouses, analyze database schemas, and retrieve query results in a structured format
    42
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    This server enables Claude to directly interact with SQLite, SQL Server, PostgreSQL, and MySQL databases through the Model Context Protocol, allowing for query execution, table management, and data export capabilities.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A FastAPI-based server that enables executing SQL queries, managing database connections, and retrieving analytics reports through MCP-integrated endpoints. It allows users to interact with database schemas, performance metrics, and access logs using structured queries.
  • F
    license
    Not graded
    quality
    B
    maintenance
    Model Context Protocol (MCP) server that gives AI assistants a safe, correct data-analyst capability over business metrics - without raw SQL improvisation.

View all related MCP servers

Related MCP Connectors

  • GibsonAI MCP server: manage your databases with natural language

  • MCP server for interacting with the Supabase platform

  • MCP server for managing Prisma Postgres.

View all MCP Connectors

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