Skip to main content
Glama
DBeaver MCP Server

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: Alibaba Cloud DMS 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

Available Tools

14 tools
alter_tableC

Modify existing table schema (add columns, rename tables, etc.)

Inputs: connectionId (required), query (required).

append_insightA

Add a business insight or analysis note to the memo

Inputs: insight (required), connection, tags.

create_tableC

Create new tables in the database

Inputs: connectionId (required), query (required).

drop_tableA

Remove a table from the database with safety confirmation

Inputs: confirm (required), connectionId (required), tableName (required).

execute_queryA

Execute a SQL query on a specific DBeaver connection (read-only queries)

Inputs: connectionId (required), query (required), maxRows.

export_dataC

Export query results to various formats (CSV, JSON, etc.)

Inputs: connectionId (required), query (required), format, includeHeaders, +1 more.

get_connection_infoC

Get detailed information about a specific DBeaver connection

Inputs: connectionId (required).

get_database_statsC

Get statistics and information about a database

Inputs: connectionId (required).

get_table_schemaB

Get schema information for a specific table

Inputs: connectionId (required), tableName (required), includeIndexes.

list_connectionsB

List all available DBeaver database connections

Inputs: includeDetails.

list_insightsA

List all stored business insights and analysis notes

Inputs: connection, tags.

list_tablesC

List all tables in a database

Inputs: connectionId (required), includeViews, schema.

test_connectionC

Test connectivity to a DBeaver connection

Inputs: connectionId (required).

write_queryA

Execute INSERT, UPDATE, or DELETE queries on a specific DBeaver connection

Inputs: connectionId (required), query (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 14 tools

    Disambiguation4/5

    Most tools have distinct purposes, but 'execute_query' and 'write_query' could cause confusion as both execute SQL queries, with the distinction being read-only vs. write operations. Other tools like 'create_table', 'alter_table', and 'drop_table' are clearly differentiated for table management.

    Naming Consistency5/5

    All tools follow a consistent verb_noun naming pattern (e.g., 'create_table', 'list_connections', 'execute_query'), with no mixing of conventions like camelCase or snake_case variations. This predictability makes the tool set easy to navigate and understand.

    Tool Count5/5

    With 14 tools, the count is well-scoped for a database management server, covering core operations like connection handling, query execution, table management, and data export. Each tool serves a specific function without redundancy, fitting the domain appropriately.

    Completeness4/5

    The tool set provides comprehensive coverage for database operations, including CRUD for tables, connection management, and query execution. A minor gap exists in data manipulation beyond basic queries, such as bulk operations or transaction handling, but core workflows are well-supported.

    Maintenance

    ActivityMaintained
    ResponsivenessUsually handled

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that enables Large Language Models to access and interact with database connections, including viewing schemas and performing CRUD operations on connected databases.
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that provides AI assistants with comprehensive access to SQL databases, enabling schema inspection, query execution, and database operations with enterprise-grade security.
      55 npm
      9
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      A Model Context Protocol server that provides real-time database schema information to AI assistants, supporting both low-code system schema queries and traditional database metadata queries.
      4
      MIT

    Appeared in Searches