使用说明
SQLite MCP服务器
SQLite数据库的全面模型上下文协议(MCP)服务器实现,通过标准化接口提供对SQLite操作的安全和受控访问。
📋 目录
⚡ 快速开始
30秒内起床跑步:
# Run directly with npx (no installation required)
npx @berthojoris/mcp-sqlite-server sqlite:////path/to/database.sqlite list,read,create,update,delete
或者添加到您的MCP客户端配置中:
{
"mcpServers": {
"sqlite": {
"command": "npx",
"args": ["-y", "@berthojoris/mcp-sqlite-server", "sqlite:////path/to/db.sqlite", "list,read,create,update,delete"]
}
}
}
🚀 特性
核心功能
- MCP协议合规性:全面实施模型上下文协议,与MCP客户端无缝集成
- SQLite集成:使用原生SQLite支持
better-sqlite3为了获得最佳性能 - 细粒度权限:具有10种不同权限类型的细粒度权限系统
- 安全第一:全面的SQL注入保护和查询验证
- 图式反思:完成数据库模式分析和报告
- 连接池:高效的数据库连接管理
- 审计日志:详细的操作日志记录以确保安全性和合规性
权限系统
服务器实现了以下类型的细粒度权限系统:
list-列出表和模式read-SELECT查询和数据检索create-INSERT操作update-更新操作delete-DELETE操作execute-执行存储过程/函数ddl-数据定义语言(CREATE、ALTER、DROP)procedure-存储过程(SQLite不适用-为兼容性保留)transaction-事务控制(开始、提交、回滚)utility-公用设施操作(真空、分析、PRAGMA等)
安全特性
- SQL注入防范:参数化查询和模式检测
- 查询验证:全面的查询分析和清理
- 许可执行:操作级别权限检查
- 速率限制:可配置的请求速率限制
- 审计跟踪:完整的操作日志记录和客户端跟踪
- 输入消毒:参数验证和净化
自动创建功能
- 数据库自动创建:如果数据库文件不存在,则自动创建数据库文件
- 目录自动创建:根据需要递归创建父目录
- 智能初始化:适当地检测新数据库与现有数据库和日志
- 零配置设置:适用于任何有效的SQLite路径
📦 安装
NPX用法(推荐)
npx @berthojoris/mcp-sqlite-server sqlite:////path/to/your/database.sqlite list,read,utility
全局安装
npm install -g @berthojoris/mcp-sqlite-server
mcp-sqlite-server sqlite:////path/to/your/database.sqlite list,read,create,update
本地安装
npm install @berthojoris/mcp-sqlite-server
🔗 集成指南
标准MCP配置
将此配置添加到MCP客户端的配置文件中:
{
"mcpServers": {
"sqlite": {
"command": "npx",
"args": [
"-y",
"@berthojoris/mcp-sqlite-server",
"sqlite:////path/to/database.sqlite",
"list,read,create,update,delete,utility"
]
}
}
}
论点解释:
| # | 参数 | 描述 |
|---|---|---|
| 1 | -y |
自动确认npx安装 |
| 2 | @berthojoris/mcp-sqlite-server |
包名称 |
| 3 | sqlite:////path/to/database.sqlite |
数据库连接字符串 |
| 4 | list,read,create,update,delete,utility |
逗号分隔权限 |
按客户端配置文件位置
| 客户端 | 配置文件位置 |
|---|---|
| 克劳德桌面(macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json |
| 克劳德桌面(Windows) | %APPDATA%\Claude\claude_desktop_config.json |
| 克劳德桌面(Linux) | ~/.config/Claude/claude_desktop_config.json |
| 光标IDE(macOS/Linux) | ~/.cursor/mcp.json |
| 光标IDE(Windows) | %USERPROFILE%\.cursor\mcp.json |
| Droid命令行界面 | 在Droid MCP设置中添加为stdio MCP服务器 |
| 克劳德CLI/克劳德代码 | 在Claude MCP设置中添加为stdio MCP服务器 |
| Windsurf IDE | ~/.windsurf/mcp.json |
| Cline(VS代码) | VS代码 settings.json 在...之下 cline.mcpServers |
兼容性说明
- 使用标准的MCP stdio传输,因此它与Cursor IDE、Droid CLI、Claude Desktop/CLI、Claude Code、Windsurf、Cline和其他stdio MCP客户端兼容。
- 运行时日志被写入stderr,以保留用于MCP JSON-RPC消息的stdout。
- 仅执行
tools该功能被宣传为最大的客户端兼容性。
平台特定路径示例
# macOS/Linux
"sqlite:////Users/yourname/databases/app.sqlite"
"sqlite:////home/user/projects/data.sqlite"
# Windows
"sqlite:///C:/Users/yourname/databases/app.sqlite"
# Relative path (from working directory)
"sqlite://./data/app.sqlite"
# In-memory database
"sqlite://:memory:"
多个数据库
{
"mcpServers": {
"main-db": {
"command": "npx",
"args": ["-y", "@berthojoris/mcp-sqlite-server", "sqlite:////path/to/main.sqlite", "list,read,create,update,delete"]
},
"analytics-db": {
"command": "npx",
"args": ["-y", "@berthojoris/mcp-sqlite-server", "sqlite:////path/to/analytics.sqlite", "list,read"]
}
}
}
🔧 配置
连接字符串格式
服务器支持多种SQLite连接字符串格式:
# Absolute path
sqlite:////absolute/path/to/database.sqlite
# Relative path
sqlite://./relative/path/to/database.sqlite
# In-memory database
sqlite://:memory:
# Direct file path
/path/to/database.sqlite
权限组合
详细权限说明
| Permission | Description | Allowed Operations | Example Use Cases |
|---|---|---|---|
list |
View database structure and metadata |
• List all tables • View table schemas • Check column information • View indexes and constraints • Access database metadata |
• Database exploration • Schema documentation • Development planning • Data modeling |
read |
Execute SELECT queries and retrieve data |
• SELECT statements • JOIN operations • Aggregate functions (COUNT, SUM, etc.) • Subqueries • View data content |
• Data analysis • Reporting • Business intelligence • Read-only applications |
create |
Insert new records into tables |
• INSERT statements • Bulk insert operations • Add new rows • Populate tables with data |
• Data entry applications • ETL processes • User registration • Content creation |
update |
Modify existing records |
• UPDATE statements • Bulk update operations • Modify existing data • Change field values |
• Profile updates • Status changes • Data corrections • Content editing |
delete |
Remove records from tables |
• DELETE statements • Bulk delete operations • Remove rows • Data cleanup |
• User account deletion • Data archiving • Content removal • Cleanup operations |
execute |
Run stored procedures and functions |
• Execute stored procedures • Call database functions • Run custom database logic • Execute complex operations |
• Business logic execution • Complex calculations • Batch processing • Custom workflows |
ddl |
Modify database structure |
• CREATE TABLE/INDEX • ALTER TABLE structure • DROP tables/indexes • Modify schema • Create/drop views |
• Database migrations • Schema updates • Development setup • Structure modifications |
transaction |
Control transaction boundaries |
• BEGIN transactions • COMMIT changes • ROLLBACK operations • Manage data consistency • Atomic operations |
• Financial operations • Data integrity • Batch processing • Critical updates |
utility |
Perform maintenance and optimization |
• VACUUM database • ANALYZE statistics • PRAGMA commands • Database backup • Performance optimization |
• Database maintenance • Performance tuning • Backup operations • System administration |
不同用例的常见权限组合:
# Read-only access
list,read
# Basic CRUD operations
list,read,create,update,delete
# Full database access
list,read,create,update,delete,execute,ddl,procedure,transaction,utility
# Analytics/reporting
list,read,utility
# Development/testing
list,read,create,update,delete,ddl,transaction,utility
🔌 可用工具
MCP服务器提供 37个强大的工具 对于全面的SQLite数据库管理:
工具摘要
| # | 工具 | 描述 | 权限 |
|---|---|---|---|
| 1 | sqlite_query |
使用参数化支持执行SELECT查询 | read |
| 2 | sqlite_insert |
将单个记录插入表中 | create |
| 3 | sqlite_update |
更新现有记录 | update |
| 4 | sqlite_delete |
从表中删除记录 | delete |
| 5 | sqlite_schema |
获取全面的架构信息 | list |
| 6 | sqlite_tables |
列出数据库中的所有表 | list |
| 7 | sqlite_relations |
分析表关系和外键 | list |
| 8 | sqlite_transaction |
以原子方式执行多个查询 | transaction |
| 9 | sqlite_backup |
创建数据库备份 | utility |
| 10 | sqlite_bulk_insert |
具有关系支持的批量插入 | create |
| 11 | sqlite_bulk_update |
带有进度跟踪的批量更新 | update |
| 12 | sqlite_bulk_delete |
支持级联的批量删除 | delete |
| 13 | sqlite_ddl |
模式管理(CREATE/ALTER/DROP) | ddl |
| 14 | sqlite_views |
创建和管理数据库视图 | ddl |
| 15 | sqlite_indexes |
指标管理与优化 | list, ddl |
| 16 | sqlite_constraints |
查看约束和外键 | list |
| 17 | sqlite_migrate |
表之间的数据迁移 | read, create, update |
| 18 | sqlite_backup_restore |
备份表和从SQL还原 | utility, read, ddl |
| 19 | sqlite_column_statistics |
列统计和数据分析 | read |
| 20 | sqlite_database_summary |
数据库摘要和元数据 | read |
| 21 | sqlite_schema_erd |
实体关系图数据 | read |
| 22 | sqlite_schema_rag_context |
人工智能模型的RAG上下文 | read |
| 23 | sqlite_analyze_query |
查询分析和执行计划 | read |
| 24 | sqlite_optimization_hints |
查询优化建议 | read |
| 25 | sqlite_database_health_check |
数据库健康和完整性检查 | read |
| 26 | sqlite_unused_indexes |
查找未使用或冗余的索引 | read |
| 27 | sqlite_connection_pool_stats |
连接池统计 | read |
| 28 | sqlite_upsert |
使用ON CONFLICT插入或更新记录 | create, update |
| 29 | sqlite_pragma |
安全的SQLite PRAGMA管理 | utility |
| 30 | sqlite_integrity_check |
运行快速检查或完整性检查 | utility |
| 31 | sqlite_foreign_key_check |
查找外键违规 | utility |
| 32 | sqlite_vacuum |
运行VACUUM或增量真空 | utility |
| 33 | sqlite_analyze |
运行ANALYZE、REINDEX或优化 | utility |
| 34 | sqlite_wal_checkpoint |
运行WAL检查点维护 | utility |
| 35 | sqlite_explain_query_plan |
解释查询计划和可选字节码 | read |
| 36 | sqlite_table_inspect |
深度表元数据检查 | list, read |
| 37 | sqlite_audit_logs |
查看最近的MCP审核条目 | utility |
工具类别
数据查询与检索:
sqlite_query-运行SELECT语句sqlite_schema-检查数据库结构sqlite_tables-列出可用表格sqlite_relations-分析表关系和外键
数据操作(CRUD):
sqlite_insert-创建新记录sqlite_update-修改现有记录sqlite_delete-删除记录sqlite_upsert-插入或更新带有“ON CONFLICT”的记录
批量操作:
sqlite_bulk_insert-高效插入多条记录sqlite_bulk_update-一次更新多条记录sqlite_bulk_delete-使用级联支持删除许多记录
架构管理:
sqlite_ddl-CREATE/ALTER/DROP表和索引sqlite_views-创建、删除和管理数据库视图sqlite_indexes-指标管理与优化
约束和关系:
sqlite_constraints-查看和分析约束和外键
数据迁移:
sqlite_migrate-克隆表、比较结构和复制数据
数据库操作:
sqlite_transaction-原子多查询执行sqlite_backup-数据库备份实用程序sqlite_backup_restore-备份表和从SQL文件还原
SQLite维护和诊断:
sqlite_pragma-读取或更新安全的SQLite PRAGMA设置sqlite_integrity_check-运行数据库完整性检查sqlite_foreign_key_check-检测外键违规sqlite_vacuum-回收空间并重建数据库页面sqlite_analyze-刷新统计数据、重新索引或优化sqlite_wal_checkpoint-将WAL帧刷新回数据库sqlite_explain_query_plan-检查查询计划器输出sqlite_table_inspect-检查列、索引、触发器、行数和样本sqlite_audit_logs-查看最近的MCP工具调用审核日志
📖 完整文档: 看 文档.md 了解每个工具的详细参数、示例和响应格式。
🔒 安全指南
最佳实践
- 最小特权原则:仅授予必要的权限
- 使用参数化查询:始终对动态值使用参数
- 定期备份:实施自动化备份策略
- 监控审核日志:定期审查操作日志
- 连接限制:设置适当的连接池限制
- 可能时只读:使用只读模式进行报告/分析
安全特性
- SQL注入保护:自动检测危险模式
- 查询验证:执行前综合查询分析
- 许可执行:操作级访问控制
- 速率限制:可配置的请求限制
- 审计日志:完整的操作跟踪
- 输入消毒:参数验证和清理
危险作业
服务器会自动阻止或限制:
- 多语句执行
- 危险的SQL模式(基于UNION的注入等)
- 未经授权的架构修改
- 查询复杂性过高
- 没有适当权限的操作
📄 许可证
MIT许可证-有关详细信息,请参阅许可证文件。
🆘 支持
对于问题、疑问或贡献:
备注:此服务器旨在通过模型上下文协议安全、受控地访问SQLite数据库。始终遵循安全最佳实践,并定期审查生产环境中的审计日志。
最后更新: 2026-05-22 14:35:11