mcpField
D
Db Whisper

Db Whisper

本地服务
github.com/404-UNKNOW数据库128 周前更新

关于 Db Whisper

Db Whisper 是面向 Cursor、Claude Desktop 等 AI 助手的数据库只读 MCP 服务,适合需要受控查询数据库的开发者。它通过 AST 白名单校验、驱动级只读约束和限流来限制访问。

主要功能

  1. 01仅允许白名单 SELECT 查询
  2. 02隔离系统元数据访问
  3. 03限制 SQL 复杂度和查询频率
  4. 04SQLite 与 PostgreSQL 驱动级只读
  5. 05日志中的敏感信息脱敏

适用场景

  1. 01让 AI 助手安全查询数据库
  2. 02限制可查询的数据库表
  3. 03防止查询造成写入或过量负载
  4. 04减少审计日志中的敏感信息

MCP 相关

该 MCP 服务向 AI 客户端提供数据库只读查询能力,并以工具访问受 AST 校验的查询接口。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"db-whisper": {
"command": "npx",
"args": [
"-y",
"db-whisper-mcp"
],
"env": {
"DATABASE_URL": "<DATABASE_URL>",
"NODE_ENV": "<NODE_ENV>"
}
}
}
}
启动命令npx -y db-whisper-mcp
需要配置的环境变量
DATABASE_URL
NODE_ENV

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

安装包
npmdb-whisper-mcp

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

来自项目 README

🛡️ DB-Whisper (Production-Hardened MCP Server)

[中文] | [English]

DB-Whisper 是一个基于 Anthropic Model Context Protocol (MCP) 的生产级数据库只读访问工具。它专为 AI 助手(如 Cursor, Claude Desktop)设计,提供严苛的安全边界和深度 AST 校验,确保 AI 只能在受控环境下安全地查询并理解你的数据库。

A production-grade, AST-hardened database inspection tool based on the Model Context Protocol (MCP). Designed for AI assistants (Cursor, Claude Desktop), providing strict security boundaries to ensure AI can safely query and understand your database in a read-only, controlled environment.


🌟 核心安全性 / Core Security (Production-Ready)

1. 深度 AST 防火墙 (Deep AST Firewall)
  • 🛡️ 严格白名单 (Strict Whitelist): 采用 Default Deny 策略,仅允许必要的 SELECT 节点类型。
  • 🚫 系统表隔离 (System Metadata Isolation): 彻底封堵对 information_schema, pg_catalog 以及 SQLite 3.33.0+ 别名(如 sqlite_schema, sqlite_temp_schema)的访问。
  • 🧩 复杂度限制 (Complexity Limits): 限制 AST 节点数 (≤150) 与嵌套深度 (≤8),防止通过超大规模 SQL 进行资源耗尽攻击。
2. 驱动级只读保障 (Driver-Level Read-Only)
  • 🗄️ SQLite 强制只读: 启用 readonly: true 模式并强制 PRAGMA query_only = ON。
  • 🐘 PostgreSQL 事务保障: 每一条查询均在 BEGIN READ ONLY 事务中执行,确保数据库层面无法写入。
  • 🔒 SSL 安全加固: 默认启用 rejectUnauthorized: true,防止中间人攻击。
3. 运行限流与脱敏 (Rate Limiting & Masking)
  • ⏱️ 令牌桶限流 (Rate Limiting): 默认限制为 10 次查询/分钟,防止 AI 滥用导致数据库负载过高。
  • 🤫 零信息泄露 (Zero Leakage): 安全拦截均返回通用错误信息,不泄露表名、列名等具体元数据。
  • 🕵️ 审计脱敏 (Audit Masking): 自动识别并脱敏日志中的密码、API Key、邮箱及信用卡号。

🚀 快速上手 / Quick Start

1. 配置建议 / Mandatory Setup (Least Privilege)

重要安全提示:请务必为 MCP 创建专用的 只读数据库用户,并配合环境变量进行权限细化。 Critical: Always use a dedicated Read-Only DB User.

2. 环境变量配置 / Environment Variables
变量说明默认值
DATABASE_URL数据库连接串 (Postgres URI 或 SQLite 绝对路径)(必填)
ALLOWED_TABLES表名白名单,用逗号分隔 (如 users,orders)* (仅黑名单模式)
DB_SSL是否强制启用 SSL 验证false
QUERY_TIMEOUT_MS单次查询硬超时时间10000
3. 在 Claude Desktop / Cursor 中集成
{
  "mcpServers": {
    "db-whisper": {
      "command": "npx",
      "args": ["-y", "db-whisper-mcp"],
      "env": {
        "DATABASE_URL": "postgresql://user:pass@localhost:5432/db",
        "ALLOWED_TABLES": "public_users,products",
        "NODE_ENV": "production"
      }
    }
  }
}

🛠️ 工程化支持 / Engineering & QA

  • 自动化测试: 已通过 vitest 实现 100% 对抗性安全测试,覆盖 SQLite 别名绕过、嵌套 DML 拦截及限流逻辑。
  • 依赖安全: 所有关键依赖已升级至最新版,并通过 npm audit 验证。
npm install   # 安装依赖
npm test      # 运行安全与限流测试 (需 DATABASE_URL 环境)
npm run build # 编译项目

🔗 相关资源 / Resources


Note: All logs are directed to stderr; stdout is reserved strictly for MCP protocol data.

评论

支持 Markdown

第一次接触 MCP?

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

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