使用说明
SQLite MCP服务器
提供全面SQLite数据库管理功能的模型上下文协议(MCP)服务器。该服务器允许AI助手和其他MCP客户端通过标准化的接口与SQLite数据库进行交互。
特性
- 数据库管理:创建、备份和获取数据库信息
- 表操作:列出表,获取表信息,列出包含详细元数据的列
- 数据查询:使用参数化支持执行任意SQL查询
- 数据导入/导出:以CSV和JSON格式导入和导出数据
- 数据库模式:列出索引、触发器和视图
- 查询优化:获取性能分析的查询执行计划
- 安全:内置SQL注入保护和错误处理
安装
先决条件
- Python 3.8或更高版本
- pip(Python包安装程序)
步骤1:克隆存储库
git clone https://github.com/ClaudiuJitea/sqlite-mcp-server.git
cd sqlite-mcp-server
步骤2:安装依赖项
pip install -r requirements.txt
步骤3:配置MCP客户端
服务器包含一个示例配置文件(mcp_config.json)您可以使用与MCP兼容的客户端,如Claude Desktop或其他MCP客户端。
对于Claude Desktop,请在MCP配置中添加以下内容:
{
"mcpServers": {
"sqlite_explorer_server": {
"command": "python",
"args": [
"/path/to/your/sqlite_mcp_server.py"
],
"disabled": false
}
}
}
替换 /path/to/your/sqlite_mcp_server.py 以及服务器文件的实际路径。
用法
运行服务器
可以直接运行服务器进行测试:
python sqlite_mcp_server.py
然而,它通常通过像Claude Desktop这样的MCP客户端使用。
可用工具
服务器提供以下工具:
🤖 非常适合小型模型(从这里开始!)
discover_database(db_path)- 从这里开始! 完整的数据库概述,包括模式、关系和示例get_schema_summary(db_path)-包含基本信息的所有表格的快速摘要explain_table(table_name, db_path)-用例子简单解释表格smart_query(question, db_path)-用简单的英语提问并获得答案show_table(table_name, db_path)-快速显示表结构和示例数据list_tables(db_path)-所有表名的简单列表query_database(sql, db_path)-运行任何SQL查询并获取结果
数据库管理
create_database(db_path)-创建新的SQLite数据库get_database_info(db_path)-获取全面的数据库信息backup_database(db_path, backup_path)-创建数据库备份
高级模式探索
list_columns(table_name, db_path)-获取表的列信息get_table_info(table_name, db_path)-获取详细的表格信息list_indexes(db_path, table_name=None)-列出数据库索引list_triggers(db_path, table_name=None)-列出数据库触发器list_views(db_path)-列出数据库视图
数据操作
execute_sql(sql_query, db_path, parameters=None)-使用参数执行SQL查询export_data(table_name, db_path, format="csv", output_path=None, limit=None)-导出表格数据import_data(table_name, db_path, file_path, format="csv", create_table=False)-从文件导入数据
查询分析
get_query_plan(db_path, sql_query)-获取查询执行计划以进行优化
MCP客户端使用示例
一旦配置了MCP客户端,您就可以使用自然语言与SQLite数据库进行交互:
"List all tables in my database at ./data/example.db"
"Show me the structure of the users table"
"Execute this SQL query: SELECT * FROM users WHERE age > 25"
"Export the products table to CSV format"
"Create a backup of my database"
🤖 针对小型型号进行了优化
此服务器是专门为小型语言模型设计的。 小型模型应始终从模式发现开始:
小型模型的推荐工作流程:
-
首先,发现数据库结构:
"Use discover_database tool with my database to understand what's in it" -
然后探索具体的表格:
"Use explain_table to understand the Customer table" -
最后,查询数据:
"Use smart_query to show me customers from Germany"
小型型号的主要特点:
- 模式发现优先:工具如
discover_database提供完整的数据库概述 - 简单的语言:所有工具描述都使用清晰、简单的语言和表情符号
- 引导性示例:每个响应都包含要尝试下一步的示例查询
- 错误指导:当出现错误时,工具会建议尝试什么
- 简明英语查询:
smart_query该工具接受自然语言问题
示例数据库
存储库包括 Chinook_Sqlite.sqlite,一个可用于测试的示例数据库。这是一个代表数字媒体商店的流行示例数据库。
安全功能
- 参数化查询:支持参数绑定以防止SQL注入
- 路径验证:验证数据库路径并防止未经授权的访问
- 错误处理:具有详细错误消息的全面错误处理
- 表验证:在操作之前验证表是否存在
配置选项
服务器通过以下方式支持各种配置选项 mcp_config.json 文件:
- 命令:Python可执行路径(系统Python使用“Python”)
- 参数:服务器脚本的路径
- 残疾的:服务器是否已启用
发展
项目结构
sqlite-mcp-server/
├── sqlite_mcp_server.py # Main server implementation
├── mcp_config.json # MCP client configuration
├── requirements.txt # Python dependencies
├── Chinook_Sqlite.sqlite # Sample database
└── README.md # This file
贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
故障排除
常见问题
- 服务器无法启动:确保所有依赖项都已安装,Python路径正确
- 数据库连接错误:检查数据库路径是否可访问且有效
- 权限错误:确保服务器具有数据库位置的读/写权限
调试模式
服务器包括广泛的日志记录。检查控制台输出中的错误消息和调试信息。
许可证
这个项目是开源的。请检查存储库中的许可证信息。
支持
有关问题、疑问或贡献,请访问GitHub存储库: https://github.com/ClaudiuJitea/sqlite-mcp-server
更新日志
版本1.0.0
- 具有全面SQLite MCP服务器功能的初始版本
- 支持所有主要的SQLite操作
- 进出口能力
- 查询优化工具
- 全面的错误处理和安全功能
