ARTICLE DETAIL

资讯详情

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

使用 MCP Toolbox 将 SQLite 接入 IDE:MCP 数据库工具服务器完整配置指南

使用 MCP Toolbox 将 SQLite 接入 IDE:MCP 数据库工具服务器完整配置指南 使用 MCP Toolbox 将 SQLite 接入 IDEMCP 数据库工具服务器完整配置指南【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox本指南基于 MCP Toolbox for DatabasesGoogle 开源的数据库 MCP 服务器讲解如何将 SQLite 数据库通过 Model Context Protocol (MCP) 暴露给主流 AI 开发工具。读完本文后你将掌握 Toolbox 二进制的下载与安装、SQLite 预置工具集的加载原理以及 Cursor、Windsurf、VS Code (Copilot)、Cline、Claude Desktop、Claude Code、Gemini CLI、Gemini Code Assist 等 8 种客户端的完整配置方法让 LLM 助手直接对本地 SQLite 文件执行list_tables与execute_sql。背景为什么用 MCP 连接 SQLiteModel Context Protocol 是一种开放协议用于将大语言模型LLM与 SQLite 等数据源连接起来。它定义了一套标准化的工具tool调用方式使 AI 助手可以像调用函数一样安全、受控地访问数据库读取表结构、执行查询、写入数据而无需把数据库凭据或查询逻辑硬编码进提示词。MCP Toolbox for Databases 在协议之上做了两层封装Source数据源抽象数据库连接例如 SQLite 的type: sqlite就指向一个.db文件路径Tool工具抽象可执行操作例如sqlite-execute-sql、sqlite-sql两种工具类型分别用于任意 SQL 执行和模板化查询。下文从零开始完成数据库准备 → 安装 Toolbox → 配置客户端 → 使用工具的完整链路。第一步准备 SQLite 数据库文件首先创建或选择一个 SQLite 数据库文件本文示例使用项目根目录下的sample.dbsqlite3 sample.db CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, email TEXT);如果本机没有sqlite3CLI也可以从 SQLite 官网下载命令行工具或直接让后续接入的 AI 助手通过 MCP 工具来建表execute_sql支持任意 DDL/DML 语句。文件的相对路径如./sample.db将在客户端配置中通过SQLITE_DATABASE环境变量传给 Toolbox。第二步安装 MCP Toolbox从官方 Release 下载与操作系统、CPU 架构匹配的二进制文件。要求 Toolbox 版本不低于 V0.10.0当前仓库cmd/version.txt记录的版本为1.11.0本文下载地址与之一致。按平台选择对应的curl命令平台命令linux/amd64curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/v1.11.0/linux/amd64/toolboxdarwin/arm64Apple Siliconcurl -O https://storage.googleapis.com/mcp-toolbox-for-databases/v1.11.0/darwin/arm64/toolboxdarwin/amd64Intel Maccurl -O https://storage.googleapis.com/mcp-toolbox-for-databases/v1.11.0/darwin/amd64/toolboxwindows/amd64curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/v1.11.0/windows/amd64/toolbox.exewindows/arm64curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/v1.11.0/windows/arm64/toolbox.exe下载后Linux/macOS赋予执行权限并验证版本chmod x toolbox ./toolbox --version验证输出会包含语义版本号与构建元数据。从源码看版本号由version.txt与编译期信息构建类型、GOOS、GOARCH、commit拼接而成参见 cmd/root.go因此输出形如v1.11.0binary.linux.amd64.sha。第三步理解预置配置与两个关键参数所有客户端配置都使用同一组核心参数理解其含义后再动手会更顺利--prebuilt sqlite告诉 Toolbox 加载 SQLite 的预置工具配置。预置配置以 YAML 形式内嵌在二进制中由 internal/prebuiltconfigs/prebuiltconfigs.go 通过go:embed加载sqlite即对应 internal/prebuiltconfigs/tools/sqlite.yaml--stdio以标准输入输出stdio模式启动 MCP 服务器这是桌面 IDE 类 MCP 客户端最常用的传输方式。Toolbox 会根据该标志选择ServeStdio而非 HTTP 监听参见 cmd/root.go 与 cmd/internal/serve/command.goenv.SQLITE_DATABASESQLite 数据库文件的路径。它会被注入预置配置中的${SQLITE_DATABASE}占位符。配置解析器 cmd/internal/config.go 支持${VAR}与${VAR:default}两种语法前者在环境变量缺失时报错后者提供默认值兜底。因此你也可以不依赖客户端 env直接在配置中写死路径或使用默认值语法。第四步配置 MCP 客户端下文按客户端逐一给出配置步骤。除 VS Code 使用servers顶层键外其余客户端统一使用mcpServers键且配置内容一致——替换./PATH/TO/toolbox为你的二进制实际路径替换./sample.db为你的数据库文件路径即可。Claude Code安装 Claude Code在项目根目录创建.mcp.json如不存在写入以下配置并保存{ mcpServers: { sqlite: { command: ./PATH/TO/toolbox, args: [--prebuilt, sqlite, --stdio], env: { SQLITE_DATABASE: ./sample.db } } } }重启 Claude Code 使配置生效。Claude Desktop打开 Claude Desktop进入Settings在Developer标签页点击Edit Config打开配置文件写入与上文相同的mcpServers配置并保存重启 Claude Desktop新建对话时输入框旁会出现锤子MCP图标其中即可看到新的 MCP 服务器。ClineVS Code 扩展在 VS Code 中打开 Cline 扩展点击MCP Servers图标点击Configure MCP Servers打开配置文件写入上述mcpServers配置并保存服务器连接成功后状态会显示为绿色 active。Cursor在项目根目录创建.cursor目录如不存在创建并打开.cursor/mcp.json写入上述mcpServers配置并保存打开 Cursor进入Settings Cursor Settings MCP连接成功后可见绿色 active 状态。Visual Studio CodeGitHub Copilot注意VS Code 的 MCP 配置文件使用顶层键servers而非mcpServers。打开 VS Code在项目根目录创建.vscode目录如不存在创建并打开.vscode/mcp.json写入以下配置并保存{ servers: { sqlite: { command: ./PATH/TO/toolbox, args: [--prebuilt,sqlite,--stdio], env: { SQLITE_DATABASE: ./sample.db } } } }Windsurf打开 Windsurf进入 Cascade 助手界面点击锤子MCP图标再点击Configure打开配置文件写入mcpServers配置并保存{ mcpServers: { sqlite: { command: ./PATH/TO/toolbox, args: [--prebuilt,sqlite,--stdio], env: { SQLITE_DATABASE: ./sample.db } } } }Gemini CLI安装 Gemini CLI在工作目录创建.gemini文件夹并在其中创建settings.json写入mcpServers配置并保存{ mcpServers: { sqlite: { command: ./PATH/TO/toolbox, args: [--prebuilt,sqlite,--stdio], env: { SQLITE_DATABASE: ./sample.db } } } }Gemini Code Assist在 VS Code 中安装 Gemini Code Assist 扩展在 Gemini Code Assist 聊天中启用Agent Mode在工作目录创建.gemini文件夹并创建settings.json写入mcpServers配置并保存{ mcpServers: { sqlite: { command: ./PATH/TO/toolbox, args: [--prebuilt,sqlite,--stdio], env: { SQLITE_DATABASE: ./sample.db } } } }第五步LLM 可用的工具集连接成功后AI 助手即可调用以下两个 SQLite 工具定义见 internal/prebuiltconfigs/tools/sqlite.yamllist_tables列出数据库中的表及其描述信息execute_sql执行任意 SQL 语句。list_tables模板化信息查询list_tables由type: sqlite-sql工具实现源码见 internal/tools/sqlite/sqlitesql/sqlitesql.go其特点是预置 SQL 语句 模板参数。该工具在预置配置中声明了两个templateParameters参数类型默认值说明output_formatstringdetailedsimple仅返回表名detailed返回完整的信息模式列、约束、索引、触发器table_namesstring空逗号分隔的表名列表为空时列出所有用户可访问的表其底层 SQL 通过{{.output_format}}、{{.table_names}}两个 Go 模板占位符拼接动态构造查询simple模式只输出{name: 表名}detailed模式则从sqlite_master与pragma_table_info、pragma_foreign_key_list、pragma_index_list等 PRAGMA 视图中聚合出每张表的列定义、主键/外键/唯一约束、索引和触发器再以 JSON 对象返回。execute_sql任意 SQL 执行execute_sql由type: sqlite-execute-sql工具实现源码见 internal/tools/sqlite/sqliteexecutesql/sqliteexecutesql.go只接收一个必填参数参数类型说明sqlstring要执行的 SQL 语句不能为空调用时工具会校验sql参数非空将语句交给数据源的RunSQL执行结果按行以有序 map 返回并将 JSON 类型的列自动反序列化参见 internal/sources/sqlite/sqlite.go。工具集toolset预置配置末尾将上述两个工具聚合为sqlite_database_tools工具集toolsetkind: toolset name: sqlite_database_tools tools: - execute_sql - list_tables这使客户端可按集合粒度管理工具若想只暴露其中某个工具也可以使用--prebuilt sqlite/toolset名形式按工具集过滤加载逻辑见 cmd/internal/options.go。底层原理SQLite Source 的连接与执行链当你运行toolbox --prebuilt sqlite --stdio时背后发生的事可以概括为三条链路1. 配置解析预置 YAML 被读取、经环境变量替换${SQLITE_DATABASE}→ 实际路径后分别注册一个名为sqlite-source的 source 与两个 tool参见 cmd/internal/config.go。2. 数据源初始化source 类型sqlite在 internal/sources/sqlite/sqlite.go 中通过init()注册。初始化时使用纯 Go 实现的modernc.org/sqlite驱动无需 CGO跨平台友好打开数据库文件并做了两个关键设置sqlite.goSetMaxOpenConns(1)SQLite 同一时刻只允许一个写者串行化连接以避免锁竞争SetMaxIdleConns(1)保持单个空闲连接。3. 工具调用execute_sql通过Invoke拿到sql参数后调用source.RunSQLlist_tables则先用ResolveTemplateParams把output_format、table_names渲染进预置 SQL再走同一执行路径。若某个 source 与工具类型不兼容例如把 SQLite 工具指向 PostgreSQL sourceValidateSource会直接报错见 sqlitesql.go。单元测试 internal/tools/sqlite/sqlitesql/sqlitesql_test.go 与 internal/tools/sqlite/sqliteexecutesql/sqliteexecutesql_test.go 覆盖了配置解析与参数绑定路径。第六步验证与使用在任意已配置的客户端中尝试向 AI 助手发出如下指令列出当前数据库中的所有表触发list_tables创建一个名为 products 的表包含 id、name、price 三列触发execute_sql执行 DDL往 products 插入几条示例数据并查询触发execute_sql执行 DML/查询。所有语句都会经由 MCP 服务器安全地转发到SQLITE_DATABASE指向的数据库文件执行结果以结构化数据返回给 LLM。注意事项工具集版本稳定性预置工具仍处于 pre-1.0 阶段不同版本之间工具定义可能有变动。由于 LLM 会根据实际暴露的工具清单自适应调用通常不影响大多数用户的使用使用场景边界预置配置面向构建期场景Agent 协助可信开发者编写代码官方在加载预置配置时会输出警告它们对运行期场景Agent 与潜在不可信用户交互而言不够安全见 cmd/internal/options.go。若需对外提供服务建议基于自定义kind: sourcekind: tool配置并自行控制暴露面路径与权限command中的二进制路径必须是绝对路径或以./开头的相对路径并确保已执行chmod xSQLITE_DATABASE指向的文件必须对 Toolbox 进程可读写execute_sql支持写入操作版本要求务必使用 V0.10.0 及以上版本旧版本不包含本文所述的--prebuilt与--stdio组合能力。【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表