SQLite MCP服务器

一个为SQLite数据库提供的全面模型上下文协议(MCP)服务器实现,通过标准化接口提供安全可控的SQLite操作访问。

  • by berthojoris
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 berthojoris/sqlite-mcp

使用说明

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 了解每个工具的详细参数、示例和响应格式。

🔒 安全指南

最佳实践

  1. 最小特权原则:仅授予必要的权限
  2. 使用参数化查询:始终对动态值使用参数
  3. 定期备份:实施自动化备份策略
  4. 监控审核日志:定期审查操作日志
  5. 连接限制:设置适当的连接池限制
  6. 可能时只读:使用只读模式进行报告/分析

安全特性

  • SQL注入保护:自动检测危险模式
  • 查询验证:执行前综合查询分析
  • 许可执行:操作级访问控制
  • 速率限制:可配置的请求限制
  • 审计日志:完整的操作跟踪
  • 输入消毒:参数验证和清理

危险作业

服务器会自动阻止或限制:

  • 多语句执行
  • 危险的SQL模式(基于UNION的注入等)
  • 未经授权的架构修改
  • 查询复杂性过高
  • 没有适当权限的操作

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件。

🆘 支持

对于问题、疑问或贡献:

备注:此服务器旨在通过模型上下文协议安全、受控地访问SQLite数据库。始终遵循安全最佳实践,并定期审查生产环境中的审计日志。


最后更新: 2026-05-22 14:35:11