使用说明
SQLite MCP Server
一个基于Model Context Protocol (MCP)的SQLite数据库操作服务器,提供完整的数据库读写功能。
功能特性
- read_query: 执行SELECT查询以从数据库中读取数据
- write_query: 执行INSERT、UPDATE或DELETE查询以修改数据库中的数据
- create_table: 在数据库中创建新表
- list_tables: 获取数据库中所有表的列表
- describe_table: 查看特定表的模式信息
安装
- 克隆或下载此项目
- 安装依赖:
pip install -r requirements.txt
使用方法
快速开始
1. 启动服务器
默认数据库 (database.db):
./start.sh
# 或
python main.py
指定数据库文件:
# 使用位置参数
python main.py my_project.db
# 使用 --db 标志
python main.py --db my_project.db
# 使用绝对路径
python main.py /path/to/my/database.db
查看所有选项:
python main.py --help
2. 在VS Code中配置和使用
快速配置(推荐):
./configure_vscode.sh
手动配置: 详见 VS Code配置指南
使用示例: 详见 使用示例文档
直接启动服务器
python main.py
工具说明
1. read_query
执行SELECT查询以从数据库中读取数据。
输入参数:
query(字符串): 需要执行的SELECT SQL查询语句
返回:
- 查询结果作为对象数组
示例:
SELECT * FROM users WHERE age > 18
2. write_query
执行INSERT、UPDATE或DELETE查询以修改数据库中的数据。
输入参数:
query(字符串): 需要执行的SQL修改查询语句
返回:
{ affected_rows: number }表示受影响的行数
示例:
INSERT INTO users (name, age) VALUES ('张三', 25)
UPDATE users SET age = 26 WHERE name = '张三'
DELETE FROM users WHERE age < 18
3. create_table
在数据库中创建新表。
输入参数:
query(字符串): CREATE TABLE SQL语句
返回:
- 确认表格创建的信息
示例:
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER,
email TEXT UNIQUE
)
4. list_tables
获取数据库中所有表的列表。
输入参数:
- 无
返回:
- 包含表名的数组
5. describe_table
查看特定表的模式信息。
输入参数:
table_name(字符串): 要描述的表名
返回:
- 列定义的数组,包括列名、类型、是否为空、默认值等信息
安全特性
- 线程安全的数据库连接管理
- SQL查询类型验证(防止在read_query中执行修改操作)
- 连接池管理
- 错误处理和日志记录
数据库文件
默认情况下,SQLite数据库文件将在当前目录下创建为database.db。您可以通过修改SQLiteManager的初始化参数来更改数据库文件位置。
技术栈
- Python 3.7+
- SQLite3
- Model Context Protocol (MCP)
- asyncio (异步I/O)
注意事项
- 确保SQL查询语法正确
- read_query只允许SELECT语句
- write_query只允许INSERT、UPDATE、DELETE语句
- create_table只允许CREATE TABLE语句
- 数据库操作是线程安全的
- 建议在生产环境中添加更多的安全验证和错误处理
开发
如需扩展功能,可以在SQLiteManager类中添加新的方法,并在MCP服务器中注册相应的工具。