PySqlitMCP
Enables comprehensive SQLite database management through natural language, including database creation, table operations, data CRUD operations, backup/restore functionality, and CSV import/export capabilities.
README
PySqlitMCP
PySqlitMCP 是一个基于 FastMCP 框架和 PySqlit 库的数据库操作工具集,提供了完整的 SQLite 数据库管理功能,包括数据库创建、表操作、数据增删改查、备份恢复、数据导入导出等功能。
功能特性
数据库管理
- 创建新的数据库
- 获取数据库详细信息
- 备份数据库到指定文件
- 从备份文件恢复数据库
- 列出所有备份文件
表操作
- 创建新的数据表
- 删除指定的数据表
- 获取指定表的详细信息
- 统计表中的记录总数
- 列出数据库中的所有表
数据操作
- 向表中插入单条数据
- 向表中批量插入数据
- 查询表中的数据
- 更新表中的数据
- 删除表中的数据
- 执行自定义SQL语句
数据导入导出
- 从CSV文件导入数据到表
- 将表数据导出到CSV文件
安装依赖
使用 pip 安装
uv pip install -r requirements.txt
使用 uv 安装(推荐)
uv sync
快速开始
- 确保已安装所有依赖
- 运行主程序:
python main.py
使用指南
- 操作前先获取数据库信息了解结构
- 表操作前检查表是否存在
- 数据操作注意数据类型匹配
- 大量数据使用批量操作
- 重要操作前备份数据库
- 自定义SQL语句谨慎执行,避免误操作,优先使用封装好的方法
- 创建数据库时可以指定保存路径
- 导入导出数据时可以指定文件路径
- 批量操作时请务必检查数据格式和数量,避免错误操作
- 如果提供的参数或者格式有错误,请自动提示错误信息,并给出正确的使用方法
- 不要擅自对数据库表操作
- 动态使用提示词根据传入的参数给出提示
API 接口说明
数据库管理接口
create_database(db_name="test", db_path=None)
创建一个新的数据库
参数:
db_name(str, optional): 要创建的数据库名,默认为 "test"db_path(str, optional): 数据库文件保存的完整路径,如果未提供,则使用当前工作目录
返回:
- 数据库文件的完整路径
get_database_info()
获取数据库详细信息
返回:
- 包含数据库详细信息的字典,包括:
- path: 数据库文件路径
- tables: 表列表及其结构信息
- table_count: 表的数量
backup_database(backup_file)
备份数据库到指定文件
参数:
backup_file(str): 备份文件路径
返回:
- 成功返回True,失败返回False
restore_database(backup_file)
从备份文件恢复数据库
参数:
backup_file(str): 备份文件路径
返回:
- 成功返回True,失败返回False
list_backup_files()
列出所有备份文件
返回:
- 备份文件信息列表,每个元素包含文件名和创建时间
表操作接口
create_tables(table_name, columnss, pk=None, unique=None, check=None)
创建新的数据表
参数:
table_name(str): 要创建的表名columnss(list): 列定义列表pk(str/list, optional): 主键列名或主键列名列表unique(list, optional): 唯一约束列名列表check(str, optional): 检查约束条件
返回:
- 创建成功返回True,失败返回False
drop_tables(table_name)
删除指定的数据表
参数:
table_name(str): 要删除的表名
返回:
- 删除成功返回True,失败返回False
get_table_info(table_name)
获取指定表的详细信息
参数:
table_name(str): 要查询的表名
返回:
- 包含表结构的字典
list_tables()
列出数据库中的所有表
返回:
- 表名列表
get_table_count(table_name)
统计表中的记录总数
参数:
table_name(str): 要统计的表名
返回:
- 表中的记录总数
数据操作接口
insert_data(table_name, data)
向表中插入单条数据
参数:
table_name(str): 目标表名data(dict): 要插入的数据
返回:
- 成功插入返回新记录的ID,失败返回-1
insert_multiple_data(table_name, datas)
向表中批量插入数据
参数:
table_name(str): 目标表名datas(list): 要插入的数据列表
返回:
- 成功插入的记录数量
select_data(table_name, condition=None)
查询表中的数据
参数:
table_name(str): 要查询的表名condition(str, optional): WHERE条件语句
返回:
- 查询结果列表
update_data(table_name, data, condition)
更新表中的数据
参数:
table_name(str): 目标表名data(dict): 要更新的数据condition(str): WHERE条件语句
返回:
- 成功更新的记录数量
delete_data(table_name, condition)
删除表中的数据
参数:
table_name(str): 目标表名condition(str): WHERE条件语句
返回:
- 成功删除的记录数量
execute_sql_statement(sql)
执行自定义SQL语句
参数:
sql(str): 要执行的SQL语句
返回:
- 查询结果列表(对于SELECT语句)或受影响的行数(对于INSERT/UPDATE/DELETE语句)
数据导入导出接口
import_from_csv(table_name, import_file)
从CSV文件导入数据到表
参数:
table_name(str): 目标表名import_file(str): 要导入的CSV文件路径
返回:
- 成功导入的记录数量
export_to_csv(table_name, export_file)
将表数据导出到CSV文件
参数:
table_name(str): 要导出的表名export_file(str): 导出的CSV文件路径
返回:
- 导出成功返回True,失败返回False
技术栈
许可证
本项目采用 MIT 许可证。详情请见 LICENSE 文件。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。