
SafeSelect MCP
io.github.antonillos由 GitHub 账号 antonillos 发布v0.9.0更新于 Nov 7, 2026
Fail-closed, read-only PostgreSQL and MongoDB access for AI agents over MCP.
概览
一个本地 MCP 服务器,为编码代理提供失败即关闭、只读的 PostgreSQL 和 MongoDB 访问,用于调试、查看结构和查询计划。
- 可以做什么
- 通过只读工具发现 PostgreSQL 和 MongoDB 的表、集合与索引,查看结构和查询计划,结果有行数限制和超时。从 DBeaver、Docker Compose 或 MongoDB Compass 导入现有连接,包括通过 SSH 的连接。凭据保存在 macOS 钥匙串或环境变量中,而不是聊天里。为 Codex、OpenCode、Claude Code、Cursor、Windsurf、GitHub Copilot 和 Gemini CLI 等编码代理安装并检查服务器。
- 适用场景
- 当编码代理需要真实数据库上下文来排查缺陷、理解结构或审查查询计划,并且你不想暴露写入工具时使用。适合已在 DBeaver、Docker Compose 或 Compass 中保存连接定义的团队。
- 运行要求
- 通过 stdio 在本地运行,没有网络监听端口。需要 PostgreSQL 或 MongoDB 连接,以及用于数据库命令的 Java 17+ 运行时。密码保存在 macOS 钥匙串或环境变量中。macOS 上通过 Homebrew 安装,Linux 上使用预编译二进制文件。
安装
在 SourceWeft 中
- 打开 控制台中的 SafeSelect MCP,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
[图片] SafeSelect
Read-only PostgreSQL & MongoDB access for coding agents.
Debug with real database context, without exposing write tools.
Import your existing connections. Keep credentials out of the chat.
Get started → · Demo · Agents · Security & quality · Docs · Website
[CI] [CRAP warnings] [License: MIT]
Why SafeSelect?
Give your coding agent the database context it needs to investigate a bug, understand a schema or inspect a query plan. SafeSelect exposes read-only tools for PostgreSQL and MongoDB, with local policy and bounded results.
- Debug with database context. Discover tables, collections and indexes before reading the rows or documents relevant to your task.
- Start with connections you already have. Import from DBeaver, Docker Compose or MongoDB Compass, including SSH-backed connections.
- Keep control of access. Set project-specific access rules, row limits and timeouts. Passwords stay in macOS Keychain or environment variables.
- Run locally. The agent connects over MCP stdio, with no MCP network listener. SafeSelect enforces its read-only tool surface even when the configured database credentials allow writes.
[!IMPORTANT] SafeSelect's read-only boundary covers its database tools. An agent's shell, other MCP servers and direct credentials remain outside that boundary. Use least-privilege database users and start with development data or a sanitized replica. See the threat model and limits.
See it in action
[SafeSelect onboarding: Homebrew, DBeaver SSH import, Keychain and OpenCode]
From Homebrew to a connected agent: import a DBeaver connection, keep its password in Keychain, and let OpenCode inspect an order through read-only tools. See the demo gallery for more clients, MongoDB and Linux onboarding.
Quick Start
Run setup from your repository root. You need a PostgreSQL or MongoDB connection and a Java 17+ runtime for database commands.
1. Install
On macOS with Homebrew:
For Linux, prebuilt binaries, asdf, Java setup or source builds, follow the installation guide.
2. Import a connection
Choose the source you already use:
Use your actual export or Compass directory, then follow the importer's driver and password setup steps. Keep secrets out of project files and chat. For a complete SSH-backed example, follow the DBeaver → Codex walkthrough.
3. Connect your agent
If you have multiple environments, add --environment <name> to both check
and agent install to select the intended database. Without it, check tests
all environments; installation only infers a target when there is exactly one.
Open or restart your agent and approve the MCP server if prompted. Installation
uses user scope by default; add --local for project scope where supported.
See client setup and scopes.
4. Try it
Ask your agent:
Use SafeSelect to identify the connected backend. For PostgreSQL, list tables and describe one using catalog metadata. For MongoDB, list databases and collections only. Stop before reading rows or sampling documents.
Success: the agent reports the database identity and available tables or collections without needing a database password in the conversation. Then ask it to investigate a specific issue with a small, targeted read. MongoDB schema inference samples documents, so include that step only when you are ready to read data.
Need help? Run safeselect doctor --environment <name> and follow its next
step. Diagnostics can contact the database. See the
connection diagnostics or
agent recovery guide.
Supported agents
OpenAI Codex · OpenCode · Claude Code · Cursor · Windsurf · GitHub Copilot · Gemini CLI
SafeSelect works with MCP clients over stdio. Built-in installation handles the
clients above; the integration guide covers configuration,
scopes and manual setup. Codex and OpenCode also receive four portable workflow
skills. After updating SafeSelect, run safeselect agent upgrade <client> and
reload your client.
Security and quality evidence
SafeSelect validates requests against project policy before database execution. Ordinary policy rejections return an error; serious security attempts and internal validation or audit failures stop the server. Result limits and timeouts bound reads, and query text is hashed for audit records.
The database security suites run against disposable PostgreSQL and MongoDB fixtures. Rejection cases check the expected error and compare the resulting database state with a baseline, so a rejected response alone is not enough to pass.
See how to verify a CI execution for results tied to a specific commit. Test source describes the checks; a successful matching run provides execution evidence. Pending or skipped suites are unverified, and badges can refer to a different revision.
Read the threat model and limits, the security model, or the architecture for the scope of these controls. For alternatives and tradeoffs, see the database MCP comparison.
Documentation
Feedback and contributions
Have a setup problem or a feature request? Open an issue. For setup feedback, include your client, OS and the step that failed; leave out credentials, connection exports and database contents. Report security vulnerabilities through the security policy.
Contributions are welcome—see Contributing to get started.
License
MIT.
来源:README.md,提交 98d4984
工具
0版本历史
5- v0.8.0Oct 18, 2026
- v0.7.12Oct 8, 2026
- v0.7.11Oct 6, 2026
- v0.7.10Oct 6, 2026
- v0.7.9Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分