ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

一起来玩 mcp_server_sqlite:让 AI 帮你做增删改查,TaoToken 统一 Key 接入实战

一起来玩 mcp_server_sqlite:让 AI 帮你做增删改查,TaoToken 统一 Key 接入实战 1. 为什么我想让 AI 直接操作 SQLite先说清楚 mcp_server_sqlite 是什么。它是 Model Context Protocol 官方 servers 仓库里的一个参考实现把本地 SQLite 数据库包装成一组标准工具create_table、list_tables、describe_table、insert、query、update、delete 等任何支持 MCP 的客户端Cline、Claude Code、Cursor、自研控制台程序都能通过自然语言调用这些工具让模型自己生成 SQL 并执行。适合谁适合想快速验证「AI 帮我做增删改查」这件事的开发者、想给内部小工具加个自然语言查询入口的人以及正在学 MCP 协议、想找个最小可跑案例的人。我自己的痛点很具体平时做小工具、写脚本经常要临时建一张表、塞几条测试数据、查一下字段结构。每次都要么开 DB Browser要么手敲 sqlite3 命令行切来切去很烦。更麻烦的是当我想让模型帮我写一段查询逻辑时它只能「猜」表结构猜错了还得我贴 schema 回去。mcp_server_sqlite 解决的正是这个断层——模型不再靠猜而是真的能 list_tables、describe_table再基于真实结构生成 SQL。但这里有个绕不开的前置问题MCP 客户端要调用模型就得配模型通道。如果你同时用 Cline、Claude Code、自研脚本每个工具都要单独填一遍 Base URL 和 Key换模型时还得逐个改。我试过把同一套配置复制到三个地方改一次漏一处排查半天。所以这篇的路线是用 TaoToken 统一 Key/API 通道给这些 AI 工具提供模型调用能力再让它们去驱动 mcp_server_sqlite 操作本地 SQLite。这样模型通道只维护一份MCP 服务只维护一份两边解耦。下面我会按「先跑通 MCP 服务 → 配好 TaoToken 通道 → 写可复制配置 → 跑一条从建表到查询的完整验证 → 排错」的顺序走。全程本地、可跟做不涉及任何生产库。需要提醒的是这套东西先拿来玩、拿来验证思路真上生产一定要做权限控制别让模型拿着写权限乱跑。2. 前置准备TaoToken 统一 Key 与 mcp_server_sqlite 环境这一节把两件事准备好模型通道TaoToken和 MCP 服务本体mcp_server_sqlite。两者互不依赖可以并行做。先说 TaoToken 这边。它的作用是给你一个统一的 API 入口兼容主流模型调用格式你只需要一个 Key、一个 Base URL就能在 Cline、Claude Code、自研脚本里复用同一套通道。官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 注意 API 地址不带 UTM 参数配置里就填这个。你需要去控制台创建一个 API Key路径在 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content Key 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。拿到形如sk-xxxx的 Key 后先放一边后面配置要用。想先确认通道通不通可以去模型对话页 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 发一句话试试。再说 mcp_server_sqlite。官方仓库在 modelcontextprotocol/servers 下的 src/sqlite 目录。它用 Python 写推荐用 uv 来跑省得自己折腾虚拟环境。先把仓库拉下来git clone https://github.com/modelcontextprotocol/servers.git cd servers/src/sqlite确认 uv 可用uv --version如果没有 uv按官方文档装一下即可。接着准备一个测试数据库文件比如放在用户目录下touch ~/test.db这个~/test.db就是后面所有增删改查的落点空文件也行SQLite 会在第一次写入时初始化。你可以先用 sqlite3 命令行确认它能打开sqlite3 ~/test.db .tables没有任何输出是正常的说明库是空的、连接没问题。到这里模型通道TaoToken Key Base URL和 MCP 服务仓库 uv 空库都齐了。下一节把它们接起来。3. 可复制配置把 TaoToken 和 mcp_server_sqlite 接起来这一节是全文最需要照抄的部分。我按客户端分三块给配置Cline 的 MCP 配置、Claude Code 的接入、以及自研脚本用的 settings 片段。核心原则只有一条MCP 服务配置里写 sqlite 的启动命令模型通道配置里写 TaoToken 的 Base URL Key Model ID两者不要混在一个文件里。先看 Cline或任何用mcpServers结构的客户端。MCP 服务配置长这样注意--directory后面写你 clone 下来的 sqlite 目录绝对路径--db-path写你的库路径{ mcpServers: { sqlite: { command: uv, args: [ --directory, /Users/yourname/servers/src/sqlite, run, mcp-server-sqlite, --db-path, /Users/yourname/test.db ] } } }这段只负责把 sqlite 工具暴露给客户端跟模型无关。模型通道在 Cline 的 API 配置里单独填Provider 选 OpenAI CompatibleBase URL 填https://taotoken.net/apiAPI Key 填你在控制台创建的sk-xxxxModel ID 填你要用的模型名比如claude-sonnet-4-5或gpt-4o之类以你账号可用为准。三件套齐了Base URL Key Model ID。再看 Claude Code。它读的是 settings 文件模型通道通过环境变量注入。在~/.claude/settings.json里加{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的Key, ANTHROPIC_MODEL: claude-sonnet-4-5 } }MCP 服务则在 Claude Code 的 MCP 配置里注册结构跟上面 Cline 的mcpServers一致把同一段 sqlite 配置放进去即可。这样 Claude Code 既能用 TaoToken 的通道调模型又能通过 MCP 调 sqlite 工具。如果你用 Codex 系工具它读~/.codex/auth.json把通道信息写进去{ OPENAI_BASE_URL: https://taotoken.net/api, OPENAI_API_KEY: sk-你的Key }Model ID 在调用时通过参数或配置指定。同样MCP 的 sqlite 注册单独放别塞进 auth.json。最后是自研脚本用的 settings 片段TOML 形式很多 Python 项目用[llm] base_url https://taotoken.net/api api_key sk-你的Key model claude-sonnet-4-5 [mcp.sqlite] command uv args [--directory, /Users/yourname/servers/src/sqlite, run, mcp-server-sqlite, --db-path, /Users/yourname/test.db]三件套在这里同样清晰Base URL、Key、Model ID 在[llm]MCP 启动命令在[mcp.sqlite]。路径一定要换成你自己的绝对路径相对路径在不同客户端的工作目录下会翻车这是我踩过的坑。4. 验证请求从建表到查询跑一条完整链路配置写完别急着上复杂操作先用一条最小链路验证「模型 → TaoToken 通道 → MCP 工具 → SQLite」整条路是通的。我建议按建表、列表、描述、插入、查询、更新、删除的顺序走一遍每一步都能看到明确结果。第一步建表。在客户端对话框里输入自然语言在数据库里创建一张 users 表字段有 id 自增主键、name 文本、email 文本、created_at 文本。模型会调用create_table工具生成类似CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT, created_at TEXT)的 SQL 并执行。执行完你可以让它确认列出数据库里所有的表。这一步走的是list_tables返回里应该出现users。如果没出现说明建表没落库先查 MCP 服务日志。第二步描述结构。输入描述一下 users 表的结构。模型调describe_table返回字段名、类型、是否主键。这一步很关键它证明模型拿到的是真实 schema而不是猜的。后面生成查询时它就有依据了。第三步插入数据往 users 表插入三条数据张三/zhangsanexample.com、李四/lisiexample.com、王五/wangwuexample.comcreated_at 用当前时间。模型调insert生成 INSERT 语句。执行后让它查一下确认查询 users 表所有数据。query工具返回三行。到这里增和查都验证了。第四步更新把 users 表里 name 为李四的那条记录email 改成 lisi_newexample.com。模型调update生成带 WHERE 的 UPDATE。再查一次确认 email 变了。第五步删除删除 users 表里 name 为王五的记录。模型调delete。再查一次应该只剩两行。整条链路跑通后你会看到一个很直观的现象模型不再需要你贴 schema它自己 list、describe然后基于真实结构生成 SQL。实测下来简单操作一次就过复杂一点的比如带 JOIN 或多条件更新可能要来回沟通两三次这跟模型智能程度有关属于正常现象。想换模型对比效果直接在 TaoToken 通道里改 Model ID 就行MCP 侧不用动。如果你更想用命令行验证也可以直接调 TaoToken 的 API 发一条请求确认通道本身是通的curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的Key \ -H Content-Type: application/json \ -d { model: claude-sonnet-4-5, messages: [{role: user, content: 回复 ok}] }返回里有choices字段就说明通道没问题。这一步和 MCP 无关纯粹验证 Key 和 Base URL 填对了。5. 常见报错排查401、local proxy failed、reading choices这一节按真实会撞到的报错来。我把踩过的几个整理成对照你遇到时直接对号。401 Unauthorized。最常见。原因通常是 Key 填错、Key 前后有空格、或者把 Base URL 写成了带路径的形式。检查三点Key 是不是从 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 复制的最新值Base URL 是不是干净的https://taotoken.net/api不要多加/v1或结尾斜杠具体以文档为准接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content Header 里是不是Authorization: Bearer sk-xxx格式。三件套里 Key 错是最多的。local proxy failed / connection refused。这个报错一般跟模型通道无关是 MCP 服务没起来。检查uv --directory后面的路径是不是真实存在、mcp-server-sqlite能不能单独跑起来。可以手动执行一次uv --directory /Users/yourname/servers/src/sqlite run mcp-server-sqlite --db-path /Users/yourname/test.db如果这行报错客户端里必然也起不来。常见原因是路径写成了相对路径或者 uv 没装、Python 版本不满足。reading choices / undefined is not an object。这个报错说明客户端拿到了响应但结构里没有choices字段。多半是 Base URL 或 Model ID 不对请求打到了错误的端点或者模型名在你账号下不可用。先确认 Base URL 是https://taotoken.net/api再确认 Model ID 拼写正确。可以先用上一节的 curl 单独验证通道通道通了再回客户端排查。OAuth / authentication failed。Claude Code 系工具如果同时配了官方登录和自定义 Base URL可能冲突。检查~/.claude/settings.json里ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN是否都指向 TaoToken别一半官方一半自定义。Codex 的auth.json同理OPENAI_BASE_URL和OPENAI_API_KEY要成对。工具调用没反应 / 模型说它没有 sqlite 工具。这是 MCP 注册没生效。确认mcpServers配置在客户端正确的位置重启客户端看 MCP 面板里 sqlite 是不是绿色/已连接。如果显示未连接回到local proxy failed那条排查服务本身。排错顺序建议固定先 curl 验通道 → 再手动跑 MCP 服务 → 最后看客户端配置。这样能把「模型通道问题」和「MCP 服务问题」分开不至于两头瞎猜。6. 继续玩下去把通道和工具解耦跑通之后你会发现一个很舒服的结构TaoToken 管模型通道mcp_server_sqlite 管数据库工具两边通过客户端解耦。换模型只改 Model ID换数据库只改--db-path互不影响。想长期拿它做编码或 Agent 类任务可以去看看 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 通道和额度会更适合持续调用。Claude Code 相关的接入细节在 https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。最后再强调一次开头那句这套东西先拿来玩、拿来验证别直接怼生产库。真要用在正式环境务必给数据库账号做最小权限控制把写操作和删操作限制在测试库或专用 schema 里。模型再聪明也不该拿着无限制的写权限乱跑。
返回列表