Skip to main content
Glama
mengqi1436

GaussDB-MCP

by mengqi1436

GaussDB MCP

华为云 GaussDB 云数据库 MCP 服务器。基于华为官方 GaussDB 専用 Node.js ドライバ gaussdb-node、MCP 2026-07-28 仕様に準拠し、接続テスト、クエリ、データ書き込み、トランザクション、メタデータ、診断・運用、ユーザー権限など 24 個のツールと 1 個のテーブル構造リソースを提供します。

クイックスタート

npm install
cp .env.example .env   # Windows: copy .env.example .env 后编辑
# 编辑 .env,填入 GaussDB 实例地址、密码等
npm run build
node build/index.js    # 启动(stdio,供 MCP 客户端拉起)

要件:Node.js ≥ 20。

Related MCP server: mcp-db-assistant

接続設定

全環境変数

変数

必須

デフォルト値

説明

GAUSSDB_HOST

はい

GaussDB インスタンスアドレス。主備マルチノードはカンマ区切り(例:10.0.0.1,10.0.0.2)

GAUSSDB_PORT

いいえ

8000

データベースポート。华为云 GaussDB クラウドインスタンスのデフォルトは 8000

GAUSSDB_DATABASE

いいえ

postgres

データベース名

GAUSSDB_USER

いいえ

root

ログインユーザー。デフォルト管理者は root

GAUSSDB_PASSWORD

はい

ログインパスワード

GAUSSDB_SEARCH_PATH

いいえ

デフォルトスキーマ。JDBC の currentSchema に対応(接続 options を介して search_path GUC として配信。例:gycwd)

GAUSSDB_MASTER_ONLY

いいえ

0

主備マルチノード時、主ノードのみに接続(JDBC targetServerType=master に対応。pg_is_in_recovery() で判定)

GAUSSDB_SSL

いいえ

0

1 に設定すると SSL 暗号化接続を有効化

GAUSSDB_SSL_CA

いいえ

CA ルート証明書パス(华为云コンソールから root.crt をダウンロード)

GAUSSDB_SSL_CERT

いいえ

クライアント証明書パス(双方向認証時のみ必要)

GAUSSDB_SSL_KEY

いいえ

クライアント秘密鍵パス(双方向認証時のみ必要)

GAUSSDB_SSL_REJECT_UNAUTHORIZED

いいえ

true

サーバー証明書を検証するかどうか。デバッグ時は false に設定可能(安全ではないためテストのみ)

内網接続設定

アプリと GaussDB インスタンスが同一 VPC 内にある場合に使用します。SSL は不要(内網トラフィックは外部に漏れないため、华为云公式のデフォルトは内網直結):

GAUSSDB_HOST=10.0.1.11              # 实例"节点列表"中的内网地址
GAUSSDB_PORT=8000
GAUSSDB_DATABASE=postgres
GAUSSDB_USER=root
GAUSSDB_PASSWORD=你的密码
# 不设置任何 GAUSSDB_SSL_* 变量,保持 GAUSSDB_SSL=0(默认)

公網接続設定

アプリがインスタンスの VPC 外にあり、弹性公网 IP 経由でアクセスする場合に使用します。SSL を有効化し CA 証明書を設定する必要があります(华为云公式の sslmode=verify-ca 方式):

GAUSSDB_HOST=114.114.114.114        # 实例绑定的弹性公网 IP
GAUSSDB_PORT=8000
GAUSSDB_DATABASE=postgres
GAUSSDB_USER=root
GAUSSDB_PASSWORD=你的密码
GAUSSDB_SSL=1
GAUSSDB_SSL_CA=C:/path/to/root.crt   # 华为云控制台下载的 CA 证书(公网连接必需)
GAUSSDB_SSL_REJECT_UNAUTHORIZED=true

公網接続の前に、华为云コンソールのセキュリティグループでクライアントの送信元 IP の 8000 番ポートへのアクセスを許可する必要があります。

環境変数の追加方法

以下の 2 つの方法のいずれかを選択します(両方存在する場合、環境変数が .env より優先されます):

  1. プロジェクトの .env ファイル(推奨):.env.example をプロジェクトルートの .env にコピーして記入します。.env の位置はプロジェクトルートに固定され、サーバーがどのディレクトリから起動されるかとは無関係です——MCP クライアントが任意の作業ディレクトリから build/index.js を起動しても読み取れます。上記 2 つの設定をそのまま .env に記述します。

  2. MCP クライアントの env フィールド:mcpServers 設定内で直接環境変数を渡します(下記の接続例を参照)。プロジェクト内に認証情報ファイルを置きたくない場合に適しています。

主備デプロイ時、GAUSSDB_HOST はカンマ区切りで複数ノードの IP を指定します。サーバー起動時に順次接続を試み、最初に利用可能なノードを自動選択します。

ツール一覧(24 個)

すべてのツールは MCP 仕様に従って annotations(readOnlyHint/destructiveHint)が付与されており、クライアントはこれに基づいて書き込み操作時に確認ダイアログを表示できます。

接続と状態

ツール

説明

test_connection

接続テスト。GaussDB バージョン、現在のデータベース、現在のユーザーを返す

クエリと書き込み

ツール

説明

query

読み取り専用クエリを実行(SELECT/WITH/EXPLAIN/SHOW/VALUES で始まる単一ステートメントのみ。書き込みステートメントと複数ステートメントは拒否)。limit(デフォルト100)/offset で返却を切り詰め。オプションで tx_handle を指定可能

execute

任意の SQL(DDL/DML)を実行。影響を受けた行数を返す。オプションで tx_handle を指定可能

insert_rows

パラメータ化バルク挿入(テーブル名 + 行配列、オプションで schema)

update_rows

パラメータ化更新(set + where。where 必須で全テーブル誤更新を防止。オプションで schema)

delete_rows

パラメータ化削除(where 必須で全テーブル誤削除を防止。オプションで schema。destructive 注記)

トランザクション(明示的 handle モード)

ツール

説明

transaction_begin

トランザクションを開始し、tx_handle を返す(アイドル 5 分で自動ロールバック・回収)

transaction_commit

トランザクションをコミット

transaction_rollback

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

使用方法:transaction_begin → 複数回の query/execute(同じ tx_handle を渡す)→ transaction_commit または transaction_rollback

メタデータ(読み取り専用)

ツール

説明

list_databases / list_schemas / list_tables

データベース / schema / テーブル一覧

describe_table

列定義:型、長さ、NULL 許容、デフォルト値、主キー

list_indexes / list_views / list_sequences

インデックス / ビュー / シーケンス一覧

診断・運用(読み取り専用)

ツール

説明

explain_query

実行計画。analyze=true 時は実際に実行して統計を取得(自動トランザクションロールバック、書き込みステートメントはディスクに反映されない)。セミコロンを含む複数ステートメントは拒否

list_sessions

現在のアクティブセッション

list_lock_conflicts

ロック競合(ブロックされた側とブロック元)

database_stats

バージョン、データベースサイズ、接続数、サーバーアドレスと時刻

ユーザーと権限

ツール

説明

list_users

ユーザー一覧(読み取り専用)

create_user

ログイン可能なユーザーを作成

grant_privilege / revoke_privilege

権限付与 / 回収(例:ALL ON DATABASE d)

リソース

リソース URI

説明

gaussdb://{schema}/{table}/schema

テーブル構造を JSON で読み取り

MCP クライアント接続

ビルド後、クライアント設定ファイルに登録します(Claude Desktop / Cursor の mcpServers 形式を例とします)。Windows は二重バックスラッシュパス(E:\\MCP\\GaussDBMCP\\build\\index.js)、Linux/macOS はスラッシュ(/home/user/GaussDBMCP/build/index.js)を使用します。

内網接続

{
  "mcpServers": {
    "gaussdb": {
      "command": "node",
      "args": ["E:\\MCP\\GaussDBMCP\\build\\index.js"],
      "env": {
        "GAUSSDB_HOST": "10.0.1.11",
        "GAUSSDB_PORT": "8000",
        "GAUSSDB_DATABASE": "postgres",
        "GAUSSDB_USER": "root",
        "GAUSSDB_PASSWORD": "你的密码"
      }
    }
  }
}

内網接続は SSL が不要で、GAUSSDB_SSL_* 変数を一切設定する必要はありません。

公網接続

{
  "mcpServers": {
    "gaussdb": {
      "command": "node",
      "args": ["E:\\MCP\\GaussDBMCP\\build\\index.js"],
      "env": {
        "GAUSSDB_HOST": "114.114.114.114",
        "GAUSSDB_PORT": "8000",
        "GAUSSDB_DATABASE": "postgres",
        "GAUSSDB_USER": "root",
        "GAUSSDB_PASSWORD": "你的密码",
        "GAUSSDB_SSL": "1",
        "GAUSSDB_SSL_CA": "C:\\path\\to\\root.crt",
        "GAUSSDB_SSL_REJECT_UNAUTHORIZED": "true"
      }
    }
  }
}

公網接続は SSL を有効化し CA 証明書を設定する必要があり、セキュリティグループでクライアント送信元 IP の 8000 番ポートを許可する必要があります。

また、env を渡さず、プロジェクトルートの .env ファイルに依存することもできます(サーバー起動時に自動読み込み。プロジェクトルートに固定され、起動ディレクトリとは無関係)。

マルチテナント分離(stream = schema)

GAUSSDB_SEARCH_PATH は同時に MCP 層の schema ホワイトリストとして機能します。設定後、アクセスは対応する stream 自身の schema 内に制限され、他の stream のテーブルは見えません。

MCP 層のインターセプト(信頼性あり、構造パラメータに依存):

  • list_schemas はホワイトリスト内の schema のみを返し、他の schema 名を漏らさない

  • list_tables/list_indexes/list_views/list_sequences は schema を渡さない場合、デフォルトで最初のホワイトリスト schema に固定され、全データベースのテーブルを返さない

  • describe_table/insert_rows/update_rows/delete_rows で明示的に schema を渡す場合、ホワイトリスト外なら直接エラーで拒否

  • テーブル構造リソース gaussdb://{schema}/{table}/schema もホワイトリストの制約を受け、スキーマをまたいだ読み取りは拒否される

データベース権限層のフォールバック(必須、省略不可):execute は任意の SQL であり、MCP 層では SQL 解析を行いません(手書きパーサーには必ずバイパス経路が存在)。query は読み取り専用を強制しますが(先頭キーワードのホワイトリスト + 書き込みキーワードのブラックリスト + 複数ステートメント拒否)、SELECT 形式の副作用関数(例:pg_terminate_backendsetval)は網羅的にインターセプトできません。スキーマをまたいだアクセスと副作用関数は GaussDB の権限で保証します。各 stream は独立した制限付きアカウントを使用し、自分の schema のみを権限付与します:

-- 以管理员执行:为 stream 建受限账号,只授予自己 schema 的权限
CREATE USER gycwd_app WITH PASSWORD 'xxx' LOGIN;
REVOKE ALL ON DATABASE postgres FROM PUBLIC;            -- 收紧库级默认权限
GRANT CONNECT ON DATABASE postgres TO gycwd_app;
GRANT USAGE ON SCHEMA gycwd TO gycwd_app;               -- 只给自己的 schema
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA gycwd TO gycwd_app;
-- 该账号未授予其他 schema 的 USAGE,即使手写跨 schema SQL 也会被数据库拒绝

その後、.envGAUSSDB_USER=gycwd_appGAUSSDB_SEARCH_PATH=gycwd を設定します。2 層が重なり合います:構造エントリは MCP がインターセプト、任意の SQL はデータベースがインターセプトします。

セキュリティ注意事項

  • stdio サーバーのログはすべて stderr に書き込まれ、stdout は MCP メッセージのみを運びます

  • 構造化ツール(insert_rows/update_rows/delete_rows など)のテーブル名/列名/ユーザー名などの識別子はすべて文字検証を行い、値はすべてパラメータ化プレースホルダーを使用して SQL インジェクションを防止します。query/explain_query は自由 SQL エントリであり、読み取り専用検証と単一ステートメント制限で範囲を絞ります(上記参照)

  • delete_rows/update_rows は where 条件を必須とします

  • explain_query の analyze=true はステートメントを実際に実行しますが、SELECT/WITH で始まるもののみ許可し、自動的にトランザクションロールバックで包みます(シーケンスの進行、関数の副作用はロールバック不可)

  • DROP/TRUNCATE などのステートメントは execute で実行可能です。クライアントは destructiveHint 注記に基づいて確認を行ってください

  • .env をバージョン管理リポジトリにコミットしないでください

開発とビルド

npm run build   # tsc 编译到 build/

ソース構造:src/config.ts(設定)、src/db.ts(接続プールとトランザクションハンドル)、src/sql.ts(SQL 構築と読み取り専用検証)、src/format.ts(結果フォーマット)、src/index.ts(MCP サーバーとツール登録)。

実際の GaussDB インスタンスを取得後:.env を記入 → npm run buildnode build/index.js を任意の MCP クライアントと組み合わせて実測します。または先に接続を単独検証:env を設定後、test_connection ツールを実行します。

Install Server
F
license - not found
A
quality
B
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
    D
    maintenance
    MCP server for connecting to databases (PostgreSQL, MySQL, SQL Server, Redis) enabling SQL queries, table exploration, and Redis key-value operations.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A database operation server based on the MCP protocol, providing database connection, querying, schema exploration, data analysis, and SQL generation tools.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for multiple databases (PostgreSQL, MySQL, MariaDB, SQLite, MongoDB, Redis) with tools for schema inspection, querying, performance diagnostics, and safe write operations, featuring access modes, PII masking, and audit logging.
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    A comprehensive PostgreSQL MCP server providing 27 tools for database management and administration, including connection management, query execution, schema introspection, CRUD operations, and server monitoring.
    27
    38
    AGPL 3.0

View all related MCP servers

Related MCP Connectors

  • MCP server for managing Prisma Postgres.

  • GibsonAI MCP server: manage your databases with natural language

  • MCP server for interacting with the Supabase platform

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/mengqi1436/GaussDB-MCP'

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