二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • Nexus系列文章

  • Jenkins系列文章

  • ELK笔记

  • Kubernetes笔记

  • LLM专题

    • 求索折腾

    • MCP

      • 认识神级MCP工具系列--用anyquery和数据库交互
        • 附言前置
        • 前言
        • 介绍
        • 安装
          • Mac
          • APT
          • YUM/DNF
        • 使用
          • 作为一个查询工具
          • 作为一个 MCP 工具
        • 最后
  • 系列专题
  • LLM专题
  • MCP
二丫讲梵
2025-08-24
目录

认识神级MCP工具系列--用anyquery和数据库交互

文章发布较早,内容可能过时,阅读注意甄别。

# 附言前置

写完如下内容之后,我心里盘算着测试一下 MySQL 的交互能力,结果发现这个工具和 MySQL 的交互并不是很理想,至少我个人测试一个简单的查询都要花将近两分钟的时间(详见 60 (opens new window)),因此这并不是一个很适合全场景的数据库交互 mcp 工具(虽然 sqlite 交互上没有问题),请读者注意。

后续我还会探索其他更为合适数据库交互场景的 mcp 工具。文章已经写了,并且花费了我不少时间,虽然工具不算特别完美,但实践过程和思路,也还算有一些了解和学习的价值。

# 前言

我对 MCP 的了解很浅,这个系列也只是个人基于日常一些开发场景中的探索,如有错漏,还望见谅。

MCP 的概念我就不在过多赘述,相信点进此文的你,应该早已有所耳闻,其中概念虽算不上复杂,但是单独看一些架构图或者概念,也并不容易理解它存在的意义是什么,莫不如直接基于场景,利用工具,来了解 MCP 的概念。

# 介绍

背景:我们在与大模型对话或者通过 Claude Code 编程的时候,有一个特别明显的感受是,直接把数据给到模型,和让模型依靠经验猜数据而进行的编码,两者差异巨大,模型拿到的数据越具体,进行的编码就越准确。于是,如何解决让模型方便地拿到数据就成了开发过程中重要的一个环节。

今天要介绍的工具,就是为了解决这个场景应运而生的,官网的介绍,号称可以通过 SQL 的语法查询一切,除了支持 MySQL,Sqlite,PG,ClickHouse 等数据库之外,还支持 GitHub,Notion 等各种三方数据,同时还支持基于插件扩展的任何三方数据源。

一些信息:

  • 项目官网: https://anyquery.dev (opens new window)
  • 项目地址: https://github.com/julien040/anyquery (opens new window)

单听介绍,不可谓不强大,但是官方文档写的比较难读,今天我来通过一些实际例子来带你感受一下这个工具的魅力。

# 安装

anyquery 基于 go 语言编写,因此安装从来不会是困难的事情,并且官方提供了各个平台轻松安装的方案,实在不想用,也可以在 release (opens new window) 页面下载二进制运行。

这里简单介绍几种常见的安装场景。

# Mac

brew install anyquery
1

# APT

echo "deb [trusted=yes] https://apt.julienc.me/ /" | sudo tee /etc/apt/sources.list.d/anyquery.list
sudo apt update
sudo apt install anyquery
1
2
3

# YUM/DNF

echo "[anyquery]
name=Anyquery
baseurl=https://yum.julienc.me/
enabled=1
gpgcheck=0" | sudo tee /etc/yum.repos.d/anyquery.repo
sudo dnf install anyquery
1
2
3
4
5
6

# 使用

# 作为一个查询工具

首先,你可以把 anyquery 理解成一个全能的数据库查询客户端。

接下来仅针对 sqlite 做一下演示,它的功能强项不在这里,因此仅作为一个简单介绍。

比如我有项目基于 sqlite 做存储,文件地址是:/Users/eryajf/code/cnb/xirang/data/xirang.db

# 作为一个 MCP 工具

这里才是这个工具的重头戏,可以作为 MCP 工具,让你在与大模型交互的时候,轻松操作你的数据。

如果要交互的数据库是 sqlite,则可通过如下命令启动 mcp server:

anyquery mcp --database /Users/eryajf/code/cnb/xirang/data/xirang.db --stdio
1

通过如下配置,可以将如上数据库启动为 mcp server 监听:

我这里用 Cherry Studio 来举例,打开 MCP,选择添加服务,上图重要的几个配置项均已标号,其中 3 号和 4 号的配置内容,则是 anyquery 提供的 mcp 能力。

我这里用 gemini 来进行对话演示。

比如可以问有哪些表,模型回答如下:

需要注意:在对话之前,需要在底下工具栏中 MCP 处选上刚刚添加的 mcp 服务。然后直接对话,这个时候模型会自动通过调用 mcp 工具,来查询数据。

接下来再看一个查询具体数据的例子,也是可以直接查询出对应数据的。

我们看到上图中,赵六的邮箱是 zhaoliu@eryajf.net,接下来让模型改一下这条数据试试:

改完之后,我们还是通过模型对话来查一下这条数据:

可以看到,赵六的邮箱已经更改成功了,可见,借助 anyquery 这个工具,我们就可以通过自然语言来对数据库进行增删改查,这个时候你可能会问权限怎么控制,这的确是个好问题,但不在此文讨论范围。

上边是基于 Cherry Studio 做的测试,接下来再来通过 Claude Code 做一下测试,同时也是一个实践,你可以把这个经验,集成到你的项目开发当中。

cc 支持通过命令来配置 mcp,可通过如下命令添加:

claude mcp add xirang-db anyquery --  mcp --database /Users/eryajf/code/cnb/xirang/data/xirang.db --stdio
1

具体详细文档,可见 cc 的官方文档:通过 MCP 将 Claude Code 连接到工具 (opens new window)

有的人可能习惯通过配置文件来管理 cc 的 mcp 配置,你也可以把如下配置添加上去:

"mcpServers": {
	"xirang-db": {
	  "type": "stdio",
	  "command": "anyquery",
	  "args": [
		"mcp",
		"--database",
		"/Users/eryajf/code/cnb/xirang/data/xirang.db",
		"--stdio"
	  ],
	  "env": {}
	}
  }
1
2
3
4
5
6
7
8
9
10
11
12
13

然后启动 claude code cli,启动后键入 /mcp 可以查看到刚刚添加的 mcp:

然后来做一些交互看看:

照例,再来测一下修改数据的场景:

最后,我通过工具查看一下赵六这条数据,可以看到已经被成功修改了:

# 最后

今天,通过两个实际应用案例,真切感受并体会了拥有 MCP 之后的大模型就是插上翅膀的猛虎这句话,包括之前只听到说一句话就让手机点了咖啡这个事儿,但真正背后如何实现的,并不太了解。

但通过这个例子,我感受到了 MCP 的魅力,同时也感受到,AI 编码借助于 MCP,一定会更加高效,并且精准。

微信 支付宝
上次更新: 2025/08/24, 20:58:14
(gaccode)国内通过镜像安装Claude Code以及使用gaccode稳定服务

← (gaccode)国内通过镜像安装Claude Code以及使用gaccode稳定服务

最近更新
01
带你认识我之看看我的高中同学录(其一)
08-24
02
学习周刊-总第225期-2025年第34周
08-21
03
(gaccode)国内通过镜像安装Claude Code以及使用gaccode稳定服务
08-17
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式