MCP 协议实战:用 Claude Desktop 连本地 SQLite,5 分钟搭一个能查数据的 AI 助手

发布时间:2026/7/22 17:09:23

MCP 协议实战:用 Claude Desktop 连本地 SQLite,5 分钟搭一个能查数据的 AI 助手
MCP 协议实战用 Claude Desktop 连本地 SQLite5 分钟搭一个能查数据的 AI 助手本文参与 CSDN「MCP 协议开发实战」征文活动标签#MCP #Model Context Protocol #Claude Desktop #AI Agent前言为什么你该现在学 MCP如果你用过 Claude Desktop、Cursor、或者 Cline大概率遇到过这个场景AI 说我无法访问你的数据库/文件/API请把内容贴给我。MCPModel Context Protocol就是解决这个问题的。它让 AI 能直接调用你本地的工具——查数据库、读文件、调 API——不用你手动复制粘贴。Anthropic 2024 年底开源了这套协议到 2026 年中Cursor、Cline、Claude Desktop、Windsurf 都已经原生支持。学会写一个 MCP Server等于给你的 AI 装上了手。这篇我带你从 0 搭一个能查 SQLite 数据库的 MCP Server接进 Claude Desktop全程不超过 5 分钟。代码可以直接复用到你自己的项目里。一、环境准备1 分钟你需要装好这三样工具版本要求安装命令Python3.10官网下载或pyenv install 3.11uv最新版pip install uvClaude Desktop任意版本官网下载为什么用uv而不是pipMCP 官方 SDK 用uv管理依赖更快且uv run能自动创建虚拟环境省去手动venv的步骤。检查环境python--version# 应该 3.10uv--version# 应该有输出二、5 分钟搭一个能查 SQLite 的 MCP Server第 1 步初始化项目mkdirmcp-sqlite-democdmcp-sqlite-demo uv init uvaddmcp[cli]sqlite3mcp[cli]是官方 Python SDKsqlite3是 Python 内置库实际上不用单独装这里写上是为了 uv 识别。第 2 步准备一个测试数据库先建一个简单的 SQLite 库放点测试数据# init_db.pyimportsqlite3 connsqlite3.connect(demo.db)cconn.cursor()c.execute( CREATE TABLE IF NOT EXISTS orders ( id INTEGER PRIMARY KEY, customer TEXT, amount REAL, status TEXT, created_at TEXT ) )c.executemany(INSERT INTO orders VALUES (?, ?, ?, ?, ?),[(1,张三,299.0,已支付,2026-07-01),(2,李四,1580.0,已发货,2026-07-05),(3,王五,89.0,退款中,2026-07-10),(4,赵六,2300.0,已支付,2026-07-12),(5,张三,599.0,待发货,2026-07-15),])conn.commit()conn.close()print(数据库初始化完成)跑一下uv run python init_db.py第 3 步写 MCP Server核心代码这是全文最关键的一段完整贴出来# server.pyfrommcp.server.fastmcpimportFastMCPimportsqlite3 mcpFastMCP(sqlite-demo)DB_PATHdemo.dbmcp.tool()defquery_orders(customer:str,status:str)-str:查询订单列表。 Args: customer: 客户姓名留空查全部 status: 订单状态已支付/已发货/退款中/待发货留空查全部 Returns: JSON 格式的订单列表字符串 connsqlite3.connect(DB_PATH)cconn.cursor()sqlSELECT id, customer, amount, status, created_at FROM orders WHERE 11params[]ifcustomer:sql AND customer ?params.append(customer)ifstatus:sql AND status ?params.append(status)rowsc.execute(sql,params).fetchall()conn.close()result[{id:r[0],customer:r[1],amount:r[2],status:r[3],date:r[4]}forrinrows]returnstr(result)mcp.tool()defget_order_stats()-str:统计订单总金额、各状态数量。 Returns: 统计摘要字符串 connsqlite3.connect(DB_PATH)cconn.cursor()totalc.execute(SELECT COUNT(*), SUM(amount) FROM orders).fetchone()by_statusc.execute(SELECT status, COUNT(*) FROM orders GROUP BY status).fetchall()conn.close()summaryf总订单数{total[0]}总金额¥{total[1]:.2f}\nsummary状态分布\nfors,ninby_status:summaryf -{s}{n}单\nreturnsummaryif__name____main__:mcp.run()代码解读3 个关键点FastMCP(sqlite-demo)— 创建一个 MCP Server名字随便取mcp.tool()装饰器 — 把普通 Python 函数变成 AI 可调用的工具函数的 docstring 会变成 AI 看到的工具说明所以 docstring 一定要写清楚参数含义mcp.run()— 启动服务默认走 stdio 协议Claude Desktop 用的就是 stdio踩坑提醒docstring 里一定要写清楚每个参数是什么、留空代表什么。AI 是根据 docstring 决定怎么调用的写不清楚 AI 会乱传参。第 4 步测试 Server 能不能跑uv run python server.py如果没报错说明启动成功。它会停在那里等输入——这是正常的因为 MCP Server 是常驻服务。三、接入 Claude Desktop1 分钟Claude Desktop 的配置文件在这两个位置之一系统路径macOS~/Library/Application Support/Claude/claude_desktop_config.jsonWindows%APPDATA%\Claude\claude_desktop_config.json打开没有就新建加入你的 MCP Server{mcpServers:{sqlite-demo:{command:uv,args:[run,--directory,/绝对路径/mcp-sqlite-demo,python,server.py]}}}踩坑提醒--directory后面必须是绝对路径相对路径会导致 Claude Desktop 找不到项目。Windows 路径用双反斜杠\\或正斜杠/。保存后完全退出 Claude Desktop 再重开不是最小化是右键退出。四、实测效果打开 Claude Desktop输入查一下张三的所有订单你会看到 Claude 自动调用了query_orders工具参数传了customer张三返回结果。再试帮我统计一下订单整体情况Claude 会调用get_order_stats直接给你汇总数据。这就是 MCP 的价值你不用写 SQL不用切窗口AI 直接查你的库。五、3 个常见踩坑坑 1Claude Desktop 里看不到工具原因配置文件 JSON 格式错了或者路径不对。排查Claude Desktop 菜单栏 → Developer → Logs看错误日志。最常见的报错是command not found或ENOENT。解决把uv换成完整路径比如C:\\Users\\你\\AppData\\Roaming\\Python\\Scripts\\uv.exe。坑 2AI 调用了工具但报错 “no such table”原因SQLite 数据库路径是相对路径Claude Desktop 的工作目录不是你的项目目录。解决DB_PATH用绝对路径或者在server.py开头加importos os.chdir(os.path.dirname(os.path.abspath(__file__)))坑 3工具能调但 AI 不主动用原因docstring 写得太简单AI 不知道什么时候该用这个工具。解决docstring 里加一句使用场景提示比如查询订单列表。当用户问查订单某客户的订单订单情况时调用此工具。六、从 Demo 到生产3 个进阶方向这个 Demo 只是入门。真实项目里你可以接 MySQL/PostgreSQL— 把sqlite3换成pymysql或psycopg工具函数逻辑不变加写操作工具— 写一个create_order工具让 AI 能帮你录数据。注意加上权限校验避免 AI 误删接 REST API— 写一个call_api工具让 AI 能查外部接口。比如接天气 API、汇率 API完整代码我放在了 [GitHub 仓库地址]包含以上 3 个进阶版本。写在最后这篇教程目标很简单让你亲手跑通一个 MCP Server真正理解 AI 是怎么连上本地数据库的。你拿到的是一份可直接复用的代码server.py是工具函数的核心写法init_db.py是测试数据生成方式claude_desktop_config.json是 MCP 客户端接入模板建议你现在就复制代码跑一遍把 SQLite 换成自己的业务库只需要改 SQL 和 DB 连接方式。如果你在跟练过程中遇到报错直接评论区贴出来我会优先回复具体报错信息。MCP 现在还在早期生态远没有 Cursor 插件那么成熟但这也意味着先学会的人能占住工具链的位置。学到这一步你已经比大多数只会用 AI 聊天的开发者更进一步。觉得有用就点个关注后面继续写我踩过坑的实战内容。本文参与 CSDN「MCP 协议开发实战」征文如果对你有帮助点个赞支持一下

相关新闻

AI视频制作效率暴涨300%?揭秘头部知识博主不愿公开的自动化剪辑链路与字幕纠错SOP

AI视频制作效率暴涨300%?揭秘头部知识博主不愿公开的自动化剪辑链路与字幕纠错SOP

2026/7/22 17:09:23

更多请点击: https://intelliparadigm.com 第一章:AI视频制作效率暴涨300%?揭秘头部知识博主不愿公开的自动化剪辑链路与字幕纠错SOP 头部知识博主正悄然淘汰手动剪辑——不是因为技术更炫,而是因一套闭环式AI工作流将单条10分钟…

重磅!PMP证书可评职称!这9个地区考生抓紧申领!

重磅!PMP证书可评职称!这9个地区考生抓紧申领!

2026/7/22 17:09:23

很多人备考PMP证书,只知道它是项目管理领域的国际黄金认证,能提升职场竞争力、助力求职跳槽,却忽略了它最核心、最实用的官方福利——可直接申报、认定专业技术职称。 在国内职场,职称直接和岗位晋升、薪资定级、人才补贴、落户购…

嵌入式开发实战:USB端点与看门狗寄存器配置避坑指南

嵌入式开发实战:USB端点与看门狗寄存器配置避坑指南

2026/7/22 16:59:23

1. 项目概述与核心价值在嵌入式系统开发里,和硬件打交道是绕不开的基本功。CPU要指挥USB收发数据,或者让看门狗定时器在关键时刻“踢”系统一脚,靠的都是直接读写那一组组看似冰冷的寄存器。很多新手觉得寄存器配置就是对着手册填地址和数值&…

机器人磁编码器充磁工艺:关键参数与核心流程解析

机器人磁编码器充磁工艺:关键参数与核心流程解析

2026/7/22 18:29:27

工业机器人的关节要做精准运动,电机转子的角度和转速必须实时掌握。承担这个任务的器件叫编码器。目前主流有两类:光电式和磁电式。磁编码器现在越来越占优势。它不怕油污、不怕振动,使用寿命长,成本也比光电编码器低。中高端机器…

第一阶段-第7天 — 复习与综合练习

第一阶段-第7天 — 复习与综合练习

2026/7/22 18:29:27

今日目标 回顾本周学到的所有概念完成一个综合小练习查漏补缺,巩固基础 本周知识回顾 核心概念清单概念一句话解释特征模型的输入数据标签模型要学习的正确答案权重w控制输入对输出的影响大小偏置b输入为0时的基础输出值预测模型根据当前参数给出的答案损失预测与真…

威海跨境电商物流哪家性价比高

威海跨境电商物流哪家性价比高

2026/7/22 18:29:27

根据您的需求,推荐威海青木国际货运代理有限公司,其在威海跨境电商物流领域具有显著性价比优势。以下从多个维度解析其服务亮点:1. 航线网络覆盖广,成本可控核心港口直达:威海、烟台、青岛、石岛等山东港口&#xff0c…

YUM包管理工具:Linux软件安装与依赖管理实战指南

YUM包管理工具:Linux软件安装与依赖管理实战指南

2026/7/22 18:29:27

1. 认识YUM:Linux世界的软件管家第一次接触Linux系统时,最让我困惑的就是软件安装方式。在Windows下我们习惯双击exe安装包,而Linux世界却有着完全不同的规则。YUM(Yellowdog Updater Modified)就是Red Hat系Linux发行…

嵌入式视频处理中VPDMA中断掩码与状态寄存器的精细化配置实战

嵌入式视频处理中VPDMA中断掩码与状态寄存器的精细化配置实战

2026/7/22 18:29:27

1. 项目概述与核心价值在嵌入式视频处理系统的开发中,尤其是面对高清乃至超高清视频流时,如何高效、稳定地搬运海量像素数据,是决定系统成败的关键。如果让CPU亲自去搬运每一帧的YUV数据,那它基本就“废”了,什么复杂的…

F5-TTS语音合成项目实战部署指南:突破性流匹配技术实现高质量语音生成

F5-TTS语音合成项目实战部署指南:突破性流匹配技术实现高质量语音生成

2026/7/22 18:19:26

F5-TTS语音合成项目实战部署指南:突破性流匹配技术实现高质量语音生成 【免费下载链接】F5-TTS Official code for "F5-TTS: A Fairytaler that Fakes Fluent and Faithful Speech with Flow Matching" 项目地址: https://gitcode.com/gh_mirrors/f5/F5…

微服务进阶:服务网格与Istio

微服务进阶:服务网格与Istio

2026/7/21 5:45:57

541|微服务进阶:服务网格与Istio 上篇文章我们聊了微服务的基本概念和拆分方法。 但微服务多了,问题也多了: 服务之间怎么通信? 怎么监控每个服务的调用链路? 熔断、限流、重试怎么做? 安全认证怎么统一? 以前这些都靠SDK库(比如Hystrix、Feign),每个服务都要集成…

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

2026/7/21 9:56:14

一、零售门店全域协同业务背景与行业痛点 1.1 门店超级终端设备矩阵(连锁便利店/商超标准配置) 自助收银Kiosk一体机:顾客结算、自助核销优惠券、商品素材预览;运营折叠平板:店长后台商品上新、图片录入、活动配置、…

噗叽短视频界面分析

噗叽短视频界面分析

2026/7/21 3:09:32

1 和小红书类似,可以采用类似判断方法------------其实他比小红书好判断,因为他没有图片,控件位置几乎是固定的,都不用判断------------2 因为他没有点赞按钮------------而且几乎所有控件位置都是完全一样的,所以我就…

设计EDA 首席专家 12 维度 JD(HR 仅高管 / HRD 使用)

设计EDA 首席专家 12 维度 JD(HR 仅高管 / HRD 使用)

2026/7/22 0:08:09

定位:公司 EDA 技术最高负责人、技术天花板、战略级专家、流片总兜底人 属于P9/Fellow/ 首席科学家级,不做日常执行,管方向、管架构、管风险、管突破。1. 对标层级内部职级:P9 / 首席专家 / Fellow 外部对标:华为 20–…

费用率无法实时监控怎么办?费用率联动预算管理怎么实现?

费用率无法实时监控怎么办?费用率联动预算管理怎么实现?

2026/7/22 0:08:09

很多企业费用管控存在严重滞后性:日常差旅、招待、营销、人力费用持续发生,但费用率只能等到月末结账、营收数据出来后才能计算核对,月度中途费用超标、营收不达标导致的费用率失衡完全无法感知。等到月末发现整体费用率远超预算目标时&#…

设计EDA 研发总监 12 维度 JD(HR 内部仅高管层使用)

设计EDA 研发总监 12 维度 JD(HR 内部仅高管层使用)

2026/7/22 0:08:09

定位:公司 EDA / 设计平台最高管理岗,技术 管理 经营三重决策,对整体流片、效率、质量、成本、团队负最终责任1. 对标层级内部职级:M3 / P8 / 总监级 外部对标:华为 20 级、互联网 M2 / 总监、头部芯片 / EDA 公司研…