02Bread MCP · 第 6 章
总进度 15 / 33SQLite MCP server(终章实战)
不用 AI 你得: 1. 打开数据库管理工具 2. 写 SQL SELECT FROM employees WHERE department='工程部' ORDER BY salary DESC LIMIT 1; 3. 拿到他的 ……
2026-09-28约 60 分钟350 行代码难度 ★★★★
如果想获取全套课程资料,请关注微信公众号 「AI面包君」,回复 「课程资料」 即可领取。
1. 从一句问题查到数据库记录
假设要查询示例数据:“工程部工资最高的人是谁,他在做什么项目?”
不用 AI 你得:
- 打开数据库管理工具
- 写 SQL
SELECT * FROM employees WHERE department='工程部' ORDER BY salary DESC LIMIT 1; - 拿到他的 id
- 再写 SQL
SELECT * FROM projects WHERE owner_id=...; - 整理成中文回答
如果有个 agent + SQLite MCP server,你只用问:
"工程部工资最高的是谁,他在做什么项目?"
agent 自己会:
- 调
db_list_tables看有什么表 - 调
db_describe_table看 employees / projects 结构 - 写 SQL 调
db_query - 用中文给你答案
这里把查看表、读取结构和执行查询包装成工具。Agent 可以先了解数据结构,再发出查询,最后把结果整理成回答。整个练习使用课程示例库。
本章我们提供 4 个数据库工具:
| 工具 | 用途 |
|---|---|
db_list_tables | 列出所有表名 |
db_describe_table(table) | 看表结构 |
db_query(sql) | SELECT 查询 |
db_execute(sql) | INSERT/UPDATE/DELETE/CREATE |
并预置一个示例数据库 demo.db(员工 + 项目两张表)。

<!-- bread-visual:end -->图解: 例子:工程部工资最高的人,正在做什么项目? db_execute 是另一条写入路径;这张图聚焦正文里的只读查询案例。
2. 跑起来
cd ch05_sqlite_server
python main.py
第一次启动时 server 会自动建 demo.db 并塞 5 个员工 + 3 个项目作为示例数据。
试这一组对话:
你 > 数据库里有哪些表?
[step 0] db_list_tables({})
[step 0] -> employees\nprojects
AI > 数据库里有 2 张表:employees(员工表)和 projects(项目表)。
你 > 工程部工资最高的是谁?
[step 0] db_describe_table(employees)
[step 0] -> 列名 类型 非空 默认值 主键 ...
[step 1] db_query(SELECT name, salary FROM employees WHERE department='工程部' ORDER BY salary DESC LIMIT 1)
[step 1] -> name salary\n王五 32000.0
AI > 工程部工资最高的是 王五,月薪 32000。
你 > 他在做什么项目?
[step 0] db_query(SELECT p.* FROM projects p JOIN employees e ON p.owner_id=e.id WHERE e.name='王五')
[step 0] -> id name owner_id status\n3 数据中台 3 in_progress
AI > 王五负责"数据中台"项目,当前状态是进行中(in_progress)。
关键观察:
- 第二轮 agent 先看表结构再写 SQL——这是 SYSTEM_PROMPT 引导的好习惯
- 第三轮 agent 自己写了 JOIN——它从历史对话知道"他"指王五
试读到这里 · 后续内容已封存
关注公众号,继续把这章学完
在「AI面包君」发送关键词「学习AI」拿到口令。验证一次,这个浏览器就能继续阅读全部课程。