Token导航 LogoToken导航TokenDH.com
MCP Sqlite Tools logo
数据服务未说明官方级别未说明来源级核验

MCP Sqlite Tools

MCP Server

一个为LLM提供全面SQLite数据库操作的MCP服务器,支持安全高效的数据库管理、查询操作和事务处理。

工具数

0

提示词数

0

GitHub Stars

14

资源数

0
数据分析TypeScriptClaude数据安全ClaudeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

spences10

提供方

spences10

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

mcpsqlite工具

一个模型上下文协议(MCP)服务器,提供全面的 LLM的SQLite数据库操作。此服务器支持AI助手 安全高效地与本地SQLite数据库交互 内置安全功能、高级事务支持和清晰 只读操作和破坏性操作之间的分离。

特性

🗄️ 数据库管理

  • 打开/创建数据库:打开现有数据库或创建新数据库
  • 关闭数据库:正确关闭数据库连接
  • 列出数据库:在目录中查找数据库文件
  • 数据库信息:获取全面的数据库元数据和

统计

📊 表格操作

  • 列表表格:查看数据库中的所有表和视图
  • 描述表:获取表的详细架构信息
  • 创建表:使用自定义列定义创建新表
  • 删除表:移除桌子(带有安全警告)

🔍 查询操作

  • 执行读取查询:安全选择、PRAGMA和解释查询
  • 执行写入查询:INSERT、UPDATE、DELETE操作
  • 执行架构查询:DDL操作(CREATE、ALTER、DROP)
  • 大容量插入:高效批量插入多条记录

💾 事务管理

  • 开始事务:使用保存点启动数据库事务

支持

  • 提交事务:使用嵌套事务提交更改

处理

  • 回滚事务:安全地回滚更改并嵌套

存储点

  • 自动清理:自动清理过时事务

📋 架构操作

  • 输出模式:将数据库架构导出为SQL或JSON格式
  • 导入架构:从SQL或JSON导入并执行模式
  • 选择性出口:导出特定表或整个数据库

结构

🛠️ 数据库维护

  • 备份数据库:使用时间戳创建数据库备份
  • 真空数据库:优化数据库存储和性能
  • 连接池:具有健康功能的高级连接管理

监控

⚠️ 安全功能

此服务器实现了多层安全:

  • 查询分类:自动分离只读、写、,

模式和事务操作

  • 路径验证:防止目录遍历攻击
  • 可配置的路径限制:控制对绝对路径的访问
  • 输入验证:使用全面的参数验证

选项

  • 高级连接池:连接限制、健康状况

监控和空闲超时

  • 交易安全:自动清除过时事务

嵌套保存点支持

  • 资源清理:在服务器关闭时进行优雅的清理

维护排程

基于钩子的安全工具分离

这些工具被有意地分为不同的类别,以 在MCP客户端中启用细粒度的审批控制,如Claude Code:

✓ 安全工具 (只读操作):

  • execute_read_query -选择、PRAGMA、解释查询
  • list_tables, describe_table, database_info
  • export_schema, backup_database

这些工具可以自动批准或批准一次,使AI能够 自由探索您的数据库结构并读取数据。

⚠️ 破坏性工具 (数据修改):

  • execute_write_query -插入、更新、删除
  • bulk_insert -批量插入
  • import_csv -CSV数据导入
  • drop_table -永久表删除

这些工具每项操作都需要单独批准, 让您了解在此之前将修改哪些数据 发生。

⚠️ 方案更改工具 (结构修改):

  • execute_schema_query -CREATE、ALTER、DROP语句
  • create_table -表格创建
  • import_schema -架构导入
  • import_csv -可以从CSV标题创建缺少的表

这些工具可以修改数据库结构,并且应该需要单独的 批准以防止意外的架构更改。

⚠️ 文件写入工具:

  • export_csv -写入CSV文件,包括绝对路径

🔒 交易工具:

  • begin_transaction, commit_transaction, rollback_transaction

可以根据您的工作流程需求进行配置。

Claude代码挂钩配置示例:

// In your Claude Code hooks
export function toolApproval(tool) {
	// Auto-approve safe read operations
	if (
		tool.name.includes('read') ||
		tool.name.includes('list') ||
		tool.name.includes('describe') ||
		tool.name.includes('export') ||
		tool.name.includes('backup') ||
		tool.name.includes('info')
	) {
		return 'auto-approve';
	}

	// Require approval for destructive operations
	if (
		tool.name.includes('write') ||
		tool.name.includes('delete') ||
		tool.name.includes('drop') ||
		tool.name.includes('insert') ||
		tool.name.includes('schema')
	) {
		return 'require-approval';
	}

	return 'require-approval'; // Default to safe
}

这种分离可确保您保持对破坏性的控制 操作,同时允许AI以只读方式高效工作 查询。

安装

来自npm(发布时)

npm install -g mcp-sqlite-tools

来源

git clone 
cd mcp-sqlite-tools
pnpm install
pnpm run build

配置

环境变量

可以使用环境变量配置服务器:

# Default directory for SQLite databases (relative to project root)
SQLITE_DEFAULT_PATH=.

# Allow absolute paths for database files (security setting)
SQLITE_ALLOW_ABSOLUTE_PATHS=true

# SQLite lock busy timeout in milliseconds (not wall-clock query runtime)
SQLITE_BUSY_TIMEOUT=30000

# Default backup directory for database backups
SQLITE_BACKUP_PATH=./backups

# Enable debug logging
DEBUG=false

MCP客户端配置

选项1:全局用户配置(推荐)

在VS Code用户设置中配置一次,以在所有 工作空间。将此添加到您的全局 mcp.json 文件 (%APPDATA%\Code\User\mcp.json 在Windows上):

对于VS Code全局配置,请编辑 ~/.config/Code/User/mcp.json (或等效的Windows位置):

{
	"servers": {
		"sqlite-tools": {
			"command": "npx",
			"args": ["-y", "mcp-sqlite-tools"]
		}
	}
}

WSL用户,在全局配置中使用此格式:

{
	"servers": {
		"sqlite-tools": {
			"command": "wsl.exe",
			"args": ["bash", "-c", "npx -y mcp-sqlite-tools"]
		}
	}
}

优点:

  • 一种配置在任何地方都适用 -没有针对每个项目的设置

需要

  • 📁 自动使用当前工作区 -在中创建的数据库

无论你打开什么项目

  • 🔄 始终保持最新 -通过npx使用最新发布的版本

选项2:工作区特定配置

对于希望通过版本共享数据库配置的团队 控制,创建 .vscode/mcp.json 工作区中的文件:

{
	"servers": {
		"sqlite-tools": {
			"command": "npx",
			"args": ["-y", "mcp-sqlite-tools"],
			"env": {
				"SQLITE_DEFAULT_PATH": "${workspaceFolder}/databases",
				"SQLITE_ALLOW_ABSOLUTE_PATHS": "true",
				"SQLITE_BACKUP_PATH": "${workspaceFolder}/backups"
			}
		}
	}
}

优点:

  • 团队共享 -配置已提交版本控制
  • 📂 组织结构 -专用数据库 /databases

文件夹

  • �️ 项目隔离 -每个项目都有自己的数据库

配置

Claude桌面/客户端配置

将此添加到MCP客户端配置中:

{
	"mcpServers": {
		"mcp-sqlite-tools": {
			"command": "npx",
			"args": ["-y", "mcp-sqlite-tools"],
			"env": {
				"SQLITE_DEFAULT_PATH": ".",
				"SQLITE_ALLOW_ABSOLUTE_PATHS": "true",
				"SQLITE_BUSY_TIMEOUT": "30000",
				"SQLITE_BACKUP_PATH": "./backups"
			}
		}
	}
}

环境变量

以下环境变量可用于配置MCP 服务器:

变量描述默认值示例
SQLITE_DEFAULT_PATH数据库文件的默认目录.${workspaceFolder}/databases
SQLITE_ALLOW_ABSOLUTE_PATHS允许在数据库操作中使用绝对路径truefalse
SQLITE_BACKUP_PATH数据库备份的默认目录与相同 SQLITE_DEFAULT_PATH./backups
SQLITE_BUSY_TIMEOUTSQLite锁忙超时(毫秒)3000060000

SQLITE_MAX_QUERY_TIME 仍被接受为已弃用的别名 SQLITE_BUSY_TIMEOUT;这不是挂钟查询运行时间限制。

路径分辨率:

  • 相对路径从默认路径解析
  • 使用 ${workspaceFolder} 工作区相对路径的VS代码
  • SQLITE_ALLOW_ABSOLUTE_PATHS=true 启用绝对路径

运营

开发配置

与MCP检查员一起开发:

pnpm run build
pnpm run dev

API 参考

数据库管理工具

open_database

打开或创建SQLite数据库文件。

参数:

  • path (string,必填):数据库文件的路径
  • create (boolean,可选):如果不存在则创建(默认值:

真的)

例子:

{
	"path": "my-app.db",
	"create": true
}

close_database

关闭数据库连接。

参数:

  • database (字符串,可选):要关闭的数据库路径

list_databases

列出目录中可用的数据库文件。

参数:

  • directory (字符串,可选):要搜索的目录

database_info

获取有关数据库的全面信息。

参数:

  • database (字符串,可选):数据库路径

表格操作

list_tables

列出数据库中的所有表和视图。

参数:

  • database (字符串,可选):数据库路径

describe_table

获取表的架构信息。

参数:

  • table (字符串,必填):表名
  • database (字符串,可选):数据库路径
  • verbosity (字符串,可选):“摘要”或“详细”(默认值:

“详细”)

请求示例:

{
	"table": "users",
	"verbosity": "detailed"
}

示例响应:

{
	"database": "/tmp/demo.db",
	"table": "users",
	"columns": [
		{
			"name": "id",
			"type": "INTEGER",
			"nullable": true,
			"default_value": null,
			"primary_key": true
		},
		{
			"name": "name",
			"type": "TEXT",
			"nullable": false,
			"default_value": null,
			"primary_key": false
		},
		{
			"name": "email",
			"type": "TEXT",
			"nullable": true,
			"default_value": null,
			"primary_key": false
		},
		{
			"name": "created_at",
			"type": "TIMESTAMP",
			"nullable": true,
			"default_value": "CURRENT_TIMESTAMP",
			"primary_key": false
		}
	],
	"verbosity": "detailed",
	"column_count": 4
}

create_table

创建具有指定列的新表。

参数:

  • name (字符串,必填):表名
  • columns (数组,必填):列定义
  • database (字符串,可选):数据库路径

列定义:

{
	"name": "column_name",
	"type": "TEXT|INTEGER|REAL|BLOB",
	"nullable": true,
	"primary_key": false,
	"default_value": null
}

例子:

{
	"name": "users",
	"columns": [
		{
			"name": "id",
			"type": "INTEGER",
			"primary_key": true,
			"nullable": false
		},
		{
			"name": "name",
			"type": "TEXT",
			"nullable": false
		},
		{
			"name": "email",
			"type": "TEXT",
			"nullable": true
		}
	]
}

drop_table

永久删除表及其所有数据。

参数:

  • table (字符串,必填):要删除的表名
  • database (字符串,可选):数据库路径

查询操作

execute_read_query

执行只读SQL查询(SELECT、PRAGMA、EXPLAIN)。

参数:

  • query (字符串,必填):SQL查询
  • params (对象,可选):查询参数
  • database (字符串,可选):数据库路径
  • limit (数字,可选):返回的最大行数(默认值:10000)
  • offset (number,可选):要跳过的行数(默认值:0)
  • verbosity (字符串,可选):“摘要”或“详细”(默认值:

“详细”)

请求示例:

{
	"query": "SELECT * FROM users ORDER BY id",
	"verbosity": "detailed"
}

示例响应:

{
	"database": "/tmp/demo.db",
	"query": "SELECT * FROM users ORDER BY id LIMIT 10000",
	"result": {
		"rows": [
			{
				"id": 1,
				"name": "Alice Johnson",
				"email": "alice@example.com",
				"created_at": "2025-10-03 09:42:04"
			},
			{
				"id": 3,
				"name": "Carol White",
				"email": "carol@example.com",
				"created_at": "2025-10-03 09:42:10"
			}
		],
		"changes": 0,
		"last_insert_rowid": 0
	},
	"row_count": 2,
	"pagination": {
		"limit": 10000,
		"offset": 0,
		"returned_count": 2,
		"has_more": false
	},
	"verbosity": "detailed"
}

execute_write_query

执行修改数据的SQL(INSERT、UPDATE、DELETE)。

参数:

  • query (字符串,必填):SQL查询
  • params (对象,可选):查询参数
  • database (字符串,可选):数据库路径

请求示例:

{
	"query": "INSERT INTO users (name, email) VALUES ('Alice Smith', 'alice@example.com')"
}

示例响应:

{
	"database": "/tmp/demo.db",
	"query": "INSERT INTO users (name, email) VALUES ('Alice Smith', 'alice@example.com')",
	"result": {
		"rows": [],
		"changes": 1,
		"last_insert_rowid": 1
	},
	"message": "⚠️ DESTRUCTIVE OPERATION COMPLETED: Data modified in database '/tmp/demo.db'. Rows affected: 1"
}

execute_schema_query

执行DDL查询(CREATE、ALTER、DROP)。

参数:

  • query (字符串,必填):DDL SQL查询
  • params (对象,可选):查询参数
  • database (字符串,可选):数据库路径

请求示例:

{
	"query": "CREATE TABLE users (\n  id INTEGER PRIMARY KEY AUTOINCREMENT,\n  name TEXT NOT NULL,\n  email TEXT UNIQUE,\n  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n)"
}

示例响应:

{
	"database": "/tmp/demo.db",
	"query": "CREATE TABLE users (\n  id INTEGER PRIMARY KEY AUTOINCREMENT,\n  name TEXT NOT NULL,\n  email TEXT UNIQUE,\n  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n)",
	"result": {
		"rows": [],
		"changes": 0,
		"last_insert_rowid": 0
	},
	"message": "⚠️ SCHEMA CHANGE COMPLETED: Database structure modified in '/tmp/demo.db'. Changes: 0"
}

bulk_insert

批量插入多条记录。

参数:

  • table (字符串,必填):目标表名
  • data (array,必填):要插入的对象数组
  • batch_size (数量,可选):每批记录数(默认值:1000)
  • database (字符串,可选):数据库路径

请求示例:

{
	"table": "users",
	"data": [
		{ "name": "David Lee", "email": "david@example.com" },
		{ "name": "Emma Davis", "email": "emma@example.com" },
		{ "name": "Frank Miller", "email": "frank@example.com" }
	]
}

示例响应:

{
	"success": true,
	"database": "/tmp/demo.db",
	"table": "users",
	"inserted": 3,
	"batches": 1,
	"total_time": 0,
	"message": "⚠️ DESTRUCTIVE OPERATION COMPLETED: 3 records inserted into table 'users' in database '/tmp/demo.db'"
}

CSV操作

import_csv

将带标题的CSV文件导入表中。如果该表不存在, 它是由CSV标头和推断的SQLite列类型创建的。 默认情况下,值是强制的(""/null 为NULL,数字为 数字,布尔值为1/0)。报告行级插入错误 成功的行将继续,除非 fail_fast 这是真的。

参数:

  • table (字符串,必填):目标表名
  • file_path (字符串,必填):CSV文件路径;绝对路径

允许

  • database_name (字符串,可选):数据库路径或当前上下文

名字

  • create_table (布尔值,可选):创建缺失的表(默认值:

真的)

  • batch_size (数字,可选):每批行数(默认值:1000)
  • fail_fast (布尔值,可选):第一行出错时停止(默认值:

错误的

  • max_errors (数字,可选):返回的最大行错误数

(默认值:100)

  • coerce_types (布尔值,可选):强制CSV字符串(默认值:

真的)

  • delimiter, quote, escape, encoding (可选):CSV解析

选项

export_csv

将完整表或只读查询结果导出到CSV。提供 正好是其中之一 tablequery.

参数:

  • file_path (字符串,必填):输出CSV路径;绝对路径

允许

  • table (字符串,可选):要导出的表
  • query (字符串,可选):要导出的只读查询
  • database_name (字符串,可选):数据库路径或当前上下文

名字

  • delimiter, record_delimiter, encoding (可选):CSV输出

选项

  • always_quote (boolean,可选):引用每个字段(默认值:

错误的

  • append (布尔值,可选):附加到现有文件(默认值:

错误的

事务管理

begin_transaction

使用可选的保存点支持启动数据库事务。

参数:

  • database (字符串,可选):数据库路径

退货: 用于跟踪的交易ID

commit_transaction

提交当前事务或释放保存点。

参数:

  • database (字符串,可选):数据库路径

rollback_transaction

回滚当前事务或还原到保存点。

参数:

  • database (字符串,可选):数据库路径

架构操作

export_schema

将数据库模式导出为SQL或JSON格式。

参数:

  • database (字符串,可选):数据库路径
  • format (字符串,可选):输出格式-“sql”或“json”

(默认值:“sql”)

  • tables (数组,可选):要导出的特定表

例子:

{
	"format": "json",
	"tables": ["users", "orders"]
}

import_schema

从SQL或JSON导入并执行模式。

参数:

  • database (字符串,可选):数据库路径
  • schema (字符串,必填):要导入的架构内容
  • format (字符串,可选):输入格式-“sql”或“json”

(默认值:“sql”)

数据库维护

backup_database

使用SQLite的在线备份API创建一致的SQLite备份, 包括可能仍在WAL文件中的已提交数据。

参数:

  • source_database (字符串,可选):源数据库路径
  • backup_path (字符串,可选):备份文件路径(自动生成

如果没有提供)

vacuum_database

通过回收未使用的空间来优化数据库存储。

参数:

  • database (字符串,可选):数据库路径

安全指南

工具分类

服务器自动将工具分为安全类别:

  1. ✓ SAFE:只读操作(SELECT、PRAGMA、EXPLAIN、数据库

信息、备份)

  1. ⚠️ 破坏性的:数据修改(INSERT、UPDATE、DELETE、批量

插入,CSV导入)

  1. ⚠️ 架构更改:结构修改(CREATE、ALTER、DROP、,

模式导入、CSV表创建)

  1. ⚠️ 文件写入:写入文件的导出操作,包括

绝对CSV路径

  1. ⚠️ 交易:事务控制(开始、提交、回滚)
  2. ✓ 维护:优化操作(真空、连接

管理)

最佳实践

  1. 始终使用参数化查询 防止SQL注入
  2. 使用交易记录 用于多步骤操作以确保数据

一致性

  1. 审查破坏性操作 执行前
  2. 创建备份 在主要模式更改之前
  3. 使用bulk_insert 用于高效插入大型数据集
  4. 查看CSV绝对路径 导入/导出文件操作之前
  5. 导出架构 在重大结构变化之前
  6. 使用适当的工具 适用于不同的操作类型
  7. 监控连接池 在高流量场景中的使用

发展

建筑

pnpm run build

发展模式

pnpm run dev

清洁

pnpm run clean

建筑

服务器采用模块化架构构建:

核心模块

  • src/index.ts:主服务器入口点
  • src/config.ts:使用Valibot进行配置管理

验证

数据库客户端

  • src/clients/connection-manager.ts:高级连接池

与健康监测

  • src/clients/query-executor.ts:SQL执行、批量操作、,

和查询实用程序

  • src/clients/transaction-manager.ts:ACID事务

使用保存点进行管理

  • src/clients/schema-manager.ts:架构导出/导入

功能

  • src/clients/sqlite.ts:主SQLite客户端界面和

公用事业

工具操作员

  • src/tools/handler.ts:工具注册编排器
  • src/tools/admin-tools.ts:数据库和表管理工具
  • src/tools/query-tools.ts:查询执行和批量操作

工具

  • src/tools/transaction-tools.ts:交易管理工具
  • src/tools/schema-tools.ts:架构导出/导入工具
  • src/tools/csv-tools.ts:CSV导入/导出工具
  • src/tools/context.ts:数据库上下文管理

基础功能类库

  • src/common/types.ts:TypeScript类型定义
  • src/common/errors.ts:错误处理实用程序
  • src/common/sql.ts:SQL标识符和文字助手
  • src/common/schema-sql.ts:SQLite模式语句解析

这种模块化设计提供了:

  • 关注点分离:每个模块都有一个单一的职责
  • 可维护性:易于测试、调试和扩展个人

组件

  • 可扩展性:可以添加新功能,而不会影响

现有代码

  • 类型安全:全面覆盖TypeScript

依赖项

MCP框架

高性能SQLite驱动程序

用于类型安全输入

导入解析

写作

依赖关系提供的关键功能

  • 热机械轧制:简化了MCP服务器开发,具有出色的性能

TypeScript支持

  • 更好平方3:同步SQLite操作,性能卓越

演出

  • 选项:所有工具参数的运行时类型验证
  • csv-\*:带类型强制的CSV导入/导出

行级导入错误报告

贡献

欢迎投稿!请随时提交拉取请求。

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

致谢

  • 建立在

模型上下文协议

  • 受到启发

mcp-turso-云

用于高性能SQLite操作

目录标签

目录标签

数据分析TypeScriptClaude数据安全数据库管理本地部署SQLite操作LLM工具事务处理

支持客户端

ClaudeVS Code

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP