ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

MCP Toolbox for Databases Server 快速上手指南:安装、tools.yaml 配置与自定义 MCP Server 接入

MCP Toolbox for Databases Server 快速上手指南:安装、tools.yaml 配置与自定义 MCP Server 接入 MCP Toolbox for Databases Server 快速上手指南安装、tools.yaml 配置与自定义 MCP Server 接入【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolboxMCP Toolbox for Databases以下简称 Toolbox是一个开源的 Model Context ProtocolMCP服务器为 AI 开发工具如 Gemini CLI、Google Antigravity、Claude Code 等提供与自定义工具交互的能力核心目标是简化并安全化“与数据库交互的工具”的开发与部署。本文以 docs/TOOLBOX_README.md 为主线完整讲解从环境准备、Antigravity MCP Store 安装、tools.yaml配置文件编写到以自定义 MCP Server 形式接入任意 MCP 客户端的全流程并结合本仓库源码main.go、cmd/root.go、cmd/internal/config.go 等说明其底层工作机制。读完本文你将能够独立完成 Toolbox 服务器的安装、配置与客户端接入并理解其配置加载原理。项目定位一个给数据库用的 MCP ServerToolbox 承担双重职责见 README.md开箱即用的 MCP Server构建期借助预构建的通用工具如list_tables、execute_sql可让 Gemini CLI、Google Antigravity、Claude Code 等 MCP 客户端直接连接数据库无需编写样板代码。自定义工具框架运行期提供一个健壮的框架用于为生产环境 Agent 构建专门的、高安全性的 AI 工具支持结构化查询、语义搜索与 NL2SQL 等能力。环境准备Prerequisites在开始安装之前需要满足以下前置条件Node.js已安装 Node.js。Toolbox 的 npm 分发包toolbox-sdk/server依赖 Node.js 运行时。Google Cloud 项目拥有一个启用了相关 API 的 Google Cloud 项目。Toolbox 集成了 Google Cloud 的 IAM 认证、Cloud Monitoring 遥测等能力。Application Default CredentialsADC确保环境中存在可用的应用默认凭证。Toolbox 通过 ADC 完成对 Google Cloud 资源的身份认证例如使用gcloud auth application-default login即可在本地环境建立凭证。通过 Antigravity MCP Store 安装与配置Google Antigravity MCP Store 提供了点击即可安装的体验安装步骤如下在 Antigravity MCP Store 中点击Install按钮此时会出现一个配置窗口。首次使用时安装过程会自动下载并使用toolbox-sdk/server要求0.26.0。如需更新 Toolbox执行npm i -g toolbox-sdk/serverlatest若要始终运行最新版本可将 MCP 服务器配置中的启动命令改为npx -y toolbox-sdk/serverlatest仓库中 npm/server/package.json 记录了当前分发包为toolbox-sdk/server1.11.0并通过 optionalDependencies 按平台darwin/linux/win32 × arm64/x64分发原生二进制。创建你的tools.yaml配置文件。在配置窗口中输入tools.yaml文件的完整绝对路径点击Save保存。[!NOTE] 如果在 Windows 上遇到 Windows Defender 阻止执行的问题可能需要配置允许列表allowlist参见 Microsoft 官方的“为 Microsoft Defender 防病毒配置排除项”文档。编写 tools.yamlToolbox 的配置核心tools.yaml是 Toolbox 的主要配置方式。如果拥有多个配置文件可通过--config tools.yaml标志指定要加载的文件cmd/internal/flags.go 中定义了--config、--configs、--config-folder三个互斥的加载方式单文件、多文件合并、目录下全部.yaml/.yml合并。使用环境变量避免硬编码为避免在配置中硬编码密码、用户名、API Key 等敏感字段可以使用${ENV_NAME}格式引用环境变量并支持${ENV_NAME:default}提供默认值user: ${USER_NAME} password: ${PASSWORD} port: ${DB_PORT:3306}该机制由 cmd/internal/config.go 中的parseEnv实现解析时用正则匹配${VAR}与${VAR:default}占位符从进程环境变量取值未设置且无默认值时会报告缺失的环境变量名称及所在行列启动即失败fast fail。这保证了敏感信息不落盘、配置可移植。Sources数据源source类型定义 Toolbox 可以访问的数据源大多数工具至少需要一个 source 作为执行目标kind: source name: my-pg-source type: postgres host: 127.0.0.1 port: 5432 database: toolbox_db user: ${USER_NAME} password: ${PASSWORD}Tools工具tool类型定义 Agent 可执行的动作工具类型、作用于哪个 source、使用哪些参数等。以postgres-sql工具为例kind: tool name: search-hotels-by-name type: postgres-sql source: my-pg-source description: Search for hotels based on name. parameters: - name: name type: string description: The name of the hotel. statement: SELECT * FROM hotels WHERE name ILIKE % || $1 || %;安全提示自定义工具应使用参数化查询PostgreSQL 用$1、$2MySQL 用?占位符避免拼接动态 SQL防止注入攻击同时可结合 source 级readOnly: true与数据库只读权限形成纵深防御。Toolsets 与 Groups工具分组toolset类型允许将多个工具打包在一起按需加载便于针对不同 Agent 或应用划分工具集kind: toolset name: my_first_toolset tools: - my_first_tool - my_second_tool --- kind: toolset name: my_second_toolset tools: - my_second_tool - my_third_toolgroup类型则把 tools、prompts、resources、resourceTemplates 等 MCP 原语统一命名分组toolset 本质是“仅含工具的 group”旧版kind: toolset配置无需改动即可继续工作转换逻辑见 cmd/internal/config.go 的migrateToolsetKind。Prompts 与 Resourcesprompt定义用于与 LLM 交互的结构化消息模板kind: prompt name: code_review description: Asks the LLM to analyze code quality and suggest improvements. messages: - content: Please review the following code for quality, correctness, and potential improvements: \n\n{{.code}} arguments: - name: code description: The code to reviewresource/resourceTemplate定义可被 MCP 客户端发现和检索的只读内容、文件与参数化 URI 模式kind: resource name: database_schema_ddl type: text description: Core table definitions and constraints. mimeType: text/x-sql text: | CREATE TABLE customers ( id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL, email VARCHAR(255) UNIQUE NOT NULL ); --- kind: resourceTemplate name: server_logs type: file description: Application runtime log files. uriTemplate: file:///var/log/{path} allowedPaths: - /var/log从源码结构看cmd/internal/config.go 的Config结构体完整覆盖了以上全部类型sources、authServices、embeddingModels、tools、prompts、resources、resourceTemplates、groups并在加载时进行资源命名冲突检测mergeConfigs确保所有文件中的名称唯一。使用方式用自然语言操作自定义工具配置完成后即可通过自然语言与你的自定义工具交互。无论工具是查询酒店、执行 SQL 还是检索日志你都可以用日常语言向 AI 助手描述意图由助手调用对应工具完成操作。作为自定义 MCP Server 接入任意客户端除了 Antigravity MCP Store也可以将 Toolbox 作为自定义 MCP Server 配置进任意 MCP 客户端。完整的 MCP 服务器配置示例如下{ mcpServers: { mcp-toolbox: { command: npx, args: [-y, toolbox-sdk/server, --config, your-tool-file.yaml], env: { ENV_VAR_NAME: ENV_VAR_VALUE } } } }要点说明command / argsnpx -y toolbox-sdk/server --config yaml路径会启动 Toolbox 服务器并加载指定配置文件-y表示自动确认安装 npm 包。env可在此注入配置文件里${ENV_VAR_NAME}所引用的环境变量值避免敏感信息写入配置文件。客户端通常通过 stdio 与 Toolbox 通信在命令行直接运行时--stdio标志用于切换到 MCP stdio 模式默认则作为远程 HTTP 服务器监听--address/--port默认127.0.0.1:5000见 cmd/internal/flags.go。源码视角服务器是如何启动与加载配置的入口与命令结构main.go 仅调用cmd.Execute()cmd/root.go 构建toolbox根命令并注册invoke、skills、serve、migrate四个子命令同时挂载--config、--prebuilt、--stdio、--ui、--disable-reload、--poll-interval等标志。其中--disable-reload用于关闭默认开启的配置文件动态热加载。配置解析流水线ConfigParser.ParseConfig依次执行环境变量替换parseEnv、嵌套格式到扁平格式的转换ConvertConfig再由server.UnmarshalPrimitiveConfig反序列化为各类型配置。支持多文件合并与冲突检测。预构建工具internal/prebuiltconfigs/prebuiltconfigs.go 通过//go:embed tools/*.yaml将 internal/prebuiltconfigs/tools 目录下的 YAML 内嵌进二进制--prebuiltsource如--prebuiltpostgres即可直接加载对应数据库的预构建工具集--prebuiltsource/toolset可只加载指定 toolset。延伸阅读完整配置参考docs/en/documentation/configuration/_index.md预构建工具参考internal/prebuiltconfigs/tools服务器与 SDK 集成示例README.md开发与构建说明DEVELOPER.md/DSMLparameter /DSMLinvoke /DSMLtool_calls【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表