GaussDB-MCP
GaussDB MCP
Servidor MCP para la base de datos en la nube GaussDB de Huawei Cloud. Basado en el controlador Node.js oficial de GaussDB gaussdb-node, siguiendo la especificación MCP 2026-07-28, proporciona 24 herramientas y 1 recurso de estructura de tabla para prueba de conexión, consulta, escritura de datos, transacciones, metadatos, diagnóstico y operación, y permisos de usuario.
Inicio rápido
npm install
cp .env.example .env # Windows: copy .env.example .env 后编辑
# 编辑 .env,填入 GaussDB 实例地址、密码等
npm run build
node build/index.js # 启动(stdio,供 MCP 客户端拉起)Requiere Node.js ≥ 20.
Related MCP server: mcp-db-assistant
Configuración de conexión
Todas las variables de entorno
Variable | Obligatoria | Valor predeterminado | Descripción |
| Sí | — | Dirección de la instancia GaussDB; para múltiples nodos primario/secundario, separar con comas en inglés (p. ej. |
| No |
| Puerto de la base de datos, por defecto 8000 en instancias en la nube de Huawei Cloud GaussDB |
| No |
| Nombre de la base de datos |
| No |
| Usuario de inicio de sesión, el administrador predeterminado es root |
| Sí | — | Contraseña de inicio de sesión |
| No | — | Esquema predeterminado, corresponde a |
| No |
| Conectar solo al nodo primario en múltiples nodos primario/secundario (corresponde a |
| No |
| Establecer a |
| No | — | Ruta del certificado raíz de CA (descargar |
| No | — | Ruta del certificado de cliente (solo para autenticación mutua) |
| No | — | Ruta de la clave privada del cliente (solo para autenticación mutua) |
| No |
| Si verificar el certificado del servidor; en depuración se puede establecer |
Configuración de conexión de red interna
Se usa cuando la aplicación y la instancia GaussDB están en la misma VPC. No se requiere SSL (el tráfico de la red interna no sale, Huawei Cloud oficialmente usa conexión directa interna por defecto):
GAUSSDB_HOST=10.0.1.11 # 实例"节点列表"中的内网地址
GAUSSDB_PORT=8000
GAUSSDB_DATABASE=postgres
GAUSSDB_USER=root
GAUSSDB_PASSWORD=你的密码
# 不设置任何 GAUSSDB_SSL_* 变量,保持 GAUSSDB_SSL=0(默认)Configuración de conexión de red pública
Se usa cuando la aplicación no está en la VPC de la instancia y accede a través de una IP elástica pública. Debe habilitar SSL y configurar el certificado CA (método oficial de Huawei Cloud 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=trueAntes de la conexión de red pública, también debe permitir el acceso del IP de salida del cliente al puerto 8000 en el grupo de seguridad de la consola de Huawei Cloud.
Cómo agregar variables de entorno
Dos formas, elija una (si ambas existen, las variables de entorno tienen prioridad sobre .env):
Archivo
.envdel proyecto (recomendado): copie.env.examplecomo.enven la raíz del proyecto y complételo. La ubicación de.envestá anclada a la raíz del proyecto, independientemente del directorio desde el que se inicie el servidor: el cliente MCP puede leerlo desde cualquier directorio de trabajo al iniciarbuild/index.js. Las dos configuraciones anteriores se pueden escribir directamente en.env.Campo
envdel cliente MCP: pase las variables de entorno directamente en la configuración demcpServers(ver ejemplos de integración más abajo), adecuado para escenarios donde no se desea colocar archivos de credenciales en el proyecto.
En despliegues primario/secundario, GAUSSDB_HOST separa las IP de múltiples nodos con comas en inglés; al iniciar, el servidor intenta conectarse secuencialmente y selecciona automáticamente el primer nodo disponible.
Resumen de herramientas (24)
Todas las herramientas están marcadas con anotaciones según la especificación MCP (readOnlyHint/destructiveHint), el cliente puede mostrar confirmación para operaciones de escritura según esto.
Conexión y estado
Herramienta | Descripción |
| Prueba la conexión, devuelve la versión de GaussDB, la base de datos actual y el usuario actual |
Consulta y escritura
Herramienta | Descripción |
| Ejecuta consultas de solo lectura (comienza con SELECT/WITH/EXPLAIN/SHOW/VALUES, una sola declaración, se rechazan declaraciones de escritura y múltiples), con límite (predeterminado 100)/offset para truncar la respuesta, opcional |
| Ejecuta cualquier SQL (DDL/DML), devuelve el número de filas afectadas, opcional |
| Inserción masiva parametrizada (nombre de tabla + array de filas, schema opcional) |
| Actualización parametrizada (set + where, where obligatorio para evitar actualizaciones accidentales de toda la tabla, schema opcional) |
| Eliminación parametrizada (where obligatorio para evitar eliminaciones accidentales de toda la tabla, schema opcional, marcado como destructivo) |
Transacciones (modo de manejo explícito)
Herramienta | Descripción |
| Inicia una transacción, devuelve |
| Confirma la transacción |
| Revierte la transacción |
Uso: transaction_begin → múltiples query/execute (pasando el mismo tx_handle) → transaction_commit o transaction_rollback.
Metadatos (solo lectura)
Herramienta | Descripción |
| Lista de bases de datos / esquemas / tablas |
| Definición de columnas: tipo, longitud, nulabilidad, valor predeterminado, clave primaria |
| Lista de índices / vistas / secuencias |
Diagnóstico y operación (solo lectura)
Herramienta | Descripción |
| Plan de ejecución; con |
| Sesiones activas actuales |
| Conflictos de bloqueo (parte bloqueada y origen del bloqueo) |
| Versión, tamaño de la base de datos, número de conexiones, dirección del servidor y hora |
Usuarios y permisos
Herramienta | Descripción |
| Lista de usuarios (solo lectura) |
| Crea un usuario con inicio de sesión |
| Otorgar / revocar (p. ej. |
Recursos
Recurso URI | Descripción |
| Lee la estructura de la tabla como JSON |
Integración con el cliente MCP
Después de compilar, regístrelo en el archivo de configuración del cliente (usando el formato mcpServers de Claude Desktop / Cursor como ejemplo). En Windows use rutas con doble barra invertida (E:\\MCP\\GaussDBMCP\\build\\index.js), en Linux/macOS use barras normales (/home/user/GaussDBMCP/build/index.js).
Integración de conexión de red interna
{
"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": "你的密码"
}
}
}
}La conexión de red interna no requiere SSL, no es necesario configurar ninguna variable GAUSSDB_SSL_*.
Integración de conexión de red pública
{
"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"
}
}
}
}La conexión de red pública debe habilitar SSL y configurar el certificado CA, y asegurarse de que el grupo de seguridad permita el puerto 8000 para la IP de salida del cliente.
También puede omitir env y depender del archivo .env en la raíz del proyecto (se lee automáticamente al iniciar el servidor, anclado a la raíz del proyecto, independiente del directorio de inicio).
Aislamiento multiinquilino (stream = schema)
GAUSSDB_SEARCH_PATH también actúa como lista blanca de esquemas a nivel MCP: una vez configurado, el acceso se limita al esquema propio del stream correspondiente, no se ven las tablas de otros streams.
Intercepción a nivel MCP (confiable, basada en parámetros estructurales):
list_schemassolo devuelve los esquemas en la lista blanca, no filtra otros nombres de esquemalist_tables/list_indexes/list_views/list_sequencescuando no se pasaschema, se fijan por defecto al primer esquema de la lista blanca, ya no devuelven tablas de toda la base de datosdescribe_table/insert_rows/update_rows/delete_rowscuando se pasaschemaexplícitamente, si no está en la lista blanca, se rechaza con errorEl recurso de estructura de tabla
gaussdb://{schema}/{table}/schematambién está sujeto a la lista blanca, la lectura entre esquemas se rechaza
Capa de respaldo de permisos de base de datos (obligatoria, no se puede omitir): execute es SQL arbitrario, la capa MCP no analiza SQL (un analizador escrito a mano siempre tendrá rutas de evasión); aunque query fuerza solo lectura (lista blanca de palabras clave iniciales + lista negra de palabras clave de escritura + rechazo de múltiples declaraciones), las funciones con efectos secundarios en forma de SELECT (como pg_terminate_backend, setval) no se pueden interceptar exhaustivamente. El acceso entre esquemas y las funciones con efectos secundarios están garantizados por los permisos de GaussDB. Cada stream usa una cuenta restringida independiente, autorizando solo su propio esquema:
-- 以管理员执行:为 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 也会被数据库拒绝Luego en .env establezca GAUSSDB_USER=gycwd_app, GAUSSDB_SEARCH_PATH=gycwd, dos capas superpuestas: la entrada estructural la intercepta MCP, el SQL arbitrario lo intercepta la base de datos.
Notas de seguridad
Los registros del servidor stdio se escriben en stderr, stdout solo transporta mensajes MCP
Los identificadores (nombres de tabla, columna, usuario, etc.) de las herramientas estructuradas (insert_rows/update_rows/delete_rows, etc.) se validan con caracteres, los valores siempre usan marcadores de posición parametrizados para prevenir inyección SQL;
query/explain_queryson entradas SQL libres, restringidas por validación de solo lectura y límite de una sola declaración (ver arriba)delete_rows/update_rowsrequieren obligatoriamente una condición whereexplain_querycon analyze=true ejecuta realmente la declaración, solo permite que comience con SELECT/WITH y envuelve automáticamente en una transacción revertida (el avance de secuencias y los efectos secundarios de funciones no se pueden revertir)Declaraciones como
DROP/TRUNCATEse pueden ejecutar medianteexecute, el cliente debe confiar en la anotación destructiveHint para confirmaciónNo envíe
.enval repositorio de versiones
Desarrollo y compilación
npm run build # tsc 编译到 build/Estructura del código fuente: src/config.ts (configuración), src/db.ts (pool de conexiones y manejadores de transacciones), src/sql.ts (construcción de SQL y validación de solo lectura), src/format.ts (formateo de resultados), src/index.ts (servidor MCP y registro de herramientas).
Después de obtener una instancia real de GaussDB: complete .env → npm run build → node build/index.js y pruébelo con cualquier cliente MCP; o primero verifique la conexión por separado: configure env y ejecute la herramienta test_connection.
Maintenance
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
- AlicenseNot gradedqualityDmaintenanceMCP server for connecting to databases (PostgreSQL, MySQL, SQL Server, Redis) enabling SQL queries, table exploration, and Redis key-value operations.1MIT
- AlicenseNot gradedqualityBmaintenanceA database operation server based on the MCP protocol, providing database connection, querying, schema exploration, data analysis, and SQL generation tools.MIT
- AlicenseNot gradedqualityBmaintenanceMCP 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
- AlicenseAqualityCmaintenanceA comprehensive PostgreSQL MCP server providing 27 tools for database management and administration, including connection management, query execution, schema introspection, CRUD operations, and server monitoring.2738AGPL 3.0
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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