掘金 人工智能 07月10日 10:13
使用MCP Toolbox for Databases访问数据库
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了如何使用开源的 MCP Toolbox for Databases,将其集成到 VSCode Copilot 中,从而实现用自然语言查询数据库。通过 YAML 配置文件,用户可以轻松连接数据库,并使用自然语言或自定义工具执行 SQL 语句。文章详细阐述了配置过程,包括安装 Toolbox、创建配置文件以及在 Copilot 中启用 MCP Server。最后,通过实际案例展示了如何用自然语言提问,并获得 Copilot 提供的 SQL 查询结果,以及如何自定义工具以实现更精确的数据库操作。

⚙️ **MCP Toolbox 简介:** MCP Toolbox for Databases 是一个开源工具,简化了数据库访问流程,处理连接池和身份验证等复杂问题,使开发者能够更轻松、快速、安全地开发数据库工具。

💻 **配置与集成:** 通过下载 Toolbox 二进制包并配置环境变量,然后在项目根目录下创建 YAML 配置文件,定义数据库连接信息和自定义工具。接着,在 VSCode 中配置 Copilot 的 MCP Server,指向 Toolbox 和配置文件。

💬 **自然语言查询:** 在 Copilot 的 Agent 模式下,用户可以使用自然语言提问,Copilot 会自动生成 SQL 查询语句,并执行查询,返回结果。例如,用户可以询问“我的数据库实例中哪个数据库的表最少?”,Copilot 会给出相应的 SQL 查询结果。

🛠️ **自定义工具:** 通过 YAML 配置文件,用户可以自定义 SQL 工具,实现更精确的数据库操作。例如,可以创建一个工具来根据酒店名称搜索酒店信息,从而更灵活地控制查询行为。

本文介绍如何使用开源的 MCP Toolbox for Databases,通过 YAML 配置将其集成到 VSCode Copilot。这使得用户能用自然语言查询数据库,或自定义工具执行精确 SQL,从而简化数据库访问。

使用自然语言访问数据库已经有了许多成功的案例,AI很擅长完成这种自然语言与机器语言的转换工作。随着 MCP 的发展,肯定有不少这样的数据库 MCP Server。

MCP Toolbox for Databases 是一个用于数据库的开源 MCP 服务器。它通过处理连接池、身份验证等复杂性,使您能够更轻松、更快速、更安全地开发工具。

下面是一个简单的试用。

下载页面直接下载 Toolbox 的二进制包,然后将其路径添加到系统 PATH 环境变量中。

然后,在你的项目根目录下新建一个 mysql.yaml 文件,内容为:

sources:  my-mysql-source:    kind: mysql    host: your-mysql-host    port: 3306    database: mysql    user: root    password: your-mysql-passwordtools:  execute_sql_tool:    kind: mysql-execute-sql    source: my-mysql-source    description: Use this tool to execute sql statement.

下面我会为我的 VSCode Copilot 中添加一个 MCP Server,即在项目的目录中保存 .vscode/mcp.json 为:

{    "servers": {    "mysql-mcp-server": {      "type": "stdio",      "command": "toolbox",      "args": [              "--tools-file",              "D:\\learns\\ai\\toolbox-mcp\\mysql.yaml",              "--stdio"          ]    }   }}

然后在 Copilot 的 Chat 界面,选择 Agent 模式,看看有没有加载 mysql-mcp-server,如果没有,可以点击重启,应该可以看到增加了这个 MCP Server。

在 Agent 模式下,我提问:

我的数据库实例中哪个数据库的表最少?

Copilot 问我是否执行 execute_sql_tool,输入为:

{  "sql": "SELECT table_schema, COUNT(*) AS table_count FROM information_schema.tables WHERE table_type = 'BASE TABLE' GROUP BY table_schema ORDER BY table_count ASC LIMIT 1;"}

我确认执行后结果为:

{"TABLE_SCHEMA":"sys","table_count":1}

Copilot 告诉我:

你的数据库实例中,表最少的数据库是 sys,只有 1 个表。

通过 Toolbox 还可以自定义 Tool, 下面就是官方的一个例子:

sources:  my-pg-source:    kind: postgres    host: 127.0.0.1    port: 5432    database: toolbox_db    user: ${USER_NAME}    password: ${PASSWORD}tools:  search-hotels-by-name:    kind: 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 || '%';

这样可以精确控制一些查询。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

MCP Toolbox VSCode Copilot 数据库 自然语言查询
相关文章