DataNexa — Database MCP Gateway
Provides a unified read-only MCP gateway for MySQL databases, including connection management, schema discovery, field descriptions, data sampling, read-only SQL execution, and query plan inspection with auditing and resource limits.
Provides a unified read-only MCP gateway for PostgreSQL databases, including connection management, schema discovery, field descriptions, data sampling, read-only SQL execution, and query plan inspection with auditing and resource limits.
Provides a unified read-only MCP gateway for SQLite databases, including connection management, schema discovery, field descriptions, data sampling, read-only SQL execution, and query plan inspection with auditing and resource limits.
DataNexa 是一个运行在本机的数据库 MCP 服务。它为 AI Agent 提供统一、受控且可审计的数据访问入口,在执行查询前应用只读策略,并对返回行数、执行时间和连接数量进行限制。
DataNexa 原生支持 SQLite、MySQL 和 PostgreSQL,并通过 JDBC 支持(技术预览)连接更多数据库。桌面端基于 Tauri、React 与 Rust 构建。
为什么做 DataNexa
让 AI 连上数据库并不难,难的是让这件事可控、可信。DataNexa 的初衷,归结起来是三件事:
一份 MCP 配置,访问多个数据库。 数据库一多,为每个库逐一配置 MCP 服务既繁琐又难以维护。DataNexa 把所有连接聚合到同一个本地 MCP 服务:Agent 侧只需维护一份 MCP 配置,即可按需访问多个已启用的数据库。
拿不到只读账号时,前置一道防线。 理想情况下,AI 应当使用数据库只读账号访问数据;但现实中,我们未必能为每套企业数据申请到只读账号。DataNexa 在 Agent 与数据库之间充当前置网关:基于 SQL 语法树校验,非只读语句一律拦截,同时限制返回行数、执行时间与连接数量——在无法变更账号权限时,尽可能收窄风险面。
AI 对数据库做了什么,一目了然。 把数据库交给 AI,最大的不安是不知道它实际执行了什么。DataNexa 在本地保留完整审计记录:哪条 SQL、何时执行、调用了哪个工具、结果如何,每一次数据访问都清清楚楚、有据可查。
Related MCP server: postgres-mcp-query-tool
功能特性
统一管理 SQLite、MySQL 和 PostgreSQL 只读连接
通过 JDBC 支持(技术预览)连接其他数据库:从 Maven 安装 JDBC 驱动并使用 JDBC URL 建立连接,同样受只读策略与审计约束
提供表结构发现、字段描述、数据采样、只读 SQL 和查询计划等 MCP 工具
基于 SQL 语法树校验查询,限制为只读语句
支持 Bearer Token 鉴权、手动轮换与访问令牌自动熔断
数据库密码保存到操作系统凭证库,不写入常规配置文件
支持最大返回行数、查询超时和连接池上限
保留本地审计记录,支持按保存天数自动清理,并可对 SQL 字面量进行脱敏
提供连接诊断、工具开关、紧急禁用和连接导入/导出
支持简体中文、英文以及浅色/深色主题
界面预览
下载与安装
预编译版本可从 Releases 页面下载。请根据操作系统选择对应的安装包或可执行文件,并优先使用最新稳定版本。
首次运行后,按以下顺序完成配置:
新建数据库连接,并使用数据库侧的只读账号。
测试连接,确认网络、凭证和权限配置正确。
在“MCP 服务”页面启动本地服务。
复制 Agent 接入配置,并添加到支持 MCP 的客户端。
从源码构建
环境要求
Node.js 20 或更高版本
Java SE 21 (JDK) 和 Maven 3.9,用于构建 JDBC sidecar
Tauri 2 所需的系统依赖
各平台的系统依赖不同,完整说明见 Tauri Prerequisites:
Windows:Microsoft C++ Build Tools、WebView2,以及 Rust MSVC 工具链
macOS:Xcode Command Line Tools
Ubuntu/Debian:
libwebkit2gtk-4.1-dev、libayatana-appindicator3-dev、librsvg2-dev、patchelf、xdg-utils
获取源码
git clone https://github.com/MingoZacwu/DataNexa.git
cd DataNexa
corepack enable
corepack prepare pnpm@9 --activate
pnpm install --frozen-lockfile本地开发
pnpm run build:jdbc-sidecar
pnpm run dev:app第一条命令构建 JDBC sidecar JAR(首次运行或 sidecar 代码变更后需要执行)。第二条命令会启动 Vite 开发服务,并以 Tauri 桌面窗口运行应用。
如需在本地开发中使用 JDBC 功能,还需要一个 Java 运行时:可以在应用的设置页下载 DataNexa 托管运行时,或选择本机已安装的外部 Java 运行时。
编译可执行文件
pnpm run build:portable该命令会先自动构建 JDBC sidecar(需要 JDK 和 Maven),再编译应用。编译结果位于 src-tauri/target/release/。Windows 下通常为 datanexa.exe,macOS 和 Linux 下为对应平台的 datanexa 可执行文件。
构建安装包
pnpm run build:installer该命令同样会先自动构建 JDBC sidecar。安装包及平台相关产物位于:
src-tauri/target/release/bundle/安装包不内置 Java 运行时。JDBC 功能首次使用时,可在应用设置中下载 DataNexa 托管运行时,或选择本机已有的外部 Java 运行时。
仅需检查前端类型和构建结果时,可运行:
pnpm run buildDataNexa 只能为当前构建平台生成原生应用。若需要 Windows、macOS 和 Linux 版本,请分别在对应系统上构建。
安全说明
“只读”是降低风险的防护措施,不等同于绝对安全。接入真实数据前,建议同时落实以下措施:
为 DataNexa 单独创建最小权限数据库账号,并在数据库侧撤销写入和管理权限
对敏感表、敏感字段和生产网络设置额外的访问控制
保持 Bearer Token 鉴权开启,不要向不可信应用泄露 Token
定期检查审计记录,只启用当前任务必需的 MCP 工具
对数据库进行必要备份,不要将 DataNexa 作为唯一安全边界
连接导出文件包含明文数据库密码。导出后请将文件保存在访问受控的位置,完成迁移后及时删除,切勿提交到代码仓库或上传到公共存储。
如发现安全问题,请不要在公开 Issue 中披露数据库信息、访问凭证或可直接利用的细节,可通过仓库维护者提供的私有联系方式报告。
参与贡献
欢迎通过 Issues 提交问题和建议,也欢迎提交 Pull Request。提交 Issue 时,请尽量附上问题的复现步骤与环境信息(操作系统、数据库类型与版本、驱动名称与版本)。
如需协助定位问题,可以在“设置 → 关于”页面连续点按版本号区域 5 次,打开隐藏的调试日志选项;开启后复现问题,再在设置中打开日志文件夹获取日志文件。日志内容已经过脱敏处理,不会记录明文凭据,随 Issue 一并提交可以帮助我们更快定位问题。
提交代码前,请确保前端构建、Rust 格式检查、测试和 Clippy 检查均能通过:
pnpm run build
cargo fmt --manifest-path src-tauri/Cargo.toml -- --check
cargo test --manifest-path src-tauri/Cargo.toml --locked
cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets --locked -- -D warnings提交 Issue 或日志时,请先移除连接字符串、数据库名称、账号、Token、SQL 字面量及业务数据。
免责与使用须知
数据无价,谨慎使用。
只读策略不能完全保证所有风险都被拦截,仍需主动约束 Agent,避免要求或允许其执行危险的数据库操作。
DataNexa 是由个人独立开发和维护的开源项目,与 MySQL、PostgreSQL、SQLite、MCP 客户端及其所属组织不存在隶属或官方合作关系。
本项目按“原样”提供,不对适用性、可靠性、安全性或数据完整性作任何明示或暗示的保证。因使用或无法使用本项目而产生的数据丢失、服务中断、安全事件或其他损失,项目作者及贡献者在适用法律允许的最大范围内不承担责任。使用者应自行评估风险,并对数据库权限、备份、网络隔离和合规要求负责。
致谢
特别感谢 DBX 项目。DataNexa 在实现 JDBC 支持的过程中,参考了 DBX 的架构设计与实现思路。在此向 DBX 项目及其贡献者表示诚挚感谢。
许可证
本项目基于 MIT License 开源。你可以在许可证允许的范围内使用、复制、修改、合并、发布和分发本项目,但必须保留原始版权声明和许可证文本。
版权信息
Copyright (C) 2026 Zachary Wu
MySQL、PostgreSQL、SQLite 及其他名称和商标归其各自权利人所有。
This server cannot be deployed
Maintenance
Related MCP Connectors
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
Draxlr's remote MCP server connects AI assistants to your SQL databases and dashboards. Explore schemas, run read-only queries, manage saved queries and dashboards, and export results, all with row-level security so each user sees only their own data.
Guard AI agents' PostgreSQL/MySQL access via MCP: SQL audit, auth, masking, write approval
- dataOAuthco.thinair
PostgreSQL, MySQL, and SQL Server in one session. 26 read-only MCP tools for AI agents.
Related MCP Servers
- AlicenseAqualityBmaintenanceSecure MCP server for safe, read-only DB access by AI agents, with SQL guardrails, table allowlists, PII masking, and audit logs617 npm9MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that gives an AI agent scoped, safe access to your Postgres databases with per-connection access control, row caps, timeouts, and defense-in-depth read-only enforcement.-
- FlicenseNot gradedqualityFmaintenanceA read-only MCP server that enables AI agents to explore database schemas and execute safe queries on PostgreSQL and MySQL.-
- AlicenseAqualityCmaintenanceRead-only MCP server that lets AI agents safely query SQLite, PostgreSQL, and MySQL/MariaDB. Enforces read-only transactions with column masking, row caps, query timeouts, EXPLAIN-based cost rejection, and rate limiting.715 npm2MIT