简介
SQLite MCP 是 ModelContextProtocol 官方仓库维护的轻量级数据库集成服务器。与 Postgres MCP 不同,SQLite 是文件型数据库——无需启动数据库服务、无需网络配置,一个 .db 文件就能让 LLM 查询与分析。
对开发者和数据分析师而言,这意味着:把日志、配置、测试数据存成 .db 文件,让 AI 助理直接帮你"查一下今天的错误日志"、"统计测试覆盖率"、"分析这张表的数据分布"。
核心能力
| 工具名 | 用途 | 关键参数 |
|---|---|---|
read_query | 执行只读 SELECT 查询 | sql |
write_query | 执行写入(INSERT/UPDATE/DELETE) | sql |
create_table | 创建表 | sql(CREATE TABLE 语句) |
list_tables | 列出所有表 | 无 |
describe_table | 描述表结构 | table_name |
get_schema | 获取整个数据库 schema | 无 |
append_data | 追加数据到表 | table_name、data(JSON 数组) |
与 Postgres MCP 的关键差异:
- 支持写入:SQLite MCP 支持
write_query(Postgres MCP 只读) - 无需服务:直接操作
.db文件,无数据库进程 - 无网络:纯本地操作,无连接字符串
- 无认证:文件权限即权限(无用户/密码)
与 Postgres MCP 的对比
| 维度 | SQLite MCP | Postgres MCP |
|---|---|---|
| 数据库类型 | 文件型 | 服务型 |
| 部署 | 零部署(文件即数据库) | 需启动 PG 服务 |
| 写入能力 | ✅ 支持 | ❌ 只读 |
| 并发 | 单写入者 | 多连接并发 |
| 数据规模 | 百万级以下 | 亿级 |
| 网络访问 | 本地 | 远程 |
| 认证 | 文件权限 | 用户/密码 |
| 适合场景 | 本地开发/原型/日志 | 生产/团队协作 |
| 资源消耗 | 极低 | 中 |
选型原则:
- 本地开发、原型、个人项目 → SQLite MCP
- 生产环境、团队协作、大数据量 → Postgres MCP
各客户端配置示例
Claude Code(CLI)
编辑 ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"sqlite": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sqlite",
"--db-path",
"/Users/yourname/data/myapp.db"
]
}
}
}
--db-path 指定 .db 文件路径。若文件不存在,MCP 会自动创建。
Cursor
编辑 ~/.cursor/mcp.json:
{
"mcpServers": {
"sqlite": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sqlite",
"--db-path",
"D:\\Projects\\myapp\\data\\app.db"
]
}
}
}
VS Code(Continue 插件)
编辑 ~/.continue/config.json:
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sqlite",
"--db-path",
"${workspaceFolder}/data/dev.db"
]
}
}
]
}
}
Cline 插件
通过 Cline: MCP Settings 打开配置,结构同 Claude Desktop。
实战场景
场景 1:让 Claude Code 做"日志分析助理"
把应用日志导入 SQLite,让 AI 分析:
查询 error_logs 表中过去 24 小时的错误:
1. 按错误类型分组统计数量
2. 找出出现最多的 3 个错误信息
3. 分析是否有时间规律(如集中在某时段)
4. 给出排查建议
Claude Code 会调用 read_query(多条聚合 SQL)→ 分析结果 → 给出建议。
场景 2:让 Cursor 做"测试数据管理"
在 test_data.db 中:
1. 创建 users 表(id, name, email, created_at)
2. 插入 100 条测试数据(随机姓名邮箱)
3. 查询重复邮箱的数量
4. 清理重复数据只保留最早创建的
Cursor 会调用 create_table → write_query(批量插入)→ read_query(查重复)→ write_query(清理)。
场景 3:让 Claude Code 做"数据迁移"
读取 old_schema.db 的所有表结构与数据,
在 new_schema.db 中创建对应表(可能字段名不同),
迁移数据并验证完整性。
Claude Code 会调用 get_schema → create_table → read_query + append_data → read_query(验证)。
场景 4:让 VS Code 做"本地数据探索"
分析 sales.db 的数据:
1. 列出所有表
2. 描述 orders 表结构
3. 统计各月份销售额
4. 找出 Top 10 客户
5. 生成一份简短的数据概览报告
Cline + Continue 会调用 list_tables → describe_table → read_query(多条)→ 汇总报告。
数据导入:从 CSV 到 SQLite
常见需求是把 CSV 数据导入 SQLite 供 AI 分析:
用 Python 一键导入
import sqlite3
import pandas as pd
# 读取 CSV
df = pd.read_csv("sales_data.csv")
# 导入 SQLite
conn = sqlite3.connect("sales.db")
df.to_sql("sales", conn, if_exists="replace", index=False)
conn.close()
print(f"导入 {len(df)} 行到 sales.db")
导入后即可让 AI 用 SQLite MCP 查询分析。
用命令行导入
# CSV → SQLite
sqlite3 sales.db <<EOF
.mode csv
.import sales_data.csv sales
EOF
安全注意事项
1. 写入风险
SQLite MCP 支持写入,这意味着 AI 可以修改或删除数据:
-- AI 可能执行的危险操作
DELETE FROM users WHERE 1=1; -- 删除全表
DROP TABLE orders; -- 删表
防护建议:
- 操作前备份:
cp myapp.db myapp.db.bak - 用文件系统只读权限:
chmod 444 myapp.db - 在 Prompt 中明确"只读不写"
- 重要数据用 Postgres MCP(只读)替代
2. 文件权限
.db 文件的权限即数据库权限:
# 仅所有者可读写
chmod 600 myapp.db
# 所有人只读
chmod 444 myapp.db
3. 路径安全
不要把 .db 文件放在 Web 可访问目录下,防止被直接下载。
4. 数据隔离
不同项目用不同 .db 文件,避免 AI 跨项目访问:
// 项目 A
"args": ["--db-path", "/projects/a/data.db"]
// 项目 B
"args": ["--db-path", "/projects/b/data.db"]
注意事项
- 单写入者:SQLite 不支持并发写入,多个 AI 客户端同时写入会锁库。读操作可并发。
- 无 LIMIT 保护:不像 Postgres MCP 自动加 LIMIT 100,SQLite MCP 需在 SQL 中显式限制。
- 大表性能:百万级以上数据查询性能下降,建议用 Postgres。
- 事务支持:
write_query自动提交,不显式支持事务。需事务时用多条 SQL 拼接。 - JSON 字段:SQLite 支持 JSON 函数(
json_extract),但 AI 可能不熟悉,需在 Prompt 中提示。 - 无 SSL:纯本地操作,无需加密。
- 备份简单:直接复制
.db文件即完整备份。 - 跨平台:
.db文件可跨平台使用(Windows/Mac/Linux)。
与其他数据库 MCP 的关系
| MCP | 数据库 | 适合 |
|---|---|---|
| SQLite MCP | SQLite | 本地开发、原型、日志 |
| Postgres MCP | PostgreSQL | 生产、团队、大数据 |
| Supabase MCP | Supabase | Postgres + Auth + Storage |
组合建议:
- 开发阶段用 SQLite MCP(轻量快速)
- 生产阶段迁移到 Postgres MCP(稳定可扩展)
- 用 SQLite 做 Postgres 的本地测试镜像
典型工作流:SQLite → Postgres 迁移
1. 开发期:用 SQLite MCP 快速建表、写测试数据、验证查询
2. 验证后:导出 SQLite schema
3. 在 Postgres 创建对应表(可能需调整类型)
4. 迁移数据(ETL 脚本)
5. 切换 MCP 配置为 Postgres MCP
6. 生产环境用 Postgres MCP(只读)查询分析
小结
SQLite MCP 是开发者最轻量的 AI 数据库入口:一个 .db 文件、一条 npx 命令,无需服务、无需网络、无需认证。对于"本地开发、原型验证、日志分析、测试数据管理"等场景,是比 Postgres MCP 更轻便的选择。
建议搭配 Filesystem MCP(管理代码)和 Postgres MCP(生产查询)组成开发-测试-生产三件套。
MCP 进阶系列下一篇将讲 Memory MCP:让 LLM 拥有跨会话记忆的官方服务器。