SQLite数据库交互协议服务

一个为SQLite数据库实现的模型上下文协议(MCP)服务器,允许AI模型通过标准化工具与SQLite数据库进行交互。

  • by madhavarora1988
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 madhavarora1988/mcp_sqlite_poc

使用说明

SQLite MCP服务器

SQLite数据库的模型上下文协议(MCP)服务器实现,允许AI模型通过标准化工具与SQLite数据库交互。

特性

  • 查询执行:执行带有内置验证和安全检查的SQL查询
  • 架构发现:列出表并描述表架构
  • 行计数:统计指定表中的行数
  • 样品数据:插入示例数据用于演示目的(非只读模式时)
  • 自动初始化:创建包含产品、客户、订单和反馈(如果不存在)的示例数据库
  • 只读模式:出于安全考虑,可以选择限制为只读操作
  • 反馈收集:收集用户反馈并将其存储在数据库中的工具

需求

  • Python 3.8+
  • 中列出的依赖关系 requirements.txt

安装

  1. 克隆此存储库
  2. 安装依赖项:
pip install -r requirements.txt
  1. 配置环境变量(可选):
    • 复制 .env.example 向 .env (或使用现有 .env 文件)
    • 根据需要修改设置

用法

启动服务器

python server.py

服务器将在端口8080(或您的 .env 文件)。

配置选项

通过编辑配置服务器 .env 文件:

DB_PATH=sample.db         # Path to your SQLite database file
MCP_PORT=8080             # Port to run the MCP server on
READ_ONLY=true            # Set to false to allow write operations

与Claude Desktop一起使用

将此服务器添加到您的Claude Desktop配置中:

{
"mcpServers": {
		"sqlite": {
			"command": "<Path to UV>",
			"args": [
				"--directory",
				"<Absolute Path to Project Workspace>",
				"run",
				"server.py"
			]
		}
	}
}

可用工具

MCP服务器提供以下工具:

  1. execute_query -在数据库上执行SQL查询
  2. list_tables -列出数据库中的所有表
  3. describe_table -获取特定表的架构
  4. count_rows -统计特定表中的行数
  5. insert_sample_data -插入示例数据(在只读模式下禁用)
  6. add_反馈 -将用户反馈添加到反馈表中(在只读模式下禁用)

示例数据库架构

示例数据库包括:

产品列表

  • id(整数,主键)
  • 名称(文本,非空)
  • 描述(文本)
  • 价格(真实,非空)
  • 类别(文本)
  • 库存(BOOLEAN)

客户表

  • id(整数,主键)
  • 名称(文本,非空)
  • 电子邮件(文本,唯一)
  • 注册日期(文本)

订单表

  • id(整数,主键)
  • customer_id(整数、外键)
  • 订单日期(文本)
  • 总计_数量(实际)

反馈表

  • id(整数,主键)
  • 用户(文本,非空)
  • 电子邮件(文本,非空)
  • 反馈(文本,非空)
  • submission_date(文本,默认电流_时间戳)

安全考虑

  • 验证SQL查询以防止危险操作
  • 在只读模式下,所有数据修改操作都被阻止
  • 考虑以只读模式运行以供生产使用

许可证

MIT许可证