mcpField
D
DBeast PostgreSQL MCP

DBeast PostgreSQL MCP

本地服务
github.com/snss10数据库920 周前更新

关于 DBeast PostgreSQL MCP

DBeast PostgreSQL MCP 是面向 AI 助手的 PostgreSQL 数据库分析服务,提供模式探索、只读查询及运维、安全和性能检查。它以多个专用工具取代宽泛的 SQL 执行入口,并会预览而不执行破坏性写入。

主要功能

  1. 01发现模式、表与依赖关系
  2. 02执行带行数限制的只读查询
  3. 03分析查询与写入影响
  4. 04检查健康、性能及维护状态
  5. 05审计安全、数据质量与复制
  6. 06记录工具调用审计日志

适用场景

  1. 01查看表结构并生成 ERD
  2. 02调查慢查询并评估索引建议
  3. 03执行安全与维护风险检查
  4. 04在清理数据前预览影响

MCP 相关

DBeast 通过本地 stdio MCP 服务连接 AI 客户端与 PostgreSQL,提供 21 个数据库检查和分析工具。SELECT 查询可执行;写入与破坏性语句只返回影响预览,不会执行。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"snss10-dbeast": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DATABASE_URL",
"-e",
"DB_HOST",
"-e",
"DB_PORT",
"-e",
"DB_USER",
"-e",
"DB_PASSWORD",
"-e",
"DB_NAME",
"-e",
"AWS_SECRET_NAME",
"-e",
"AWS_REGION",
"ghcr.io/snss10/dbeast:2.0.2"
],
"env": {
"DATABASE_URL": "<DATABASE_URL>",
"DB_HOST": "<DB_HOST>",
"DB_PORT": "<DB_PORT>",
"DB_USER": "<DB_USER>",
"DB_PASSWORD": "<DB_PASSWORD>",
"DB_NAME": "<DB_NAME>",
"AWS_SECRET_NAME": "<AWS_SECRET_NAME>",
"AWS_REGION": "<AWS_REGION>"
}
}
}
}
启动命令docker run -i --rm -e DATABASE_URL -e DB_HOST -e DB_PORT -e DB_USER -e DB_PASSWORD -e DB_NAME -e AWS_SECRET_NAME -e AWS_REGION ghcr.io/snss10/dbeast:2.0.2
需要配置的环境变量
DATABASE_URL密钥PostgreSQL connection URL, for example postgresql://user:password@host:5432/database.
DB_HOSTPostgreSQL host when DATABASE_URL is not used.
DB_PORTPostgreSQL port when DATABASE_URL is not used.
DB_USERPostgreSQL user when DATABASE_URL is not used.
DB_PASSWORD密钥PostgreSQL password when DATABASE_URL is not used.
DB_NAMEPostgreSQL database name when DATABASE_URL is not used.
AWS_SECRET_NAME密钥AWS Secrets Manager secret containing PostgreSQL credentials.
AWS_REGIONAWS region for Secrets Manager lookup.

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

安装包
ocighcr.io/snss10/dbeast:2.0.2

工具

还没有获取到工具列表

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

详细介绍

DBeast

一款 PostgreSQL MCP 服务,为 AI 助手提供专家级 DBA 能力。

Python 3.11+ PostgreSQL 12+ MCP Compatible License: MIT

快速开始 · 演示 · 工具 · 安全性 · 配置 · 文档


DBeast 通过 Model Context Protocol 将 Claude、Cursor、Windsurf 和 VS Code Copilot 等 AI 助手连接到 PostgreSQL。DBeast 不会暴露一个宽泛的 execute_sql 逃生口,而是提供 21 个专用工具,用于发现架构、安全执行查询、影响分析、性能审查、安全检查、维护报告、复制监控和数据质量检查。


演示

观看 Claude 使用 DBeast MCP 工具审计 PostgreSQL 数据库、识别安全和维护风险,并在不执行破坏性 SQL 的情况下预览清理影响。


工作原理

AI assistant  --MCP stdio-->  DBeast server  --asyncpg-->  PostgreSQL
Claude/Cursor                  Python local                 Local, RDS,
Windsurf/VS Code               subprocess                   Supabase, Neon

DBeast 作为本地 stdio MCP 服务运行。你的 IDE 或桌面助手会将其作为子进程启动,并通过环境变量传递数据库凭据。助手调用 DBeast 工具,DBeast 查询 PostgreSQL,然后将结构化结果返回给助手。无需 HTTP 服务或额外基础设施。


快速开始

1. 安装
git clone https://github.com/snss10/DBeast.git
cd DBeast
pip install -e .

用于开发:

pip install -e ".[dev]"

可选:将 .env.example 复制为 .env 并设置数据库凭据。

2. 验证
dbeast

或者直接运行源代码入口:

python src/server.py
3. 配置 MCP 客户端

Cursor 或 Windsurf 的最简配置:

{
  "mcpServers": {
    "dbeast": {
      "type": "stdio",
      "command": "python",
      "args": ["/absolute/path/to/DBeast/src/server.py"],
      "env": {
        "DATABASE_URL": "postgresql://user:password@localhost:5432/mydb"
      }
    }
  }
}

常见配置位置:

客户端配置位置
Cursor项目根目录中的 .mcp.json,或全局配置 ~/.cursor/.mcp.json
VS Code.vscode/settings.json,或用户设置中的 mcp.servers 键
macOS 上的 Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json
Windows 上的 Claude Desktop%APPDATA%\Claude\claude_desktop_config.json
Windsurf.mcp.json

有关客户端完整示例、Docker、RDS、Supabase、Neon、SSH 隧道、AWS Secrets Manager 和故障排除,请参阅 SETUP.md。

4. 提出简单或复杂的问题

连接后,你的助手既能回答快速查询问题,也能执行多步骤数据库调查。

简单示例:

Show me the schema for the orders table.
Which queries are slowest right now?
Run a security audit on the public schema.
Generate a Mermaid ERD for the sales schema.

更复杂的示例:

Before I archive old sessions, estimate how many rows would be affected, identify related tables, and tell me the rollback risk.
Investigate why the dashboard query is slow, explain the execution plan, and suggest safe indexes.
Review the public schema for maintenance issues, security risks, and data quality problems, then summarize the top priorities.
Compare table growth, dead tuples, and index health across all schemas and recommend what to vacuum or reindex first.

工具

DBeast 提供 10 个类别共 21 个 MCP 工具。

连接
工具说明
connect连接到 PostgreSQL、检查当前状态或发现本地数据库
disconnect关闭当前数据库连接
health_check验证连接、连接池健康状况、PostgreSQL 版本和扩展
架构发现
工具说明
get_schema列出架构、表、列、索引、关系,以及可选的 Mermaid ERD
dependency_analysis在重命名、删除或更改数据库对象之前映射对象依赖关系
数据访问
工具说明
execute_query运行只读 SELECT 查询,并自动注入行数限制
查询分析
工具描述
analyze_query解析并检查查询结构、警告和优化提示
query_optimizer针对给定查询推荐索引和重写方案
analyze_impact在不执行写入查询的情况下,预览其影响、风险级别、受影响的行和回滚上下文
数据库健康状况
工具描述
database_health检查缓存命中率、连接、事务时长、表健康状况和整体健康信号
query_performance根据 PostgreSQL 统计信息报告缓慢或开销较大的查询
安全性
工具描述
security_audit检查角色、权限、超级用户帐户和 public 模式的暴露情况
sensitive_data_scan根据列名和模式特征检测可能的个人身份信息或机密
维护
工具描述
maintenance_analysis检查 vacuum 状态、死元组、分析时间戳和索引健康状况
partition_analysis检查分区健康状况、行分布和缺少分区的风险
数据质量
工具描述
data_quality_report分析空值率、基数、值分布和异常值
duplicate_detection查找所选键列中的重复行
服务配置
工具描述
configuration_review检查 PostgreSQL 配置和调优机会
replication_status检查复制延迟、WAL 发送器/接收器状态和复制槽
审计
工具描述
get_audit_logs获取指定日期记录的 MCP 工具调用
list_audit_files列出可用的审计日志文件

推荐工作流

首先发现架构:

get_schema()
get_schema(schema='public')

运行安全的只读查询:

execute_query(query='SELECT * FROM orders ORDER BY created_at DESC')

预览有风险的写入操作:

analyze_impact(query='DELETE FROM sessions WHERE last_active < now() - interval ''30 days''')

检查健康状况和维护情况:

database_health()
maintenance_analysis(schema='public')
query_performance()

大多数分析工具都接受 schema 参数:

maintenance_analysis(schema='public')  -> analyze one schema
maintenance_analysis(schema='all')     -> analyze every schema
get_schema(format='mermaid')           -> generate an ERD diagram

支持的数据库

提供商连接方式
本地 PostgreSQLDATABASE_URL 或单独的 DB_* 变量
Docker PostgreSQL显式变量或 connect(discover=true)
AWS RDS / Aurora直接 URL、SSH 隧道或 AWS Secrets Manager
Supabase从 Dashboard 设置获取连接池连接字符串
Neon从 Console 连接详情获取连接字符串
Railway / Render / Fly.io提供商连接字符串
任意 PostgreSQL 主机标准 PostgreSQL URL

配置

选择一种连接方式。

# Full URL
DATABASE_URL=postgresql://user:pass@host:5432/db

# Or individual variables
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=secret
DB_NAME=mydb
DB_SSLMODE=prefer

# Or AWS Secrets Manager
AWS_SECRET_NAME=my-rds-secret
AWS_REGION=us-west-2

你也可以在运行时连接:

connect(url='postgresql://user:pass@host:5432/db')
connect(host='localhost', user='postgres', password='secret', database='mydb')
connect(aws_secret_name='my-secret', aws_region='us-west-2')

关键设置:

变量默认值描述
DBEAST_DEFAULT_ROW_LIMIT100execute_query 返回的最大行数
DBEAST_QUERY_TIMEOUT300查询执行超时时间,单位为秒
DBEAST_COMMAND_TIMEOUT300SQL 命令超时时间,单位为秒
DBEAST_SSL_VERIFYtrue对于证书与 localhost 不匹配的 SSH 隧道,设为 false
DBEAST_SCHEMA_CACHE_TTL60架构缓存 TTL,单位为秒;0 表示禁用缓存
DBEAST_AUDIT_ENABLEDtrue记录 MCP 工具调用
DBEAST_AUDIT_DIRlogs/mcp_audit审计日志目录

完整配置参考请参阅 SETUP.md。


安全模型

查询类型DBeast 的处理方式
SELECT自动限制行数后执行
INSERT / UPDATE / DELETE从不执行;返回影响预览
DROP / TRUNCATE从不执行;报告受影响的对象和风险

格式化响应和 JSON 响应使用一致的封装格式:

{
  "success": true,
  "data": { "...": "..." },
  "meta": {
    "connected": true,
    "source": "tool"
  }
}

审计日志记录

DBeast 会记录 MCP 工具调用,以便追责和调试。

DBEAST_AUDIT_ENABLED=true
DBEAST_AUDIT_DIR=logs/mcp_audit

审计文件按天存储为 Markdown 文件,其中包含时间戳、工具名称、耗时、脱敏后的参数、截断后的响应和错误。


开发

pip install -e ".[dev]"
pre-commit install
pytest tests/ -v
ruff check src/ tests/
ruff format src/ tests/

启动可选的本地 PostgreSQL 测试数据库:

docker compose up -d postgres

旧版 Compose:

docker-compose up -d postgres

文档


许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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