Token导航 LogoToken导航TokenDH.com
Database Bridge MCP Server logo
数据服务未说明官方级别未说明来源级核验

Database Bridge MCP Server

MCP Server

MCP (Model Context Protocol) 服务器,支持 MySQL、PostgreSQL 和 SQLite,提供细粒度权限控制、多数据库支持和云就绪的 SSL/TLS 功能。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
数据库连接多数据库支持TypeScript权限管理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

LucasSiqueiraSurreco

提供方

LucasSiqueiraSurreco

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

mcp-db-bridge 翻译为中文是“MCP数据库桥接器”或“MCP-DB桥接器”,具体翻译可能根据上下文有所调整,但核心意思是表示一个用于连接或桥接MCP(可能是指某种管理系统或平台)与数据库的组件或接口

英语 | 葡萄牙语

______________________________________________________________________

英语

](https://www.npmjs.com/package/mcp-db-bridge)

适用于MySQL、PostgreSQL和SQLite的MCP(模型上下文协议)服务器,具备细粒度权限管理、多数据库支持以及云就绪的SSL/TLS功能。采用适配器模式构建,便于扩展。

特点/特性

  • 🔌 电源插头 多数据库MySQL、PostgreSQL、SQLite
  • 🏗️(建筑工地、施工中的建筑物或相关活动的符号) 适配器模式简洁且可扩展的架构
  • ☁️ 表示“云”,中文就是“云”。 云就绪(或:已为云做好准备)AWS RDS、Google Cloud SQL、Azure Database 的 SSL/TLS
  • 🔒(锁形符号,通常表示安全、保密或锁定的状态) 安全第一只读模式 + 细粒度架构权限
  • 🌐 表示“互联网”或“世界万维网”。 多数据库模式同时访问多个模式/数据库
  • 🔄 翻译为中文是:循环、重复。 交易自动 BEGIN/COMMIT/ROLLBACK
  • 🚀 火箭或快速前进的符号 HTTP 模式可选的远程HTTP服务器(Express)

安装

npm install mcp-db-bridge
# or
pnpm add mcp-db-bridge

快速入门

MySQL(本地)

# .env
DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=root
DB_PASS=password
DB_NAME=mydb

PostgreSQL(本地)

# .env
DB_TYPE=postgresql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_USER=postgres
DB_PASS=password
DB_NAME=mydb

SQLite(内存中)

# .env
DB_TYPE=sqlite
SQLITE_DB=:memory:

pnpm build
pnpm start
# or
node dist/index.js

配置

数据库类型

DB_TYPE=mysql          # MySQL
DB_TYPE=postgresql     # PostgreSQL
DB_TYPE=sqlite         # SQLite

连接设置

通用(所有数据库)

DB_HOST=127.0.0.1
DB_PORT=3306           # MySQL: 3306, PostgreSQL: 5432
DB_USER=root
DB_PASS=password
DB_NAME=mydb           # Leave empty for multi-DB mode
DB_CONNECTION_LIMIT=10

MySQL 特定(向后兼容)

MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASS=password
MYSQL_DB=mydb
MYSQL_SOCKET_PATH=/tmp/mysql.sock  # Unix socket (priority over host/port)

特定于 PostgreSQL

POSTGRESQL_HOST=127.0.0.1
POSTGRESQL_PORT=5432
POSTGRESQL_DB=mydb

特定于SQLite

SQLITE_DB=:memory:              # In-memory database
SQLITE_DB=/var/lib/app/data.db  # File-based database

安全与权限

只读模式

街区 全部 应用级别的写操作:

DB_READ_ONLY_MODE=true

全局写入权限

按类型进行细粒度的操作控制(全局应用):

ALLOW_INSERT_OPERATION=true   # Allow INSERT
ALLOW_UPDATE_OPERATION=true   # Allow UPDATE
ALLOW_DELETE_OPERATION=false  # Block DELETE
ALLOW_DDL_OPERATION=false     # Block CREATE/ALTER/DROP/TRUNCATE

特定模式的权限

为特定架构覆盖全局权限:

# Format: "schema1:true,schema2:false,schema3:true"
SCHEMA_INSERT_PERMISSIONS=prod_db:false,test_db:true,staging_db:true
SCHEMA_UPDATE_PERMISSIONS=prod_db:false,test_db:true,staging_db:true
SCHEMA_DELETE_PERMISSIONS=prod_db:false,test_db:false,staging_db:false
SCHEMA_DDL_PERMISSIONS=prod_db:false,test_db:true,staging_db:false

其工作原理如下:

  • 如果模式有特定权限 → 使用它
  • 否则 → 使用全局标志

示例:

# Global: INSERT blocked
ALLOW_INSERT_OPERATION=false

# test_db can insert, prod_db cannot
SCHEMA_INSERT_PERMISSIONS=test_db:true,prod_db:false

# Result:
# - INSERT on test_db: ✅ allowed (schema permission)
# - INSERT on prod_db: ❌ blocked (schema permission)
# - INSERT on other_db: ❌ blocked (global permission)

多数据库模式

通过单个连接访问多个数据库/模式。

激活

离开 DB_NAME 空(仅适用于 MySQL/PostgreSQL):

DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=root
DB_PASS=password
DB_NAME=                # Empty = multi-DB mode

写保护

默认情况下,多数据库模式是 只读 为了安全起见。要允许写入:

MULTI_DB_WRITE_MODE=true  # ⚠️ Use with caution!

建议: 使用 SCHEMA_*_PERMISSIONS 以实现更精细的控制,而非 MULTI_DB_WRITE_MODE=true

完整示例

# Multi-DB with granular permissions
DB_TYPE=mysql
DB_NAME=                                    # Multi-DB mode
ALLOW_INSERT_OPERATION=false                # Global: blocked
SCHEMA_INSERT_PERMISSIONS=test_db:true      # Exception: test_db can insert
SCHEMA_UPDATE_PERMISSIONS=test_db:true      # Exception: test_db can update
SCHEMA_DELETE_PERMISSIONS=test_db:false     # test_db: DELETE blocked
SCHEMA_DDL_PERMISSIONS=test_db:true         # test_db: DDL allowed

云数据库的SSL/TLS协议

AWS RDS(MySQL/PostgreSQL)

DB_TYPE=mysql
DB_HOST=myinstance.123456789012.us-east-1.rds.amazonaws.com
DB_PORT=3306
DB_SSL=true
DB_SSL_REJECT_UNAUTHORIZED=true
# Optional: DB_SSL_CA=/path/to/aws-rds-ca-cert.pem

Google Cloud SQL(PostgreSQL)

DB_TYPE=postgresql
DB_HOST=34.123.45.67
DB_PORT=5432
DB_SSL=true
DB_SSL_CA=/path/to/server-ca.pem
DB_SSL_CERT=/path/to/client-cert.pem
DB_SSL_KEY=/path/to/client-key.pem

Azure Database for MySQL(Azure MySQL 数据库)

DB_TYPE=mysql
DB_HOST=myserver.mysql.database.azure.com
DB_PORT=3306
DB_SSL=true
DB_SSL_REJECT_UNAUTHORIZED=true

远程MCP(HTTP服务器)

通过带有身份验证的HTTP运行MCP服务器:

# .env
IS_REMOTE_MCP=true
REMOTE_SECRET_KEY=your-secret-key-here
PORT=3000

终端(或端点): POST http://localhost:3000/mcp

头球 Authorization: Bearer your-secret-key-here

建筑

src/
├── db/
│   ├── adapters/
│   │   ├── types.ts              # Interfaces and types
│   │   ├── factory.ts            # Factory pattern
│   │   ├── mysql.adapter.ts      # MySQL via mysql2
│   │   ├── postgresql.adapter.ts # PostgreSQL via pg
│   │   └── sqlite.adapter.ts     # SQLite via better-sqlite3
│   ├── index.ts                  # Core query handlers
│   ├── utils.ts                  # SQL parsing (node-sql-parser)
│   └── permissions.ts            # Schema permission checks
├── config/
│   └── index.ts                  # Environment configuration
├── utils/
│   └── index.ts                  # Logging & utilities
└── types/
    └── index.ts                  # Type definitions

适配器模式

每个适配器都实现了 DatabaseAdapter 接口:

export interface DatabaseAdapter {
  readonly type: DatabaseType;
  createPool(config: ConnectionConfig): Promise;
  executeQuery(pool: DatabasePool, sql: string, params?: any[]): Promise;
  setReadOnly(connection: DatabaseConnection): Promise;
  unsetReadOnly(connection: DatabaseConnection): Promise;
  normalizeResult(result: any): NormalizedResult;
  supportsReadOnlyMode(): boolean;
}

交易流

读取操作:

BEGIN → SET TRANSACTION READ ONLY → QUERY → ROLLBACK → RESET TO READ WRITE

写操作:

BEGIN → QUERY → COMMIT (or ROLLBACK on error)

示例

使用Unix套接字的MySQL

DB_TYPE=mysql
MYSQL_SOCKET_PATH=/tmp/mysql.sock
DB_USER=root
DB_PASS=password
DB_NAME=mydb

带权限的PostgreSQL多数据库

DB_TYPE=postgresql
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASS=password
DB_NAME=                                      # Multi-DB mode
SCHEMA_INSERT_PERMISSIONS=app_db:true         # app_db can insert
SCHEMA_UPDATE_PERMISSIONS=app_db:true         # app_db can update
SCHEMA_DELETE_PERMISSIONS=app_db:false        # app_db: DELETE blocked

SQLite 只读

DB_TYPE=sqlite
SQLITE_DB=/var/lib/data/production.db
DB_READ_ONLY_MODE=true

带有SSL的AWS RDS MySQL

DB_TYPE=mysql
DB_HOST=prod.abc123.us-east-1.rds.amazonaws.com
DB_PORT=3306
DB_USER=admin
DB_PASS=secure_password
DB_NAME=production
DB_SSL=true
DB_SSL_REJECT_UNAUTHORIZED=true
ALLOW_INSERT_OPERATION=false
ALLOW_UPDATE_OPERATION=false
ALLOW_DELETE_OPERATION=false
ALLOW_DDL_OPERATION=false

发展

pnpm dev              # Run in dev mode (tsx)
pnpm build            # Compile TypeScript
pnpm watch            # Watch mode
pnpm exec             # Build + run with .env

测试

pnpm test              # Run all tests (setup + vitest run)
pnpm test:watch        # Watch mode
pnpm test:unit         # Unit tests only
pnpm test:integration  # Integration tests (MySQL, socket, permissions)
pnpm test:e2e          # End-to-end tests
pnpm test:coverage     # Coverage report

测试结构:

tests/
├── unit/           # Isolated functions (query parsing, utils)
├── integration/    # Real database operations
└── e2e/           # Complete MCP server workflows

性能调优

连接池

DB_CONNECTION_LIMIT=20  # Default: 10

禁用只读事务(MySQL)

⚠️(警告/注意) 不建议 - 降低安全性:

MYSQL_DISABLE_READ_ONLY_TRANSACTIONS=true

环境变量参考

核心数据库设置

变量描述默认值示例
DB_TYPE数据库类型mysqlmysqlpostgresqlsqlite
DB_HOST数据库主机127.0.0.1localhostdb.example.com
DB_PORT数据库端口33063306 (MySQL), 5432 (PostgreSQL)(翻译为中文):(PostgreSQL)(注:此句为原文的直接翻译,若需更具体的语境翻译,请提供更多上下文信息)
DB_USER数据库用户rootadminpostgres
DB_PASS数据库密码""secure_password
DB_NAME数据库名称undefinedmydb"" (多数据库)
DB_CONNECTION_LIMIT池大小1020

安全设置

变量描述默认值可取值
(无对应中文)(无对应中文)(无对应中文)(无对应中文)DB_READ_ONLY_MODEfalse全球只读模式truefalse
ALLOW_INSERT_OPERATIONfalse全局 INSERT 权限truefalse
ALLOW_UPDATE_OPERATIONfalse全局UPDATE权限truefalse
ALLOW_DELETE_OPERATIONfalse全局 DELETE 权限truefalse
ALLOW_DDL_OPERATIONfalse全球DDL权限truefalse
MULTI_DB_WRITE_MODEfalse允许多数据库写入truefalse

|

模式权限 | 变量 | 格式 | 示例 | |----------|--------|---------| SCHEMA_INSERT_PERMISSIONS | schema:bool,schema:bool | test_db:true,prod_db:false | | SCHEMA_UPDATE_PERMISSIONS | schema:bool,schema:bool | test_db:true,prod_db:false | | SCHEMA_DELETE_PERMISSIONS | schema:bool,schema:bool | test_db:false,prod_db:false | | SCHEMA_DDL_PERMISSIONS | schema:bool,schema:bool | test_db:true,prod_db:false |

|

SSL/TLS 设置 | 变量 | 描述 | 必填 | 示例 | |----------|-------------|----------|---------| DB_SSL | true| 启用 SSL/TLS | 云数据库 | false , | DB_SSL_REJECT_UNAUTHORIZED | true| 严格SSL验证 | 生产环境 | false , | DB_SSL_CA | /path/to/ca.pem | CA证书路径 | Cloud SQL | | DB_SSL_CERT | /path/to/cert.pem | 客户证书 | Cloud SQL | | DB_SSL_KEY | /path/to/key.pem | 客户密钥 | Cloud SQL |

|

远程MCP设置 | 变量 | 描述 | 必填 | 示例 | |----------|-------------|----------|---------| IS_REMOTE_MCP | 中文翻译 | 英文原文 | 中文翻译 | 英文原文 | true| false | 启用HTTP模式 | 否 | , REMOTE_SECRET_KEY | your-secret-key | | 认证令牌 | 若为远程 | PORT | 3000 |

| HTTP服务器端口 | 否 |

|

故障排除

# Check socket path
sudo mysql -u root -p -e "SELECT @@socket;"

# Set in .env
MYSQL_SOCKET_PATH=/var/run/mysqld/mysqld.sock

连接错误

# Check if PostgreSQL is running
sudo systemctl status postgresql

# Check port
sudo netstat -tulpn | grep 5432

未找到 MySQL 套接字:

PostgreSQL 连接被拒绝:

# Check global read-only mode
DB_READ_ONLY_MODE=false

# Check multi-DB mode
MULTI_DB_WRITE_MODE=true  # If needed

# Or use schema permissions
SCHEMA_INSERT_PERMISSIONS=mydb:true

权限错误

# Check global permission
ALLOW_INSERT_OPERATION=true

# Or add schema exception
SCHEMA_INSERT_PERMISSIONS=mydb:true

“在只读模式下不允许执行此操作”

“不允许在模式 'mydb' 中执行 INSERT 操作”

许可证

______________________________________________________________________

](https://www.npmjs.com/package/mcp-db-bridge)

@benborla(注:这是一个社交媒体或论坛上的用户名,直接翻译为中文仍为“@benborla”,因为用户名通常不翻译,保持原样。)

葡萄牙语

  • MCP(模型上下文协议)服务器,支持MySQL、PostgreSQL和SQLite,具备细粒度权限控制、多数据库支持以及为云环境准备的SSL/TLS。采用适配器模式构建,以实现可扩展性。 功能🔌(电源插头/插座)
  • 多数据库 MySQL,PostgreSQL,SQLite🏗️ 翻译为中文是“建筑工地”或“正在建造中”。这个表情符号通常用来表示建筑活动、施工或建造过程。
  • 适配器模式 简洁且可扩展的架构☁️ 云朵
  • 云就绪 SSL/TLS 用于 AWS RDS、Google Cloud SQL、Azure Database🔒 表示“锁定”或“安全”。
  • 安全第一 只读模式 + 按架构的精细权限控制🌐(表示互联网或网络的符号)
  • 多数据库模式 同时访问多个模式/数据库🔄 翻译为中文是:循环/旋转(通常用于表示一个动作或过程在不断重复或持续进行)
  • 交易 自动BEGIN/COMMIT/ROLLBACK🚀 表情符号“🚀”通常表示火箭、快速上升或加速。在中文中,它可以直接用作表情符号,不直接翻译成文字,但可以解释为“火箭”或“快速上升”的意思。例如:“看,🚀 那是火箭发射了!”

HTTP模式

npm install mcp-db-bridge
# ou
pnpm add mcp-db-bridge

可选的远程HTTP服务器(Express)

安装

# .env
DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=root
DB_PASS=password
DB_NAME=mydb

快速启动

# .env
DB_TYPE=postgresql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_USER=postgres
DB_PASS=password
DB_NAME=mydb

MySQL(本地)

# .env
DB_TYPE=sqlite
SQLITE_DB=:memory:

PostgreSQL(本地)

pnpm build
pnpm start
# ou
node dist/index.js

SQLite(内存中)

执行

DB_TYPE=mysql          # MySQL
DB_TYPE=postgresql     # PostgreSQL
DB_TYPE=sqlite         # SQLite

配置

数据库类型

DB_HOST=127.0.0.1
DB_PORT=3306           # MySQL: 3306, PostgreSQL: 5432
DB_USER=root
DB_PASS=password
DB_NAME=mydb           # Deixe vazio para modo multi-DB
DB_CONNECTION_LIMIT=10

连接设置

MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASS=password
MYSQL_DB=mydb
MYSQL_SOCKET_PATH=/tmp/mysql.sock  # Unix socket (prioridade sobre host/port)

通用(所有银行)

POSTGRESQL_HOST=127.0.0.1
POSTGRESQL_PORT=5432
POSTGRESQL_DB=mydb

特定于MySQL(兼容性)

SQLITE_DB=:memory:              # Database em memória
SQLITE_DB=/var/lib/app/data.db  # Database em arquivo

特定于 PostgreSQL

特定于 SQLite 的

安全与权限 只读模式 阻止

DB_READ_ONLY_MODE=true

全部

应用程序级别的写入操作:

ALLOW_INSERT_OPERATION=true   # Permite INSERT
ALLOW_UPDATE_OPERATION=true   # Permite UPDATE
ALLOW_DELETE_OPERATION=false  # Bloqueia DELETE
ALLOW_DDL_OPERATION=false     # Bloqueia CREATE/ALTER/DROP/TRUNCATE

全局写权限

按类型精细控制操作(全局应用):

# Formato: "schema1:true,schema2:false,schema3:true"
SCHEMA_INSERT_PERMISSIONS=prod_db:false,test_db:true,staging_db:true
SCHEMA_UPDATE_PERMISSIONS=prod_db:false,test_db:true,staging_db:true
SCHEMA_DELETE_PERMISSIONS=prod_db:false,test_db:false,staging_db:false
SCHEMA_DDL_PERMISSIONS=prod_db:false,test_db:true,staging_db:false

按架构(Schema)划分的特定权限

  • 覆盖特定架构的全局权限:
  • 工作原理:

如果模式有特定权限 → 使用它

# Global: INSERT bloqueado
ALLOW_INSERT_OPERATION=false

# test_db pode inserir, prod_db não pode
SCHEMA_INSERT_PERMISSIONS=test_db:true,prod_db:false

# Resultado:
# - INSERT em test_db: ✅ permitido (permissão do schema)
# - INSERT em prod_db: ❌ bloqueado (permissão do schema)
# - INSERT em other_db: ❌ bloqueado (permissão global)

否则 → 使用全局标志

示例:

多数据库模式

通过单一连接访问多个数据库/模式。 DB_NAME 激活

DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=root
DB_PASS=password
DB_NAME=                # Vazio = modo multi-DB

让(它/他/她/他们)留下

空(仅适用于MySQL/PostgreSQL): 书写保护 默认情况下,多数据库模式是

MULTI_DB_WRITE_MODE=true  # ⚠️ Use com cautela!

只读 为了安全起见。要允许写入: SCHEMA_*_PERMISSIONS 建议: MULTI_DB_WRITE_MODE=true使用

用于粒度控制而非

# Multi-DB com permissões granulares
DB_TYPE=mysql
DB_NAME=                                    # Modo multi-DB
ALLOW_INSERT_OPERATION=false                # Global: bloqueado
SCHEMA_INSERT_PERMISSIONS=test_db:true      # Exceção: test_db pode inserir
SCHEMA_UPDATE_PERMISSIONS=test_db:true      # Exceção: test_db pode atualizar
SCHEMA_DELETE_PERMISSIONS=test_db:false     # test_db: DELETE bloqueado
SCHEMA_DDL_PERMISSIONS=test_db:true         # test_db: DDL permitido

完整示例

DB_TYPE=mysql
DB_HOST=myinstance.123456789012.us-east-1.rds.amazonaws.com
DB_PORT=3306
DB_SSL=true
DB_SSL_REJECT_UNAUTHORIZED=true
# Opcional: DB_SSL_CA=/path/to/aws-rds-ca-cert.pem

SSL/TLS 用于云端银行

DB_TYPE=postgresql
DB_HOST=34.123.45.67
DB_PORT=5432
DB_SSL=true
DB_SSL_CA=/path/to/server-ca.pem
DB_SSL_CERT=/path/to/client-cert.pem
DB_SSL_KEY=/path/to/client-key.pem

AWS RDS(MySQL/PostgreSQL)

DB_TYPE=mysql
DB_HOST=myserver.mysql.database.azure.com
DB_PORT=3306
DB_SSL=true
DB_SSL_REJECT_UNAUTHORIZED=true

Google Cloud SQL(PostgreSQL)

Azure Database for MySQL(Azure MySQL数据库)

# .env
IS_REMOTE_MCP=true
REMOTE_SECRET_KEY=your-secret-key-here
PORT=3000

远程MCP(HTTP服务器) POST http://localhost:3000/mcp

通过HTTP执行带身份验证的MCP服务器: Authorization: Bearer your-secret-key-here

终端(或端点):

src/
├── db/
│   ├── adapters/
│   │   ├── types.ts              # Interfaces e tipos
│   │   ├── factory.ts            # Factory pattern
│   │   ├── mysql.adapter.ts      # MySQL via mysql2
│   │   ├── postgresql.adapter.ts # PostgreSQL via pg
│   │   └── sqlite.adapter.ts     # SQLite via better-sqlite3
│   ├── index.ts                  # Core query handlers
│   ├── utils.ts                  # SQL parsing (node-sql-parser)
│   └── permissions.ts            # Schema permission checks
├── config/
│   └── index.ts                  # Configuração de ambiente
├── utils/
│   └── index.ts                  # Logging & utilitários
└── types/
    └── index.ts                  # Definições de tipos

头球

建筑学 DatabaseAdapter适配器模式

export interface DatabaseAdapter {
  readonly type: DatabaseType;
  createPool(config: ConnectionConfig): Promise;
  executeQuery(pool: DatabasePool, sql: string, params?: any[]): Promise;
  setReadOnly(connection: DatabaseConnection): Promise;
  unsetReadOnly(connection: DatabaseConnection): Promise;
  normalizeResult(result: any): NormalizedResult;
  supportsReadOnlyMode(): boolean;
}

每个适配器都实现了该接口

:

BEGIN → SET TRANSACTION READ ONLY → QUERY → ROLLBACK → RESET TO READ WRITE

交易流

BEGIN → QUERY → COMMIT (ou ROLLBACK em caso de erro)

读取操作:

写操作:

DB_TYPE=mysql
MYSQL_SOCKET_PATH=/tmp/mysql.sock
DB_USER=root
DB_PASS=password
DB_NAME=mydb

例子

DB_TYPE=postgresql
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASS=password
DB_NAME=                                      # Modo multi-DB
SCHEMA_INSERT_PERMISSIONS=app_db:true         # app_db pode inserir
SCHEMA_UPDATE_PERMISSIONS=app_db:true         # app_db pode atualizar
SCHEMA_DELETE_PERMISSIONS=app_db:false        # app_db: DELETE bloqueado

MySQL 与 Unix 套接字

DB_TYPE=sqlite
SQLITE_DB=/var/lib/data/production.db
DB_READ_ONLY_MODE=true

PostgreSQL 多数据库权限管理

DB_TYPE=mysql
DB_HOST=prod.abc123.us-east-1.rds.amazonaws.com
DB_PORT=3306
DB_USER=admin
DB_PASS=secure_password
DB_NAME=production
DB_SSL=true
DB_SSL_REJECT_UNAUTHORIZED=true
ALLOW_INSERT_OPERATION=false
ALLOW_UPDATE_OPERATION=false
ALLOW_DELETE_OPERATION=false
ALLOW_DDL_OPERATION=false

SQLite 只读

pnpm dev              # Executar em modo dev (tsx)
pnpm build            # Compilar TypeScript
pnpm watch            # Modo watch
pnpm exec             # Build + executar com .env

AWS RDS MySQL 配备 SSL

pnpm test              # Executar todos os testes (setup + vitest run)
pnpm test:watch        # Modo watch
pnpm test:unit         # Apenas testes unitários
pnpm test:integration  # Testes de integração (MySQL, socket, permissões)
pnpm test:e2e          # Testes end-to-end
pnpm test:coverage     # Relatório de cobertura

发展

tests/
├── unit/           # Funções isoladas (parsing de queries, utils)
├── integration/    # Operações reais de banco de dados
└── e2e/           # Fluxos completos do servidor MCP

睾丸

测试结构:

DB_CONNECTION_LIMIT=20  # Padrão: 10

性能调整

连接池 禁用只读事务(MySQL) ⚠️(警告符号,无具体文字含义,通常用于提醒注意危险或重要事项)

MYSQL_DISABLE_READ_ONLY_TRANSACTIONS=true

不推荐

- 降低安全性:

环境变量引用 银行主要设置 | 变量 | 描述 | 默认值 | 示例 | DB_TYPE |----------|-----------|--------|---------| mysql | mysql| 银行类型 | postgresql| sqlite , , DB_HOST | 127.0.0.1 | localhost| 银行主机 | db.example.com | , DB_PORT | 3306 | 3306 | 银行门 | 5432 | (MySQL), DB_USER (PostgreSQL) | root | admin| 银行用户 | postgres | , DB_PASS | "" | secure_password | 银行密码 | | DB_NAME | undefined | mydb| 银行名称 | "" | , DB_CONNECTION_LIMIT (多数据库) | 10 | 20 | 池大小 |

|

| 安全设置 | 变量 | 描述 | 默认值 | 取值 | DB_READ_ONLY_MODE |----------|-----------|--------|---------| false | true| 全局只读模式 | false | , ALLOW_INSERT_OPERATION | false | true全局INSERT权限 false | , ALLOW_UPDATE_OPERATION | false | true| 全局UPDATE权限 | false | , ALLOW_DELETE_OPERATION | false | true全局DELETE权限 false | , ALLOW_DDL_OPERATION | false | true| 全局DDL权限 | false | , MULTI_DB_WRITE_MODE | false | true| 允许多数据库写入 | false |

| 按模式(Schema)的权限 | 变量 | 格式 | 示例 | SCHEMA_INSERT_PERMISSIONS |----------|---------|---------| schema:bool,schema:bool | test_db:true,prod_db:false | | SCHEMA_UPDATE_PERMISSIONS | schema:bool,schema:bool | test_db:true,prod_db:false | | SCHEMA_DELETE_PERMISSIONS | schema:bool,schema:bool | test_db:false,prod_db:false | | SCHEMA_DDL_PERMISSIONS | schema:bool,schema:bool | test_db:true,prod_db:false |

|

| SSL/TLS 设置 | 变量 | 描述 | 必需 | 示例 | DB_SSL |----------|-----------|------------|---------| true| false | 启用 SSL/TLS | 云银行 | , DB_SSL_REJECT_UNAUTHORIZED | true| false | 严格SSL验证 | 生产环境 | , DB_SSL_CA | /path/to/ca.pem | | CA证书路径 | Cloud SQL | DB_SSL_CERT | /path/to/cert.pem | | 客户证书 | Cloud SQL | DB_SSL_KEY | /path/to/key.pem |

| 客户密钥 | Cloud SQL |

| 远程MCP设置 | 变量 | 描述 | 必需 | 示例 | IS_REMOTE_MCP |----------|-----------|------------|---------| true| 中文翻译 | 中文意思 | 中文解释 | 中文示例 | false | | 启用HTTP模式 | 否 | REMOTE_SECRET_KEYyour-secret-key | | PORT | 认证令牌 | 如果远程 | 3000 |

|

| HTTP服务器端口 | 否 |

|

# Verificar caminho do socket
sudo mysql -u root -p -e "SELECT @@socket;"

# Configurar no .env
MYSQL_SOCKET_PATH=/var/run/mysqld/mysqld.sock

解决问题方案

# Verificar se PostgreSQL está rodando
sudo systemctl status postgresql

# Verificar porta
sudo netstat -tulpn | grep 5432

连接错误

未找到 MySQL 套接字:

# Verificar modo global read-only
DB_READ_ONLY_MODE=false

# Verificar modo multi-DB
MULTI_DB_WRITE_MODE=true  # Se necessário

# Ou usar permissões de schema
SCHEMA_INSERT_PERMISSIONS=mydb:true

PostgreSQL 连接被拒绝:

# Verificar permissão global
ALLOW_INSERT_OPERATION=true

# Ou adicionar exceção de schema
SCHEMA_INSERT_PERMISSIONS=mydb:true

权限错误

“在只读模式下不允许执行此操作”

“不允许在模式 'mydb' 中执行 INSERT 操作”:

  • 许可证麻省理工学院(MIT) 学分

目录标签

目录标签

数据库连接多数据库支持TypeScript权限管理本地部署云数据库SSL/TLS

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP