使用MCP实现自然语言数据库查询:将SQL转化为对话

本文详细介绍了如何通过Model Context Protocol(MCP)服务器实现自然语言数据库查询,使用Claude Desktop和PostgreSQL MCP Server进行交互,无需编写SQL即可获取数据库结构、数据内容和业务洞察。

自然语言数据库查询与MCP

生成式AI已经改变了几乎所有行业。本文通过一个具体用例,展示了专用的MCP服务器如何使LLM能够检查数据库,并为用户提供有用的信息。用户现在只需使用自然语言,就能自动从现有数据中直接推断出实际的业务洞察。

MCP服务器设置

MCP服务器通常暴露三个原语:工具、资源和提示模板。本实验使用了第一个原语。

涉及的"参与者"包括:

  • Claude Desktop作为AI助手
  • Claude Sonnet 4.0作为大型语言模型
  • 用户作为希望与数据库"对话"的人
  • PostgreSQL Server作为保存业务数据的数据库服务器
  • PostgreSQL MCP Server作为暴露MCP工具的主要参与者

数据库设置

实验使用了一个简单的模式mcpdata,包含以下实体:

  • Vendor - 服务提供商(如Vodafone)
  • Service - 电信服务类型(如VOIP)
  • Status - 发票可能处于的状态(审核中、已批准或已支付)
  • Invoice - 针对特定日期、特定供应商服务的发票,包含编号和应付金额

AI主机和MCP服务器设置

在Claude Desktop中,通过编辑配置文件添加PostgreSQL MCP服务器连接:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://postgres:a@localhost:5432/postgres?currentSchema=mcpdata"
      ]
    }
  }
}

与数据库"对话"

通过自然语言查询,用户可以:

  1. 获取数据库结构信息(如生成实体关系图)
  2. 查询模式中的表及其记录数量
  3. 获取业务洞察(如6月份已支付发票数量)
  4. 请求数据可视化表示

AI助手通过MCP服务器执行多个SQL查询来收集所需信息,然后以自然语言和可视化形式呈现结果。

结论

本文展示了一个直接但富有洞察力的用例,其中专用的PostgreSQL MCP服务器帮助丰富了AI应用程序的上下文,允许用户以自然语言对话方式快速发现从数据库直接推断出的信息。

SQLite MCP服务器是另一个可以用于完成类似任务的解决方案。除了只读工具外,它还允许创建/修改数据库表和写入数据,因此交互可能更加丰富。

总之,通过使用AI助手(Claude Desktop)和几个MCP服务器,许多想法只需几个"词"就能付诸实践。如果当前可用的MCP服务器不够用,还可以开发自己的全新服务器来满足需求,并将其插入助手,Voila!

资源

  • [Resource 1] – 通过MCP丰富AI实时洞察
  • [Resource 2] – PostgreSQL MCP服务器
  • [Resource 3] – Claude Desktop下载
  • [Resource 4] – SQLite MCP服务器
  • [Resource 5] – Anthropic开发者指南-MCP
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计