mcpField
@
@yuuzu/sql Mcp

@yuuzu/sql Mcp

本地服务
github.com/nakiriyuuzu数据库029 周前更新

关于 @yuuzu/sql Mcp

@yuuzu/sql Mcp 是支持 MSSQL、PostgreSQL 和 SQLite 数据操作的 MCP 服务,提供连接、结构检查与 SQL 执行工具,并以三种模式控制查询权限。

主要功能

  1. 01支持 MSSQL、PostgreSQL 和 SQLite
  2. 02连接与数据库切换
  3. 03查看表和视图结构
  4. 04执行 SQL 查询
  5. 05安全、写入和完整查询模式

适用场景

  1. 01检查数据库连接和数据库列表
  2. 02查看表结构以了解字段
  3. 03按权限模式执行 SQL
  4. 04连接 SQLite 文件或内存数据库

MCP 相关

它向 MCP 客户端提供八种数据库操作工具,包括连接管理、结构检查和查询执行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sql": {
"command": "npx",
"args": [
"-y",
"@yuuzu/sql-mcp"
],
"env": {
"SQL_MCP_MODE": "<SQL_MCP_MODE>"
}
}
}
}
启动命令npx -y @yuuzu/sql-mcp
需要配置的环境变量
SQL_MCP_MODE

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@yuuzu/sql-mcp

工具

8

收录的工具列表 · 更新于 2 周前

参数类型必填说明
sslany否SSL 配置(仅限 postgres)
portnumber否端口号
userstring否用于身份验证的用户名(mssql、postgres)
engineenum是数据库引擎类型mssql | postgres | sqlite
serverstring否服务器主机名或 IP 地址(mssql、postgres)
encryptboolean否启用加密(仅适用于 mssql,默认值:true)
databasestring否要连接的初始数据库(mssql、postgres)
filenamestring否SQLite 的文件路径;使用 ":memory:" 表示内存数据库(仅适用于 sqlite)
passwordstring否身份验证密码(mssql、postgres)
readonlyboolean否以只读模式打开 SQLite 数据库(仅适用于 sqlite)
windowsAuthboolean否使用 Windows Authentication(仅适用于 mssql)
fileMustExistboolean否如果 SQLite 文件不存在则抛出错误(仅适用于 sqlite)
trustServerCertificateboolean否信任服务器证书(仅适用于 mssql)

详细介绍

@yuuzu/sql-mcp

CI npm version

用于执行 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

此过程将:

  1. 构建项目
  2. 使用来源证明发布到 npm
  3. 创建 GitHub Release,并自动生成发布说明

要求:在 GitHub 仓库设置中配置 NPM_TOKEN 密钥。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。