使用说明
SQLite MCP服务器
此存储库包含一个用Python编写的MCP(模型上下文协议)服务器,该服务器连接到包含启动资金数据的SQLite数据库。服务器将表模式作为资源公开,提供只读SQL查询工具,并为常见数据分析任务提供提示模板。它旨在与MCP客户端和语言模型(LLM)配合使用,并通过STDIO协议进行通信。
目录
概述
MCP服务器使用 MCP Python SDK (使用CLI附加功能)实现以下服务器:
- 连接到SQLite数据库 (例如具有启动资金信息的数据库)。
- 将表模式作为MCP资源公开。
- 提供用于执行只读SQL查询的工具。
- 提供提示模板 帮助语言模型生成数据分析见解。
- 通过STDIO协议进行通信,从标准输入读取JSON-RPC消息,并将响应写入标准输出。
特性
-
资源
schema://sqlite/{table}:返回特定表的SQL架构。schema://sqlite/all:返回所有表模式的JSON映射。
-
工具
sql_query:执行只读SQL查询。仅SELECT允许发表声明。
-
提示
analyze_table_prompt:为特定表生成分析提示。describe_query_prompt:生成解释SQL查询的提示。
-
STDIO协议
- 阅读来源
stdin并将回复写入stdout,使集成变得容易。
- 阅读来源
-
日志记录
- 使用Python
logging用于跟踪活动和调试错误的模块。
- 使用Python
设置和安装
创建示例SQLite数据库
将以下脚本另存为 create_db.py:
<same as earlier>
运行方式:
python create_db.py
创建虚拟环境
python -m venv venv
激活环境:
-
macOS/Linux:
source venv/bin/activate -
视窗:
venv\Scripts\activate
安装依赖项:
pip install "mcp[cli]"
运行MCP服务器
- 将服务器代码另存为
sqlite_mcp_server.py. - 运行服务器:
python sqlite_mcp_server.py
可选(使用 uv):
uv run sqlite_mcp_server.py
安装到克劳德桌面
将以下内容另存为 install_to_claude.py 并运行它:
python install_to_claude.py
使用以下内容更新Claude Desktop配置:
{
"mcpServers": {
"sqlite_mcp_server": {
"command": "python",
"args": ["-u", "/absolute/path/to/sqlite_mcp_server.py"]
}
}
}
之后重新启动Claude Desktop。
用法
- 访问资源:
schema://sqlite/all,schema://sqlite/startups - 调用工具:
SELECT * FROM startups WHERE funding_amount > 10000000; - 使用提示:生成SQL或解释查询。
测试
运行测试脚本:
python sqlite_mcp_client_tests.py sqlite_mcp_server.py
此脚本测试:
- 列出资源
- 正在检索架构
- 有效/无效查询
- 提示模板
日志记录
修改日志记录配置:
logging.basicConfig(
filename='mcp_server.log',
level=logging.DEBUG,
format="[%(asctime)s] %(levelname)s - %(message)s",
datefmt="%Y-%m-%d %H:%M:%S"
)
默认情况下,日志会打印到stderr。
许可证
该项目根据MIT许可证获得许可。请参阅 LICENSE 文件。
附加说明
- 根据需要调整安装/配置脚本中的路径。
- 确保在运行服务器之前创建SQLite数据库。
- 与MCP Inspector或Claude Desktop集成。
