@lubo3395/mcp-sqlite-server
Provides a set of MCP tools to let AI assistants like Claude, Cursor, and VS Code Copilot interact with SQLite databases, supporting querying, schema management, and data import/export.
README
@lubo3395/mcp-sqlite-server
SQLite 数据库 MCP 服务器 — 让 AI 助手(Claude、Cursor、VS Code Copilot 等)通过 MCP 协议直接操作 SQLite 数据库。
Node 版本要求:>= 22 基于 Node.js 内置
node:sqlite,无需任何原生编译依赖,开箱即用。 如果你的 Node 版本低于 22,请升级 Node 或联系我们讨论其他方案。
功能
| 工具 | 功能 | 读写 |
|---|---|---|
sqlite_query |
执行任意 SQL 语句(支持参数化查询) | R+W |
sqlite_list_tables |
列出所有表名及行数 | R |
sqlite_get_schema |
查看表的结构、列、索引和 DDL | R |
sqlite_create_table |
创建新表 | W |
sqlite_drop_table |
删除表 | W |
sqlite_add_column |
添加列 | W |
sqlite_create_index |
创建索引 | W |
sqlite_drop_index |
删除索引 | W |
sqlite_import_csv |
从 CSV 文件导入数据 | W |
sqlite_import_json |
从 JSON 文件导入数据 | W |
sqlite_export_csv |
查询结果导出为 CSV | R |
sqlite_export_json |
查询结果导出为 JSON | R |
安全
支持 --readonly 只读模式。启用后:
- better-sqlite3 驱动层拒绝写入
sqlite_query只允许 SELECT / PRAGMA / EXPLAIN / WITH- DDL 和导入工具全部拦截
安装
npx 直接使用(推荐)
{
"mcpServers": {
"sqlite": {
"command": "npx",
"args": ["-y", "@lubo3395/mcp-sqlite-server", "--db", "./data.db", "--max-rows", "200"]
}
}
}
全局安装
npm install -g @lubo3395/mcp-sqlite-server
mcp-sqlite-server --db ./data.db --max-rows 200
配置
Claude Desktop / Claude Code
在 claude_desktop_config.json 或 claude.json 中添加:
{
"mcpServers": {
"sqlite": {
"command": "npx",
"args": ["-y", "@lubo3395/mcp-sqlite-server", "--db", "D:/path/to/data.db", "--max-rows", "200"],
"env": {}
}
}
}
只读模式:
{
"mcpServers": {
"sqlite": {
"command": "npx",
"args": ["-y", "@lubo3395/mcp-sqlite-server", "--db", "D:/path/to/data.db", "--readonly", "--max-rows", "200"]
}
}
}
多数据库:
{
"mcpServers": {
"sqlite": {
"command": "npx",
"args": ["-y", "@lubo3395/mcp-sqlite-server", "--db", "./main.db", "--db", "./reference.db", "--max-rows", "200"]
}
}
}
VS Code / GitHub Copilot
在 .vscode/mcp.json 中添加:
{
"servers": {
"sqlite": {
"command": "npx",
"args": ["-y", "@lubo3395/mcp-sqlite-server", "--db", "./data.db", "--max-rows", "200"]
}
}
}
Cursor
在 .cursor/mcp.json 中添加:
{
"mcpServers": {
"sqlite": {
"command": "npx",
"args": ["-y", "@lubo3395/mcp-sqlite-server", "--db", "./data.db", "--max-rows", "200"]
}
}
}
Cline / Roo Code
在 cline.json 中添加:
{
"mcpServers": {
"sqlite": {
"command": "npx",
"args": ["-y", "@lubo3395/mcp-sqlite-server", "--db", "./data.db", "--max-rows", "200"]
}
}
}
Tool 详情
sqlite_query
执行 SQL 语句,支持参数化查询防止注入。查询结果自动截断(默认最多 200 行),避免浪费 token。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
sql |
string | 是 | SQL 语句 |
params |
array | 否 | 参数化查询参数(? 占位符) |
limit |
number | 否 | 返回行数上限(默认 200,受 --max-rows 限制) |
offset |
number | 否 | 跳过的行数,配合 limit 分页 |
db_alias |
string | 否 | 数据库别名 |
示例:
查询: SELECT * FROM users WHERE age > ?
参数: [25]
分页: limit=50, offset=100
返回值包含 total_count(总行数)和 has_more(是否还有更多),AI 可据此决定是否继续分页。
sqlite_list_tables
列出所有表名及行数。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
db_alias |
string | 否 | 数据库别名 |
sqlite_get_schema
查看指定表的结构信息。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
table |
string | 是 | 表名 |
db_alias |
string | 否 | 数据库别名 |
sqlite_create_table
创建新表。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
table |
string | 是 | 表名 |
columns |
string | 是 | 列定义 JSON(见下方说明) |
if_not_exists |
boolean | 否 | 是否添加 IF NOT EXISTS |
db_alias |
string | 否 | 数据库别名 |
columns 参数格式:
[
{"name": "id", "type": "INTEGER", "pk": true, "autoIncrement": true},
{"name": "name", "type": "TEXT", "notnull": true},
{"name": "email", "type": "TEXT", "unique": true},
{"name": "age", "type": "INTEGER", "defaultValue": "0"}
]
sqlite_drop_table / sqlite_add_column / sqlite_create_index / sqlite_drop_index
分别为删除表、添加列、创建索引、删除索引。支持 if_exists / if_not_exists 和 db_alias 参数。
sqlite_import_csv / sqlite_import_json
从文件导入数据到表。支持 create_if_not_exists 自动建表。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
file_path |
string | 是 | 文件路径 |
table |
string | 是 | 目标表名 |
create_if_not_exists |
boolean | 否 | 自动建表 |
delimiter |
string | 否 | 分隔符(CSV,默认 ,) |
has_header |
boolean | 否 | 是否含表头(CSV,默认 true) |
sqlite_export_csv / sqlite_export_json
将查询结果导出到文件。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
sql |
string | 是 | SELECT 查询 |
output |
string | 是 | 输出文件路径 |
params |
array | 否 | 参数化查询参数 |
overwrite |
boolean | 否 | 是否覆盖已有文件 |
命令行参数
mcp-sqlite-server --db <path> [选项...]
--db <path> SQLite 数据库文件路径(必填,可指定多个)
--readonly 只读模式(禁止写操作)
--max-rows <n> 查询返回的最大行数上限(默认 200,设为 0 不限制)
--help, -h 显示帮助
本地开发
git clone https://github.com/lubo3395/mcp-sqlite-server.git
cd mcp-sqlite-server
npm install
npm run dev # 开发模式(热重载)
npm run build # 构建
npm start # 启动
使用 MCP Inspector 测试:
npx @modelcontextprotocol/inspector node dist/index.js --db ./test.db
技术栈
- 运行时: Node.js 22+(内置
node:sqlite) - MCP SDK:
@modelcontextprotocol/sdk - 校验:
zod - 构建: TypeScript + tsc
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。