mimer-mcp について
mimer-mcpはMimer SQLデータベースをMCPクライアントに接続します。スキーマの確認、読み取り専用クエリ、ストアドプロシージャの操作を行う開発者やエージェント向けです。
主な機能
- 01スキーマとテーブル構造の確認
- 02パラメーター付き読み取り専用クエリ
- 03プロシージャの一覧と定義確認
- 04JSONパラメーターでの実行
活用シーン
- 01テーブルとサンプル行の確認
- 02安全なSELECTクエリの実行
- 03プロシージャの引数確認と実行
MCP 対応
MCPサーバーは、Mimer SQLのスキーマ参照、クエリ、ストアドプロシージャ用ツールをMCPクライアントに公開します。stdioまたはHTTPで動作します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx mimer-mcp-serverDB_DSNMimer SQL Database DSNDB_USERDatabase userDB_PASSWORDシークレットDatabase passwordDB_HOSTDatabase hostDB_PORTDatabase portDB_PROTOCOLDatabase protocolDB_POOL_INITIAL_CONInitial number of idle connections in the poolDB_POOL_MAX_UNUSEDMaximum number of unused connections in the poolDB_POOL_MAX_CONMaximum number of connections allowedDB_POOL_BLOCKBlock and wait for connection when exceeding max connectionsDB_POOL_DEEP_HEALTH_CHECKDeep health check - validates connection health before getting from poolMCP_LOG_LEVELLogging level for the MCP server (DEBUG, INFO, WARNING, ERROR, CRITICAL)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Mimer MCP Server
Mimer SQL データベースへの接続機能を提供する Model Context Protocol(MCP)サーバーです。データベーススキーマの閲覧、パラメーター化に対応した読み取り専用クエリの実行、ストアドプロシージャの管理ができます。
利用可能なツール
データベーススキーマツール
list_schemas— データベースで利用可能なすべてのスキーマを一覧表示しますlist_table_names— 指定したスキーマ内のテーブル名を一覧表示しますget_table_info— テーブルスキーマの詳細とサンプル行を取得します
クエリ実行ツール
execute_query— パラメーターに対応した SQL クエリを実行します(SELECT クエリのみ許可されます)
ストアドプロシージャツール
list_stored_procedures— データベース内の読み取り専用ストアドプロシージャを一覧表示しますget_stored_procedure_definition— ストアドプロシージャの定義を取得しますget_stored_procedure_parameters— ストアドプロシージャのパラメーターを取得しますexecute_stored_procedure— JSON パラメーターを指定して、データベース内のストアドプロシージャを実行します
はじめに
前提条件
- Python 3.10 以降(uv がインストール済み)または Docker
- Mimer SQL 11.0 以降
環境設定
サーバーを実行する前に、環境変数を使用してデータベース接続設定を構成する必要があります。Mimer MCP Server は、これらの設定を .env ファイルから読み込みます。
Mimer MCP Server は、次の設定項目を含む .env ファイルの環境変数を使用して構成できます。
| 環境変数 | デフォルト | 説明 |
|---|---|---|
DB_DSN | 必須 | 接続するデータベース名 |
DB_USER | 必須 | データベースのユーザー名 |
DB_PASSWORD | 必須 | データベースのパスワード |
DB_HOST | - | データベースのホストアドレス(Docker の場合は host.docker.internal を使用) |
DB_PORT | 1360 | データベースのポート番号 |
DB_PROTOCOL | tcp | 接続プロトコル |
DB_POOL_INITIAL_CON | 0 | プール内の初期アイドル接続数 |
DB_POOL_MAX_UNUSED | 0 | プール内の未使用接続の最大数 |
DB_POOL_MAX_CON | 0 | 許可される接続の最大数(0 = 無制限) |
DB_POOL_BLOCK | false | 接続の最大数を超えた場合の動作を指定します。true の場合は接続が利用可能になるまでブロックして待機し、false の場合は最大接続数を超えるとエラーを返します |
DB_POOL_DEEP_HEALTH_CHECK | true | true の場合、プールから接続を取得する前に接続の健全性を検証します(処理は遅くなりますが、信頼性が高まります) |
MCP_LOG_LEVEL | INFO | MCP サーバーのログレベルです。選択肢:DEBUG、INFO、WARNING、ERROR、CRITICAL |
VS Code での使用方法
MCP サーバーは JSON ファイル(mcp.json)を使用して構成します。MCP ホストによって、構成形式が多少異なる場合があります。このガイドでは、例として VS Code を取り上げます。まず、最新バージョンの VS Code がインストールされ、Copilot にアクセスできることを確認してください。
VS Code に MCP サーバーを追加する方法の 1 つは、.vscode/mcp.json ファイルでワークスペースにサーバー構成を追加することです。これにより、構成を他のユーザーと共有できます。
- ワークスペースに
.vscode/mcp.jsonファイルを作成します。 - MCP サーバーの実行方法に応じて、次の構成を
.vscode/mcp.jsonファイルに追加します。
オプション 1:Docker を使用する(推奨)
オプション 1.1:Docker イメージをローカルでビルドする
docker build -t mimer-mcp-server .
次に、以下の構成を .vscode/mcp.json ファイルに追加します
{
"servers": {
"mimer-mcp-server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--add-host=host.docker.internal:host-gateway",
"--env-file=/absolute/path/to/.env",
"mimer-mcp-server",
]
}
},
"inputs": []
}
オプション 1.2:Docker Hub のビルド済みイメージを使用する
{
"servers": {
"mimer-mcp-server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--add-host=host.docker.internal:host-gateway",
"--env-file=/absolute/path/to/.env",
"mimersql/mimer-mcp:latest"
]
}
},
"inputs": []
}
オプション 1.3:Docker compose と公式 Mimer SQL Docker コンテナを使用する
この方法では、Mimer SQL Docker コンテナと mimer-mcp-server コンテナを起動し、
2 つのコンテナ間にプライベートネットワークを設定して、Mimer SQL のサンプルデータベースを作成します。
Mimer SQL データベースは、データベースへの変更が保持されるよう、mimer_mcp_data という Docker ボリュームに保存されます。
{
"servers": {
"mimer-mcp-server": {
"command": "docker",
"args": [
"compose",
"run",
"--rm",
"-i",
"--no-TTY",
"mimer-mcp-server"
]
}
},
"inputs": []
}
オプション 2.1:uvx を使用する
{
"servers": {
"mimer-mcp-server": {
"type": "stdio",
"command": "uvx",
"args": [
"mimer_mcp_server"
],
"env": {
"DOTENV_PATH": "/absolute/path/to/.env"
}
}
}
}
オプション 2.2:uv を使用する
{
"servers": {
"mimer-mcp-server": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"--with",
"fastmcp",
"fastmcp",
"run",
"/path-to/server.py"
],
}
}
}
- 設定ファイルを保存すると、VS Code の
mcp.jsonファイルに Start ボタンが表示されます。クリックしてサーバーを起動します。
- Copilot Chat を開き、Copilot Chat の入力欄でドロップダウンからエージェントモードを選択します。
- ツールボタンを選択して、利用可能なツールの一覧を表示します。Mimer MCP Server のツールが選択されていることを確認してください。
- チャットの入力欄にプロンプトを入力すると、エージェントが適切なツールを自律的に選択し、エラーを修正して、収集したクエリ結果から最終的な回答を生成します。(以下の例では、MIMER_STORE が所有する Mimer の Example Database を使用しています。このデータベースについて詳しくはこちらをご覧ください。)
開発
前提条件
- Python:3.10+
- uv:依存関係の管理とサーバーの実行に使用
- Mimer SQL 11.0 以降
- Node.js と npm:MCP Inspector によるデバッグに使用
uv のインストール:
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# or via Homebrew
brew install uv
インストールの確認:
uv --version
Node.js と npm のインストール:
# Linux (Ubuntu/Debian)
sudo apt install nodejs npm
# macOS (via Homebrew)
brew install node
インストールの確認:
node --version
npm --version
はじめに
-
リポジトリをクローンします
-
仮想環境を作成して有効化します
uv venv
# macOS / Linux
source .venv/bin/activate
# Windows
.venv\Scripts\activate
- pyproject.toml から依存関係をインストールします
uv sync
- 環境変数を設定します
cp .env.example .env
# Edit .env with your database credentials
設定は config.py を通じて自動的に読み込まれます。
MCP Inspector でデバッグする
MCP Inspector は、MCP ツールをテストおよびデバッグするためのウェブインターフェースを提供します(Node.js 22.7.5 以降が必要です)。
npx @modelcontextprotocol/inspector
注:MCP Inspector は Node.js アプリであり、npx コマンドを使うと、Node.js パッケージとして恒久的にインストールせずに MCP Inspector を実行できます。
または、FastMCP CLI を使用して MCP Inspector を起動できます
uv run fastmcp dev inspector src/mimer_mcp_server/server.py
Docker Compose を使用して Mimer SQL の Docker イメージと mimer-mcp-server を実行するには、次を実行します。
MCP_TRANSPORT=http docker compose up
または、デーモンとして実行するには、次を実行します。
MCP_TRANSPORT=http docker compose up -d
これにより、HTTP とポート 3333 を使用して mimer-mcp-server を呼び出せます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。