公司动态
让 AI 助手安全地查数据库:MCP Toolbox 数据库 MCP 服务器实践指南
让 AI 助手安全地查数据库MCP Toolbox 数据库 MCP 服务器实践指南【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolboxMCP Toolbox for Databases 是一个开源Apache 2.0 协议的数据库 MCP 服务器它把 PostgreSQL、MySQL、BigQuery 这类数据库封装成标准 MCP 工具让 Claude Code、Gemini CLI 等 AI 客户端用自然语言查数据也让你自己的应用代码通过 SDK 加载同一套工具。设想一个常见需求团队想让 AI顺便帮我查下数据。直接放开数据库权限不敢怕模型写出任意 SQL每接一种数据库又得重写一遍连接、认证代码给 LangChain 写的工具接到 LlamaIndex 上又得重做一遍。MCP Toolbox 把这三件事收敛到一个进程里数据库连接、认证、连接池它管你只定义哪些工具被允许存在。MCP Toolbox 帮你解决哪三类问题第一是权限收敛。传统做法是给 agent 一个数据库账号它能执行什么取决于账号权限Toolbox 让你在配置里声明一组参数化工具比如按名字搜订单agent 只能通过这些入口操作数据库拿不到裸 SQL 执行权。第二是连接与认证的复用。一个 source 配置定义一次连接主机、端口、凭证、IAM 身份多个工具共享同一个连接池凭证支持从环境变量注入。第三是跨框架复用。同一份工具定义MCP 客户端直接走协议Python/JS/Go/Java 应用各自用官方 SDK 加载工具实现只在internal/sources/下维护一份每个数据库一个目录PostgreSQL、MySQL、Oracle、MongoDB、Redis、Elasticsearch、ClickHouse、Neo4j、Snowflake 以及 Google Cloud 的 BigQuery、Cloud SQL、Spanner、AlloyDB 等都有对应实现。这张架构图说明了 Toolbox 的居中角色左侧是各种 AI 客户端和应用程序中间是 Toolbox 服务器右侧是它支持的各类数据库所有访问都经过同一层工具定义。最快路径一条命令启动 MCP Toolbox安装最简单的是 Homebrewbrew install mcp-toolboxmacOS/Linux也可以从 Releases 页下载官方二进制或用 Node 直接跑npx toolbox-sdk/server官方注明这种方式图省事性能非最优。# 安装任选其一 brew install mcp-toolbox npx toolbox-sdk/server --help # 免安装体验 # 零配置启动加载 PostgreSQL 预置工具启动 Web UI默认端口 5000 ./toolbox --prebuiltpostgres --ui加--stdio则不走 HTTP直接以 MCP 标准输入输出模式挂到 IDE 客户端上适合本地开发。服务器默认启用配置热重载改完 YAML 不用重启不需要时加--disable-reload。tools.yaml 只有三种资源source、tool、toolset自定义模式的核心是一份tools.yaml全部字段参考 docs/en/documentation/configuration/kind: source name: my-pg-source type: postgres host: 127.0.0.1 port: 5432 database: toolbox_db user: toolbox_user password: ${POSTGRES_PASSWORD} --- kind: tool name: search-hotels type: postgres-sql source: my-pg-source description: 按名称搜索酒店。 parameters: - name: name type: string description: 酒店名称关键词。 statement: SELECT * FROM hotels WHERE name ILIKE % || $1 || %; --- kind: toolset name: hotel-ops tools: - search-hotels三种资源各管一件事source定义连接凭证$1这类占位参数与数据库的预处理语句绑定天然防注入tool声明一个带参数 schema 的受限操作agent 只能按参数调用toolset把工具分组客户端按需只加载某一组避免把无关工具全塞进模型上下文。凭证等敏感值支持${ENV_NAME:默认值}环境变量插值实现见cmd/internal/config.go不必把密码写死在文件里。这张截图是 Toolbox UI 的工具集toolset管理页可以看到每个工具集下挂了哪些工具用于核对暴露范围。--prebuilt 预置工具不改一行配置先跑起来不想手写 YAML 时--prebuiltpostgres会加载内置的一套通用工具list_tables、查 schema、执行 SQL 等预置配置源码就在仓库的internal/prebuiltconfigs/tools/目录每个数据库一份 YAML。还可以按--prebuiltpostgres/data只加载其中的 SQL 工具集并且能与--config组合即预置 自定义混用。官方文档对这个模式有一条明确的告诫见docs/en/documentation/configuration/prebuilt-configs/预置工具面向构建期场景即帮助可信开发者工作动态execute_sql类工具不是数据库安全边界生产上应给 agent 单独建一个只读账号固定流程则改用参数化自定义工具。调试单个工具不用起客户端直接用子命令toolbox invoke tool-name json参数。MCP 客户端和应用怎么接进来服务器起来后有两种接入方式MCP 客户端在mcp.json里指向http://127.0.0.1:5000/mcp只想暴露某个工具集时用http://127.0.0.1:5000/mcp/{toolset_name}。应用 SDK官方提供四语言客户端 SDK核心用法都是连上服务器 URL按工具集名加载工具语言主要包典型场景Pythontoolbox-core、toolbox-langchain、toolbox-llamaindexADK、LangChain、LlamaIndex 代理框架JavaScripttoolbox-sdk/core、toolbox-sdk/adkNode 服务、ADK/Genkit 应用Gomcp-toolbox-sdk-go高并发后端Javamcp-toolbox-sdk-java企业 Java 应用加--ui启动后浏览器里可以直接看到工具清单、填参数试跑调试配置时比翻日志直观这张图展示的是 Toolbox UI 的工具页左边是工具列表选中后可填写参数并在线执行等价于toolbox invoke。上生产前值得知道的三个进阶配置认证。内置认证模块支持 Google IAM 与通用认证internal/auth/MCP 协议层的服务器级认证可通过--mcp-prm-file提供 PRM 元数据完整 CLI 参数表见 docs/en/reference/cli.md。可观测性。--telemetry-otlp把 metrics/tracing 按 OpenTelemetry 协议导出到自建 collector--telemetry-gcp直出 Google Cloud Monitoring--sql-commenter会在执行的 SQL 里追加 traceparent、工具名等注释方便在数据库侧的审计日志里回溯这条 SQL 是哪个工具发起的。网络面。--address/--port控制监听默认127.0.0.1:5000--tls-cert/--tls-key上 TLS--allowed-origins/--allowed-hosts防 CORS 滥用和 DNS 重绑定。MCP Toolbox 适合谁不适合谁适合维护多个 AI 客户端或多个语言应用、想让它们共享同一套数据库工具层的团队想给 agent 做最小权限而不是给完整账号的场景。适合大量使用 Google Cloud 数据库BigQuery、Cloud SQL、Spanner、AlloyDB、Firestore且有 IAM 认证需求的用户。不适合脚本里临时连一个库取几张表——直接用驱动更快需要 agent 具备库级管理权限的场景受限工具的设计反而会增加摩擦。注意预置的动态 SQL 工具官方明确标注不适用于不受信运行时生产接入必须自己写受限工具。想深入阅读源码可从仓库 https://gitcode.com/GitHub_Trending/ge/mcp-toolbox 克隆重点看internal/sources/各数据库实现、internal/tools/工具框架和docs/en/documentation/完整配置参考。【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考