SQLite数据库查询服务

一个基于MCP协议的Python服务器,提供SQLite数据库的只读查询、表结构访问和数据分析提示模板功能,适用于与MCP客户端和语言模型集成。

  • by prayanks
  • Python
  • 本地部署
  • 10 星标
  • 更新于
在 GitHub 查看 prayanks/mcp-sqlite-server

使用说明

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 用于跟踪活动和调试错误的模块。

设置和安装

创建示例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服务器

  1. 将服务器代码另存为 sqlite_mcp_server.py.
  2. 运行服务器:
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集成。