SQLite数据库管理服务器

一个提供全面SQLite数据库管理功能的Model Context Protocol (MCP)服务器,允许AI助手和其他MCP客户端通过标准化接口与SQLite数据库交互。

  • by ClaudiuJitea
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 claudiujitea/sqlite-mcp-server

使用说明

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"

🤖 针对小型型号进行了优化

此服务器是专门为小型语言模型设计的。 小型模型应始终从模式发现开始:

小型模型的推荐工作流程:

  1. 首先,发现数据库结构:

    "Use discover_database tool with my database to understand what's in it"
    
  2. 然后探索具体的表格:

    "Use explain_table to understand the Customer table"
    
  3. 最后,查询数据:

    "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

贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

故障排除

常见问题

  1. 服务器无法启动:确保所有依赖项都已安装,Python路径正确
  2. 数据库连接错误:检查数据库路径是否可访问且有效
  3. 权限错误:确保服务器具有数据库位置的读/写权限

调试模式

服务器包括广泛的日志记录。检查控制台输出中的错误消息和调试信息。

许可证

这个项目是开源的。请检查存储库中的许可证信息。

支持

有关问题、疑问或贡献,请访问GitHub存储库: https://github.com/ClaudiuJitea/sqlite-mcp-server

更新日志

版本1.0.0

  • 具有全面SQLite MCP服务器功能的初始版本
  • 支持所有主要的SQLite操作
  • 进出口能力
  • 查询优化工具
  • 全面的错误处理和安全功能