Skip to main content
Glama
srthkdev

DBeaver MCP Server

by srthkdev

OmniSQL MCP

ユニバーサルデータベース MCP サーバー — ローカルの DB クライアントワークスペース(DBeaver 互換)に保存済みの接続を使用して、AI アシスタントにデータベースへの読み取り/書き込みアクセス権を付与します。

npm version License: MIT Node.js

データベースのサポート

ネイティブサポート(直接ドライバーを使用、高速):

  • PostgreSQL (via pg)

  • MySQL / MariaDB (via mysql2)

  • SQL Server / MSSQL (via mssql)

  • SQLite (via sqlite3 CLI)

Postgres 互換(自動的に pg ドライバー経由でルーティング):

  • CockroachDB, TimescaleDB, Amazon Redshift, YugabyteDB, AlloyDB, Supabase, Neon, Citus

その他のデータベース: OMNISQL_CLI_PATH で設定された外部 CLI にフォールバックします。結果は CLI によって異なります。

Related MCP server: MySQL MCP Server

機能

  • ローカルの DB クライアントワークスペースで既に設定済みの接続を再利用 — 重複した設定は不要

  • PostgreSQL, MySQL/MariaDB, SQLite, SQL Server 用のネイティブクエリ実行

  • 設定可能なプールサイズとタイムアウトを備えたコネクションプーリング

  • トランザクションサポート (BEGIN/COMMIT/ROLLBACK)

  • クエリ実行計画の分析 (EXPLAIN)

  • マイグレーションスクリプト生成を伴う接続間のスキーマ比較

  • execute_query で SELECT のみを強制する読み取り専用モード

  • アクセス可能なデータベースを制限する接続ホワイトリスト

  • 特定の操作を無効にするツールフィルタリング

  • 危険な操作(DROP DATABASE, TRUNCATE, WHERE 句のない DELETE/UPDATE)をブロックするクエリ検証

  • CSV/JSON へのデータエクスポート

  • コネクションプールのクリーンアップを伴う正常なシャットダウン

要件

  • Node.js 18+

  • 少なくとも 1 つの接続が設定されたローカル DB クライアント(DBeaver 互換)

インストール

npm install -g omnisql-mcp

設定

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) に追加します:

{
  "mcpServers": {
    "omnisql": {
      "command": "omnisql-mcp"
    }
  }
}

Claude Code

~/.claude/settings.json に追加します:

{
  "mcpServers": {
    "omnisql": {
      "command": "omnisql-mcp"
    }
  }
}

Cursor

Cursor の設定 > MCP Servers に追加します:

{
  "mcpServers": {
    "omnisql": {
      "command": "omnisql-mcp"
    }
  }
}

環境変数

変数

説明

デフォルト

OMNISQL_CLI_PATH

外部 DB クライアント CLI へのパス(非対応ドライバーのフォールバック用)

未設定

OMNISQL_WORKSPACE

ローカル DB クライアントのワークスペースディレクトリへのパス

OS デフォルト

OMNISQL_TIMEOUT

クエリタイムアウト (ms)

30000

OMNISQL_DEBUG

デバッグログの有効化

false

OMNISQL_READ_ONLY

すべての書き込み操作を無効化

false

OMNISQL_ALLOWED_CONNECTIONS

接続 ID または名前のカンマ区切りホワイトリスト

すべて

OMNISQL_DISABLED_TOOLS

無効にするツールのカンマ区切りリスト

なし

OMNISQL_POOL_MIN

プールごとの最小接続数

2

OMNISQL_POOL_MAX

プールごとの最大接続数

10

OMNISQL_POOL_IDLE_TIMEOUT

アイドル接続タイムアウト (ms)

30000

OMNISQL_POOL_ACQUIRE_TIMEOUT

接続取得タイムアウト (ms)

10000

読み取り専用モード

すべての書き込み操作をブロックします。execute_query ツールは SELECT, EXPLAIN, SHOW, DESCRIBE 文のみを許可します。トランザクションツールは完全に無効化されます。

{
  "mcpServers": {
    "omnisql": {
      "command": "omnisql-mcp",
      "env": {
        "OMNISQL_READ_ONLY": "true"
      }
    }
  }
}

接続ホワイトリスト

表示するワークスペース接続を制限します。接続 ID または表示名をカンマ区切りで指定します:

{
  "mcpServers": {
    "omnisql": {
      "command": "omnisql-mcp",
      "env": {
        "OMNISQL_ALLOWED_CONNECTIONS": "dev-postgres,staging-mysql"
      }
    }
  }
}

特定のツールの無効化

{
  "mcpServers": {
    "omnisql": {
      "command": "omnisql-mcp",
      "env": {
        "OMNISQL_DISABLED_TOOLS": "drop_table,alter_table,write_query"
      }
    }
  }
}

利用可能なツール

接続管理

  • list_connections - すべてのデータベース接続を一覧表示

  • get_connection_info - 接続の詳細を取得

  • test_connection - 接続性をテスト

データ操作

  • execute_query - 読み取り専用クエリを実行 (SELECT, EXPLAIN, SHOW, DESCRIBE のみ)

  • write_query - INSERT/UPDATE/DELETE を実行

  • export_data - CSV/JSON にエクスポート

スキーマ管理

  • list_tables - テーブルとビューを一覧表示

  • get_table_schema - テーブル構造を取得

  • create_table - テーブルを作成

  • alter_table - テーブルを変更

  • drop_table - テーブルを削除(確認が必要)

トランザクション

  • begin_transaction - 新しいトランザクションを開始

  • execute_in_transaction - トランザクション内でクエリを実行

  • commit_transaction - トランザクションをコミット

  • rollback_transaction - トランザクションをロールバック

クエリ分析

  • explain_query - クエリ実行計画を分析

  • compare_schemas - 2 つの接続間でスキーマを比較

  • get_pool_stats - コネクションプールの統計を取得

その他

  • get_database_stats - データベース統計

  • append_insight - 分析メモを保存

  • list_insights - 保存されたメモを取得

セキュリティ

  • 読み取り専用の強制: execute_query は読み取り専用のステートメント (SELECT, EXPLAIN, SHOW, DESCRIBE, PRAGMA) のみを受け付けます。書き込み操作には write_query を使用する必要があります。

  • クエリ検証: DROP DATABASE, DROP SCHEMA, TRUNCATE, WHERE 句のない DELETE/UPDATE, GRANT, REVOKE, およびユーザー管理ステートメントをブロックします。

  • 接続ホワイトリスト: OMNISQL_ALLOWED_CONNECTIONS を介して公開される接続を制限します。

  • ツールフィルタリング: OMNISQL_DISABLED_TOOLS を介して任意のツールを無効化します。

  • 入力サニタイズ: 接続 ID と SQL 識別子は、インジェクションを防ぐためにサニタイズされます。

  • 推奨事項: 本番環境で使用する場合は、防御的深層防御のためにデータベースレベルの読み取り専用ユーザーも併用してください。

ワークスペース形式のサポート

DBeaver 互換の DB クライアントによって書き込まれた両方の設定形式をサポートしています:

  • レガシー: .metadata/.plugins/org.jkiss.dbeaver.core/ 内の XML 設定

  • モダン: General/.dbeaver/ 内の JSON 設定

認証情報は、ワークスペースの credentials-config.json から自動的に復号化されます。

開発

git clone https://github.com/srthkdev/omnisql-mcp.git
cd omnisql-mcp
npm install
npm run build
npm test
npm run lint

ライセンス

MIT

Install Server
A
license - permissive license
B
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Appeared in Searches

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/srthkdev/omnisql-mcp'

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