SQLite Explorer MCP 服务器使用说明

项目简介

SQLite Explorer MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端,它允许大型语言模型 (LLM) 安全地访问和查询 SQLite 数据库。该服务器使用 FastMCP 框架开发,旨在为 LLM 提供结构化数据的探索和分析能力,同时保证数据访问的安全性。

主要功能点

  • 安全只读访问: 仅提供对 SQLite 数据库的只读访问权限,防止数据被意外修改。
  • SQL 查询执行: 支持 LLM 执行 'SELECT' SQL 查询语句,并进行安全验证和参数绑定,防止 SQL 注入。
  • 表 listing: 允许 LLM 获取数据库中所有表的名称列表。
  • 表结构描述: 提供获取指定表详细 schema 信息的功能,包括列名、数据类型、约束等。
  • 结果结构化输出: 查询结果以 JSON 字典列表的形式返回,方便 LLM 理解和处理。

安装步骤

  1. 克隆仓库: 将 GitHub 仓库 'https://github.com/hannesrudolph/sqlite-explorer-fastmcp-mcp-server.git' 克隆到本地。
    git clone https://github.com/hannesrudolph/sqlite-explorer-fastmcp-mcp-server.git
    cd sqlite-explorer-fastmcp-mcp-server
  2. 安装依赖: 使用 pip 安装项目依赖。
    pip install -r requirements.txt
  3. 配置环境变量: 设置 'SQLITE_DB_PATH' 环境变量,指向您要访问的 SQLite 数据库文件的完整路径。例如:
    export SQLITE_DB_PATH=/path/to/your/database.db
    请将 '/path/to/your/database.db' 替换为您实际的数据库文件路径。

服务器配置

要让 MCP 客户端(如 Cline VSCode 插件)连接到 SQLite Explorer MCP 服务器,您需要提供以下配置信息。以下是 Cline VSCode 插件的 MCP 设置示例,其他 MCP 客户端的配置方式类似。

{
  "sqlite-explorer": {
    "command": "uv",
    "args": [
      "run",
      "--with",
      "fastmcp",
      "--with",
      "uvicorn",
      "fastmcp",
      "run",
      "/path/to/repo/sqlite_explorer.py"
    ],
    "env": {
      "SQLITE_DB_PATH": "/path/to/your/database.db"
    }
  }
}

配置参数说明:

  • '"sqlite-explorer"': 服务器名称,客户端用于标识和调用。
  • '"command": "uv"': 启动服务器的命令,这里使用 'uv' 运行器。
  • '"args"': 命令参数列表。
    • '"run"': 'uv' 运行命令。
    • '"--with", "fastmcp"': 启用 FastMCP 框架支持。
    • '"--with", "uvicorn"': 使用 Uvicorn 作为 ASGI 服务器。
    • '"fastmcp", "run"': FastMCP 运行命令。
    • '"/path/to/repo/sqlite_explorer.py"': 需要替换为 'sqlite_explorer.py' 文件在您本地仓库中的完整路径
  • '"env"': 环境变量配置。
    • '"SQLITE_DB_PATH": "/path/to/your/database.db"': 需要替换为 您要访问的 SQLite 数据库文件的完整路径

注意: 请务必将配置中的 '/path/to/repo/sqlite_explorer.py' 和 '/path/to/your/database.db' 替换为实际路径。

基本使用方法

成功配置并启动 SQLite Explorer MCP 服务器后,LLM 客户端可以通过以下工具与 SQLite 数据库进行交互:

  • 'read_query': 执行 SQL 'SELECT' 查询。客户端可以向该工具提供 SQL 查询语句,服务器将执行查询并返回结果。
  • 'list_tables': 获取数据库中的表名列表。客户端调用此工具即可获取所有表名。
  • 'describe_table': 获取指定表的详细 schema 信息。客户端需要提供表名,服务器将返回该表的列名、数据类型等信息。

LLM 可以根据这些工具的功能,结合 Prompt Engineering,实现对 SQLite 数据库的智能探索和数据分析。

信息

分类

数据库与文件