关于 @yuuzu/sql Mcp
@yuuzu/sql Mcp 是支持 MSSQL、PostgreSQL 和 SQLite 数据操作的 MCP 服务,提供连接、结构检查与 SQL 执行工具,并以三种模式控制查询权限。
主要功能
- 01支持 MSSQL、PostgreSQL 和 SQLite
- 02连接与数据库切换
- 03查看表和视图结构
- 04执行 SQL 查询
- 05安全、写入和完整查询模式
适用场景
- 01检查数据库连接和数据库列表
- 02查看表结构以了解字段
- 03按权限模式执行 SQL
- 04连接 SQLite 文件或内存数据库
MCP 相关
它向 MCP 客户端提供八种数据库操作工具,包括连接管理、结构检查和查询执行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
8收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ssl | any | 否 | SSL 配置(仅限 postgres) |
| port | number | 否 | 端口号 |
| user | string | 否 | 用于身份验证的用户名(mssql、postgres) |
| engine | enum | 是 | 数据库引擎类型mssql | postgres | sqlite |
| server | string | 否 | 服务器主机名或 IP 地址(mssql、postgres) |
| encrypt | boolean | 否 | 启用加密(仅适用于 mssql,默认值:true) |
| database | string | 否 | 要连接的初始数据库(mssql、postgres) |
| filename | string | 否 | SQLite 的文件路径;使用 ":memory:" 表示内存数据库(仅适用于 sqlite) |
| password | string | 否 | 身份验证密码(mssql、postgres) |
| readonly | boolean | 否 | 以只读模式打开 SQLite 数据库(仅适用于 sqlite) |
| windowsAuth | boolean | 否 | 使用 Windows Authentication(仅适用于 mssql) |
| fileMustExist | boolean | 否 | 如果 SQLite 文件不存在则抛出错误(仅适用于 sqlite) |
| trustServerCertificate | boolean | 否 | 信任服务器证书(仅适用于 mssql) |
详细介绍
@yuuzu/sql-mcp
用于执行 MSSQL、PostgreSQL 和 SQLite 数据库操作的模型上下文协议(MCP)服务。
安装
# Using bunx (recommended)
bunx @yuuzu/sql-mcp
# Using npx
npx @yuuzu/sql-mcp
功能
- 支持多种数据库:MSSQL、PostgreSQL 和 SQLite(通过 better-sqlite3)
- 8 个数据库操作工具
- 三种查询模式:safe、write、full
- 高级身份验证:Windows 身份验证(MSSQL)、SSL 证书(PostgreSQL)
工具
| 工具 | 描述 |
|---|---|
connect-database | 连接到数据库服务 |
disconnect | 断开当前连接 |
connection-status | 检查连接状态和查询模式 |
list-databases | 列出服务上的所有数据库 |
switch-database | 切换到其他数据库 |
list-tables | 列出所有表和视图 |
describe-table | 获取表结构详情 |
execute-query | 执行 SQL 查询 |
查询模式
通过 SQL_MCP_MODE 环境变量控制查询权限:
| 模式 | 允许的操作 | 描述 |
|---|---|---|
safe(默认) | SELECT、WITH、EXPLAIN | 只读,最安全 |
write | + INSERT、UPDATE、DELETE | 允许修改数据 |
full | + CREATE、DROP、ALTER、TRUNCATE | 完全访问权限,请谨慎使用 |
注意: 所有模式(包括
safe)均允许使用PRAGMA语句(例如PRAGMA table_info(users)),因为这类语句是只读元数据查询,通常用于 SQLite。
# Example: Enable write mode
SQL_MCP_MODE=write bunx @yuuzu/sql-mcp
使用示例
Claude Desktop 配置
将以下内容添加到 claude_desktop_config.json:
{
"mcpServers": {
"sql-mcp": {
"command": "bunx",
"args": ["@yuuzu/sql-mcp"],
"env": {
"SQL_MCP_MODE": "safe"
}
}
}
}
连接到 MSSQL
{
"tool": "connect-database",
"arguments": {
"engine": "mssql",
"server": "localhost",
"port": 1433,
"user": "sa",
"password": "your_password",
"database": "master"
}
}
连接到 PostgreSQL
{
"tool": "connect-database",
"arguments": {
"engine": "postgres",
"server": "localhost",
"port": 5432,
"user": "postgres",
"password": "your_password",
"database": "postgres"
}
}
使用 Windows 身份验证连接(MSSQL)
{
"tool": "connect-database",
"arguments": {
"engine": "mssql",
"server": "localhost",
"windowsAuth": true
}
}
使用 SSL 连接(PostgreSQL)
{
"tool": "connect-database",
"arguments": {
"engine": "postgres",
"server": "your-server.com",
"user": "postgres",
"password": "your_password",
"ssl": {
"rejectUnauthorized": true,
"ca": "/path/to/ca-certificate.crt"
}
}
}
连接到 SQLite(文件)
{
"tool": "connect-database",
"arguments": {
"engine": "sqlite",
"filename": "/absolute/path/to/database.db"
}
}
连接到 SQLite(内存)
适用于测试、演示或临时工作区。
{
"tool": "connect-database",
"arguments": {
"engine": "sqlite",
"filename": ":memory:"
}
}
连接到 SQLite(只读)
{
"tool": "connect-database",
"arguments": {
"engine": "sqlite",
"filename": "/absolute/path/to/database.db",
"readonly": true,
"fileMustExist": true
}
}
SQLite 运行时说明: SQLite 支持使用
better-sqlite3,这需要 Node.js。通过bunx运行时,MSSQL 和 PostgreSQL 可正常工作,但 SQLite 连接会返回明确错误,提示你改用npx或node。
开发
# Install dependencies
bun install
# Run in development mode
bun run dev
# Run tests
bun test
# Run tests with coverage
bun test --coverage
# Build
bun run build
# Type check
bun run typecheck
发布
发布通过 GitHub Actions 自动执行。要创建新版本:
# Create and push a version tag
git tag v1.0.0
git push origin v1.0.0
此过程将:
- 构建项目
- 使用来源证明发布到 npm
- 创建 GitHub Release,并自动生成发布说明
要求:在 GitHub 仓库设置中配置 NPM_TOKEN 密钥。
许可证
MIT
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。