mcpField
S
SafeSelect MCP

SafeSelect MCP

本地服务
github.com/antonillos数据库05 天前更新

关于 SafeSelect MCP

SafeSelect MCP 为编码 Agent 提供 PostgreSQL 和 MongoDB 的只读数据库访问,适合需要真实数据库上下文的调试与排查。它通过本地策略、结果限制和超时控制读取,并将数据库凭据保存在聊天之外。

主要功能

  1. 01以只读工具访问 PostgreSQL 和 MongoDB
  2. 02发现表、集合与索引
  3. 03导入 DBeaver、Docker Compose 和 Compass 连接
  4. 04按项目设置访问规则、结果上限和超时
  5. 05通过 MCP stdio 在本地运行

适用场景

  1. 01根据数据库上下文排查代码问题
  2. 02检查表结构、集合和索引
  3. 03查看与问题相关的少量数据或查询计划

MCP 相关

SafeSelect 通过 MCP stdio 向编码 Agent 暴露 PostgreSQL 和 MongoDB 的只读工具;内置安装流程可配置多种 MCP 客户端。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbsafeselect-v0.8.0-aarch64-apple-darwin.mcpb
mcpbsafeselect-v0.8.0-x86_64-apple-darwin.mcpb
mcpbsafeselect-v0.8.0-aarch64-unknown-linux-gnu.mcpb
mcpbsafeselect-v0.8.0-x86_64-unknown-linux-gnu.mcpb

工具

还没有获取到工具列表

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

详细介绍

README 配图 SafeSelect

为编码 Agent 提供 PostgreSQL 和 MongoDB 只读访问权限。

借助真实数据库上下文进行调试,无需暴露写入工具。
导入现有连接。避免在聊天中泄露凭据。

开始使用 → · 演示 · Agent · 安全与质量 · 文档 · 网站

CI CRAP warnings 许可证:MIT

为什么选择 SafeSelect?

为编码 Agent 提供调查错误、了解架构或检查查询计划所需的数据库上下文。SafeSelect 为 PostgreSQL 和 MongoDB 提供只读工具,并支持本地策略和有界结果。

  • 借助数据库上下文进行调试。 在读取与任务相关的行或文档之前,先发现表、集合和索引。
  • 从现有连接开始。 从 DBeaver、Docker Compose 或 MongoDB Compass 导入,包括基于 SSH 的连接。
  • 掌控访问权限。 设置项目专属的访问规则、行数限制和超时。密码保存在 macOS Keychain 或环境变量中。
  • 在本地运行。 Agent 通过 MCP stdio 连接,不会启动 MCP 网络监听器。即使配置的数据库凭据允许写入,SafeSelect 也会强制限制其只读工具范围。

重要

SafeSelect 的只读边界仅涵盖其数据库工具。Agent 的 shell、其他 MCP 服务和直接凭据不受此边界限制。 请使用最小权限数据库用户,并从开发数据或经过脱敏的副本开始。请参阅威胁模型和限制。

实际演示

SafeSelect 入门:Homebrew、DBeaver SSH 导入、Keychain 和 OpenCode

从 Homebrew 安装到连接 Agent:导入 DBeaver 连接,将密码保存在 Keychain 中,然后让 OpenCode 通过只读工具检查一笔订单。 如需了解更多客户端、MongoDB 和 Linux 入门流程,请参阅演示集。

快速开始

在仓库根目录运行设置。你需要一个 PostgreSQL 或 MongoDB 连接,以及用于数据库命令的 Java 17+ 运行时。

1. 安装

在 macOS 上使用 Homebrew:

brew install antonillos/tap/safeselect

有关 Linux、预构建二进制文件、asdf、Java 设置或从源代码构建,请参阅安装指南。

2. 导入连接

选择你已在使用的连接来源:

连接来源命令
DBeaver 导出文件safeselect import-dbeaver ~/Downloads/dbeaver-export.zip
Docker Compose 中的 PostgreSQLsafeselect import-compose
MongoDB Compasssafeselect import-compass --path "$HOME/.config/MongoDB Compass"

使用你实际的导出文件或 Compass 目录,然后按照导入程序的驱动和密码设置步骤操作。请勿将机密信息放入项目文件或聊天中。 如需完整的 SSH 连接示例,请参阅 DBeaver → Codex 操作指南。

3. 连接你的 Agent
# Verify connectivity; this can open SSH tunnels and contact databases.
safeselect check

# Replace codex with opencode, or choose another supported client below.
safeselect agent install codex
safeselect agent status

如果你有多个环境,请在 check 和 agent install 命令中都添加 --environment <name>,以选择目标数据库。不指定时,check 会测试所有环境;只有在恰好存在一个环境时,安装才会推断目标环境。

打开或重启你的 Agent,并在出现提示时批准 MCP 服务。默认使用用户级范围安装;在支持的情况下,添加 --local 可使用项目级范围。 请参阅客户端配置与范围。

4. 试用

向你的 Agent 提问:

使用 SafeSelect 识别已连接的后端。对于 PostgreSQL,列出表并使用目录元数据描述其中一张表。对于 MongoDB,仅列出数据库和集合。读取行或抽样文档前请停止。

成功标志: Agent 能报告数据库身份以及可用的表或集合,无需在对话中提供数据库密码。 然后让它针对某个具体问题进行调查,并进行小规模、有针对性的读取。 MongoDB 架构推断会抽样文档,因此只有在你准备好读取数据时才包含这一步。

需要帮助? 运行 safeselect doctor --environment <name> 并按照下一步操作。诊断可能会连接数据库。请参阅连接诊断或Agent 恢复指南。

支持的 Agent

OpenAI Codex · OpenCode · Claude Code · Cursor · Windsurf · GitHub Copilot · Gemini CLI

SafeSelect 可与通过 stdio 通信的 MCP 客户端配合使用。内置安装功能支持上述客户端;集成指南介绍了配置、范围和手动设置。Codex 和 OpenCode 还会获得四个可移植的工作流技能。更新 SafeSelect 后,运行 safeselect agent upgrade <client> 并重新加载客户端。

安全性与质量证据

SafeSelect 会在数据库执行前根据项目策略验证请求。 普通策略拒绝会返回错误;严重安全攻击以及内部验证或审计失败会导致服务停止。结果限制和超时会约束读取操作,查询文本会经过哈希处理并记录到审计记录中。

数据库安全测试套件会针对一次性 PostgreSQL 和 MongoDB 测试数据运行。拒绝测试用例会检查预期错误,并将生成的数据库状态与基线进行比较,因此仅返回拒绝响应不足以通过测试。

检查内容查看证据
SQL 写入、堆叠语句和具有副作用的函数PostgreSQL 安全测试
MongoDB 写入阶段、服务器端 JavaScript 和访问边界MongoDB 安全测试
格式错误的 MCP 请求、策略拒绝和关闭行为MCP 回归测试
Rust 和 Java 复杂度及测试覆盖率CRAP 报告和 CI 工件
提交签名和消息格式提交策略

请参阅如何验证 CI 执行,查看与特定提交对应的结果。测试源代码描述了检查内容;匹配的成功运行则提供执行证据。待运行或已跳过的测试套件均未经过验证,徽章也可能对应不同的修订版本。

请阅读威胁模型与限制、安全模型或架构,了解这些控制措施的范围。 有关替代方案及其权衡,请参阅数据库 MCP 对比。

文档

我想要……从这里开始
安装、更新或卸载安装指南
设置我的编码 AgentAI Agent 集成
导入由 SSH 支持的 DBeaver 连接DBeaver → Codex 操作指南
查看示例演示集锦 · 可视化命令集锦
查找命令或 MCP 工具CLI 参考 · MCP 工具
配置策略、环境或密码配置
了解安全边界威胁模型和限制 · 架构
查看质量检查和安全测试CI 和 CRAP 报告 · 安全测试套件
查找软件包和目录列表分发
构建或参与贡献贡献指南 · 更新日志

反馈与贡献

遇到设置问题或有功能请求?提交问题。 如果反馈设置问题,请注明所用客户端、操作系统和出错步骤;请勿提供 凭据、连接导出内容或数据库内容。 请通过安全政策报告安全漏洞。

欢迎贡献——请参阅贡献指南开始参与。

许可证

MIT。

评论

支持 Markdown

第一次接触 MCP?

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

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